И другие программы этой серии
Основной критерий: либо V\' V=I, либо V\' BV=I, где V – собственный вектор, I – единичная матрица. Поэтому результаты вычислений в новой версии, как правило, отличаются от результатов старых версий MATLAB. Несимметрические матрицы могут быть плохо обусловлены при вычислении их собственных значений. Малые изменения элементов матрицы, такие как ошибки округления, могут вызвать большие изменения в собственных значениях. Масштабирование, хотя и не превращает их в симметрические, значительно повышает стабильность собственных значений. Масштабирование – это попытка перевести каждую плохую обусловленность собственных векторов матрицы в диагональное масштабирование. Однако масштабирование обычно не может преобразовать несимметрическую матрицу в симметрическую, а только пытается сделать (векторную) норму каждой строки равной норме соответствующего столбца. Масштабирование значительно повышает стабильность собственных значений.
• [D,B] = balance(A) возвращает диагональную матрицу D, элементы которой являются степенями основания 2, и масштабированную матрицу B, такую, что B=D\\A*D, а норма каждого ряда масштабированной матрицы приближается к норме столбца с тем же номером;
• B = balance(A) – возвращает масштабированную матрицу B. Пример использования функции balance: >> A=[1 1000 10000;0.0001 1 1000;0.000001 0.0001 1]
1.Oe+004 *
0.0001
0.1000
1.0000
0.0000
0.0001
0.1000
0.0000
0.0000
0.0001
>> [F,G]=balance(A)
F =
1.Oe+004 *
3.2768
0
0
0
0.0032
0
0
0
0.0000
G =
1.0000
0.9766
0.0095
0.1024
1.0000
0.9766
1.0486
0.1024
1.0000
Величина, связывающая погрешность вычисления собственных значений с погрешностью исходных данных, называется числом обусловленности (собственных значений) матрицы и вычисляется следующим образом:
Начало в части 1