лення лічильника ітерацій
Lout = L1; mout = m; yout = yn ';
L = 0;% присвоювання початкового значення рішення
if trace
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);% обчислення власного вектора
if trace
home, y, m, L1% висновок поточних значень на екран
end% на даному етапі ітерацій
m = m +1;% збільшення лічильника ітерацій
Lout = [Lout; L1];% формування вихідних параметрів
mout = [mout; m];
yout = [yout; y '];
end
t1 = fix (clock);% значення кінцевого моментів часу
t = t1-t0% час виконання ітерацій
pause;
Підпрограма fun.m
У цій підпрограмі задається матриця a .
Текст програми:
function a = fun
% Змінювана користувачем частина
a = [1.255 1.340 -1.316 0;
1.340 2.526 0 0.516;
-1.316 0 -1.743 4.628;
0 0.516 4.628 0.552];
3. Опис тестових завдань
У даній роботі спроектована програма, що реалізує метод скалярного твори для знаходження максимального власного числа матриці. Для перевірки пропонується знаходження власних чисел (векторів) симетричної матриці. При цьому досліджується вплив вектора початкового наближення до вирішення і значення припустимої помилки на час обчислень і число ітерацій.
Знайдемо власні значення вихідної матриці, використовуючи функцію eig.
Отримаємо
L1 = -5.5251
0.2841
3.4399
4.3911
В
Рішення вихідної задачі
Вихідні дані:
yn = [1,1,1,1];
ed = 0.00001;
a = [1.255 1.340 -1.316 0;
1.340 2.526 0 0.516;
-1.316 0 -1.743 4.628;
0 0.516 4.628 0.552];
Дані, отримані при виконанні програми :
y = -0.1501 m = 34 L1 = -5.5251 T = 0
-0.0135
-0.7853
0.6005
Графік значень власного числа заданої матриці за час ітераційного процесу
В В
Графік значень власного вектора, відповідного власному числу
В В
Зміна максимальної допустимої помилки
Збільшимо значення допустимої помилки
Вихідні дані:
yn = [1,1,1,1];
ed = 0.0001;
a = [1.255 1.340 -1.316 0;
1.340 2.526 0 0.516;
-1.316 0 -1.743 4.628;
0 0.516 4.628 0.552];
Дані, отримані при виконанні програми :
y = 0.1491 m = 29 L1 = -5.5253 T = 0
0.0136
0.7880
-0.5972
Графік значен...