Иллюстрированный самоучитель по MatLab

Вычисление нормы и чисел обусловленности матрицы

Линейная алгебра – область, в которой наиболее часто используются векторы и матрицы. Наряду с операциями общего характера, рассмотренными выше, применяются функции, решающие наиболее характерные задачи линейной алгебры. Они и рассмотрены в данном уроке.


Для понимания всего нижеизложенного материала необходимо учесть, что нормы матриц в MATLAB отличаются от норм векторов.

Пусть А – матрица. Тогда n=norm(A) эквивалентно n=norm(А,2) и возвращает вторую норму, т. е. самое большое сингулярное число А. Функция n=norm(A, 1) возвращает первую норму, т. е. самую большую из сумм абсолютных значений элементов матрицы по столбцам. Норма неопределенности n=norm(A, inf) возвращает самую большую из сумм абсолютных значений элементов матрицы по рядам. Норма Фробениуса (Frobenius) norm(A, 'fro') = sqrt(sum(diag(A'A))).

Пример:

>> A=[2.3.1:1.9.4:2.6.7]
A =
2 3 1
1 9 4
2 6 7
>> norm(A.1)
ans =
18

Числа обусловленности матрицы определяют чувствительность решения системы линейных уравнений к погрешностям исходных данных. Следующие функции позволяют найти числа обусловленности матриц.

  • cond(X) – возвращает число обусловленности, основанное на второй норме, то есть отношение самого большого сингулярного числа X к самому малому. Значение cond(X), близкое к 1, указывает на хорошо обусловленную матрицу;
  • с = cond(X.p) – возвращает число обусловленности матрицы, основанное на р-норме: norm(X.p)*norm(inv(X),p), где р определяет способ расчета:
    • р=1 – число обусловленности матрицы, основанное на первой норме;
    • р=2 – число обусловленности матрицы, основанное на второй норме;
    • p= 'fro' – число обусловленности матрицы, основанное на норме Фробениуса (Frobenius);
    • р='inf' – число обусловленности матрицы, основанное на норме неопределенности.
  • с = cond(X) – возвращает число обусловленности матрицы, основанное на второй норме.

Пример:

>> d=cond(hilb(4))
d =
1.5514e+004
  • condeig(A) – возвращает вектор чисел обусловленности для собственных значений А. Эти числа обусловленности – обратные величины косинусов углов между левыми и правыми собственными векторами;
  • [V.D.s] = condeig(A) – эквивалентно [V,D] = eig(A): s = condeig(A);.

Большие числа обусловленности означают, что матрица А близка к матрице с кратными собственными значениями.

Пример:

>> d=condeig(rand(4))
d =
1.0766
1.2298
1.5862
1.7540
  • rcond(A) – возвращает обратную величину обусловленности матрицы А по первой норме, используя оценивающий обусловленность метод LAPACK. Если А – хорошо обусловленная матрица, то rcond(A) около 1.00, если плохо обусловленная, то около 0.00. По сравнению с cond функция rcond реализует более эффективный в плане затрат машинного времени, но менее достоверный метод оценки обусловленности матрицы.

Пример:

>> s=rcond(hilb(4))
s =
4.6461e-005
Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.