b>) = a 1 * b 1 * l 2k 1 + ... + a n * b n * l 2k n (3).
Аналогічно:
(Y ' k-1 , Y k ) = a 1 * b 1 * l 2k-1 1 + ... + a n * b n * l 2k-1 n (4).
Можна бачити, що з рівностей (3) і (4) отримуємо:
(Y ' k , Y k )/(Y' k -1 , Y k ) = l 1 + O (l 2 /l 1 ) 2 k .
З цієї оцінки видно, що освіта скалярного твори скорочує число кроків ітерацій, потрібних для визначення максимального власного l 1 , з даною точністю, майже вдвічі. Однак при цьому потрібно додаткове обчислення послідовності (2).
Слід відзначити, що у випадку симетричної матриці, послідовності (1) і (2) збігаються, і тому в цьому випадку застосування методу скалярного твори особливо доцільно. Починаючи з деякого кроку ітерації, потрібно обчислювати відповідні скалярні твори і визначати l 1 через їх відносини.
2. Опис програмного забезпечення
Програма, реалізує розглянутий метод, розроблена в середовищі МаtLab, призначеної для виконання математичних операцій. Вона складається з головної програми і 2х підпрограм, що викликаються з основної програми.
Головний програма (main.m)
В основній програмі задається початкове наближення yn, початкове значення власного вектора L1 і значення допустимої помилки ed.
Текст програми:
clc% очищення екрану
yn = [1; 1; 1; 1]; % Завдання початкового наближення власного вектора
L1 = -5.5251;% початкове значення власного числа матриці
ed = 0.00001;% значення допустимої помилки
trace = 1;% установка режиму виведення на екран
[mout, Lout, yout] = sobstv ('fun', yn, L1, ed, trace);% виклик функції, що реалізує метод скалярних творів
plot (mout, Lout) % Висновок графіка значень власного числа заданої матриці за час ітераційного процесу
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;% обну...