Вычислительные методы линейной алгебры. Горбаченко В.И - 87 стр.

UptoLike

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