ВУЗ:
Составители:
Рубрика:
87
cos_fi=abs(dot(X_max,V(:,index)))/(norm(X_max)*norm(V(:,index)))
% Вычисление минимального собственного значения
Y=[1,1,1]';% Начальное приближение
[lambda_min,X_min,k,flag]=sp_min(A,Y,tol,max_it);
if flag == 0 % Решение не достигнуто
disp('Вычисление минимального собственного значения. Решение не дос-
тигнуто');
end
if flag==1 % Решение достигнуто
disp('Вычисление минимального собственного значения. Решение дос-
тигнуто');
disp('Минимальное собственное значение');
lambda_min
disp('Соответствующий нормированный собственный вектор');
X_min
disp('Число итераций');
k
disp('Результат, полученный с помощью функции eig')
[V,D]=eig(A)
end
[l,index]=min(diag(D)); % Индекс максимального
собственного числа
disp('Абсолютная величина косинуса угла между собственными векторами')
cos_fi=abs(dot(X_min,V(:,index)))/(norm(X_min)*norm(V(:,index)))
Программа для вычисления максимального по абсолютной величине
собственного значения
lambda_max и соответствующего собственного век-
тора
X_max использует функцию sp_max. Для сравнения используется стан-
дартная функция
eig. Так как метод скалярных произведений вычисляет
вектор, коллинеарный (параллельный) соответствующему собственному век-
тору, то для проверки вычисляется абсолютная величина косинуса угла меж-
ду собственными векторами, вычисленными стандартной функцией и функ-
цией
sp_max:
cos_fi=abs(dot(X_max,V(:,index)))/(norm(X_max)*norm(V(:,index)))
;
Функция sp_max вычисления максимального собственного значения и
соответствующего собственного вектора имеет вид:
function [lambda,X,k,flag]=sp_max(A,Y,tol,max_it)
% Функция вычисления максимального по модулю собственного значения
% и соответствующего собственного вектора
% с использованием метода скалярных произведений
% Вход - A - матрица n x n
% - tol - допустимая погрешность
% - max_it - максимальное число итераций
% Выход - lambda - максимальное по модулю собственное значение
% - X - соответствующий собственный вектор
% - flag - признак достижения результата: flag=1 - результат
cos_fi=abs(dot(X_max,V(:,index)))/(norm(X_max)*norm(V(:,index))) % Вычисление минимального собственного значения Y=[1,1,1]';% Начальное приближение [lambda_min,X_min,k,flag]=sp_min(A,Y,tol,max_it); if flag == 0 % Решение не достигнуто disp('Вычисление минимального собственного значения. Решение не дос- тигнуто'); end if flag==1 % Решение достигнуто disp('Вычисление минимального собственного значения. Решение дос- тигнуто'); disp('Минимальное собственное значение'); lambda_min disp('Соответствующий нормированный собственный вектор'); X_min disp('Число итераций'); k disp('Результат, полученный с помощью функции eig') [V,D]=eig(A) end [l,index]=min(diag(D)); % Индекс максимального собственного числа disp('Абсолютная величина косинуса угла между собственными векторами') cos_fi=abs(dot(X_min,V(:,index)))/(norm(X_min)*norm(V(:,index))) Программа для вычисления максимального по абсолютной величине собственного значения lambda_max и соответствующего собственного век- тора X_max использует функцию sp_max. Для сравнения используется стан- дартная функция eig. Так как метод скалярных произведений вычисляет вектор, коллинеарный (параллельный) соответствующему собственному век- тору, то для проверки вычисляется абсолютная величина косинуса угла меж- ду собственными векторами, вычисленными стандартной функцией и функ- цией sp_max: cos_fi=abs(dot(X_max,V(:,index)))/(norm(X_max)*norm(V(:,index))) ; Функция sp_max вычисления максимального собственного значения и соответствующего собственного вектора имеет вид: function [lambda,X,k,flag]=sp_max(A,Y,tol,max_it) % Функция вычисления максимального по модулю собственного значения % и соответствующего собственного вектора % с использованием метода скалярных произведений % Вход - A - матрица n x n % - tol - допустимая погрешность % - max_it - максимальное число итераций % Выход - lambda - максимальное по модулю собственное значение % - X - соответствующий собственный вектор % - flag - признак достижения результата: flag=1 - результат 87
Страницы
- « первая
- ‹ предыдущая
- …
- 85
- 86
- 87
- 88
- 89
- …
- следующая ›
- последняя »