Курсовая работа: Итерационный метод решения проблемы собственных значений
pause;
plot (mout, yout)%вывод графика значений собственного вектора, соответствующего собственному числу
Подпрограмма sobstv.m
В данной подпрограмме происходит вычисление максимального собственного числа и соответствующего ему собственного вектора. Значение собственного числа на каждом шаге заносится в L, результат умножения матрицы а на заданный вектор заносится в yn. Время выполнения итераций равно t, количество итераций –m .
Текст программы:
function [mout, Lout, yout]=sobstv (fun, yn, L1, ed, trace);
a=feval(fun);%вызов матрицы, описанной в файле с именем matrsp
m=0; %обнуление счетчика итераций
Lout=L1; mout=m; yout=yn';
L=0; %присваивание начального значения решения
iftrace
clc, yn, m, L1% вывод значения решений на данном этапе
end
t0=fix(clock); %задание начальной точки отсчета времени выполнения итераций
while (abs (L1-L)>ed) %задание цикла
yn1=yn;
yn=a*yn;
L=L1;
L1=(yn'*yn)/(yn1'*yn); %вычисление собственного числа
y=yn/sqrt (yn'*yn);%вычисление собственного вектора
iftrace
home, y, m, L1%вывод текущих значений на экран
end %на данном этапе итераций
m=m+1;%увеличение счетчика итераций
Lout=[Lout; L1]; %формирование выходных параметров
mout=[mout; m];
yout=[yout; y'];
end
t1=fix(clock); %значение конечного момента времени