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

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

Пусть А —матрица. Тогда n=norm(A) эквивалентно п=погп(А,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.l)

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.5514е+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.6461е-005