1. Главная
  2. Библиотека
  3. Программирование
  4. Разработать программу на языке MATLAB (Scilab), реализующую вычисление собственных значений матрицы (в соответствии с вари...

Разработать программу на языке MATLAB (Scilab), реализующую вычисление собственных значений матрицы (в соответствии с вариантом) QR-алгоритмом и

«Разработать программу на языке MATLAB (Scilab), реализующую вычисление собственных значений матрицы (в соответствии с вариантом) QR-алгоритмом и»
  • Программирование

Условие:

1. Разработать программу на языке MATLAB(Scilab), реализующую вычисление собственных значений матрицы (в соответствии с вариантом) QR-алгоритмом и встроенной в MATLAB(Scilab) функцией.

2. Применить программу для нахождения собственных значений заданной матрицы (QR- алгоритм и встроенная функция).

3. В случае невозможности вычисления собственных значений матрицы (в соответствии с вариантом) QR-алгоритмом необходимо подробно разъяснить причину и предложить вариант изменения условий таким образом, чтобы собственные значения можно было вычислить указанным численным методом.

Решение:

Запишем две подпрограммы одна из них реализует простое QR разложение матрицы А, а другая организует процедуру поиска собственных чисел.

%процедура определения собственных чисел

function [ R, Q ] = QRSobstv( A )

%находим собственные числа - на диагонали матрицы R

eps=1;

[ Q, R ] = QRrazl( A );

A=R*Q;

e1=diag(R);

%с точностью 10^(-10)

while eps10^(-10)

[ Q, R ] = QRrazl( A );

A=R*Q;

eps=max(abs(e1-diag(R)));

e1=diag(R);

end

%матрица Q может получиться не единичной, а с (-1) на главной диагонал...

Не нашел нужную задачу?

Воспользуйся поиском

Выбери предмет