Вычисление нормы и чисел обусловленности матрицы
Линейная алгебра – область, в которой наиболее часто используются векторы и матрицы. Наряду с операциями общего характера, рассмотренными выше, применяются функции, решающие наиболее характерные задачи линейной алгебры. Они и рассмотрены в данном уроке.
Для понимания всего нижеизложенного материала необходимо учесть, что нормы матриц в 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