Вычисление
нормы и чисел обусловленности матрицы
Для понимания
всего нижеизложенного материала необходимо учесть, что нормы матриц в 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
Содержание раздела