Норма, число обусловленности и ранг разреженной матрицы
Ниже представлены функции, позволяющие вычислять числа обусловленности и ранги для разреженных матриц.
- с = condest(A) – использует метод Хейджера в модификации Хаема для оценки числа обусловленности матрицы по первой норме. Вычисленное значение с – нижняя оценка числа обусловленности матрицы А по первой норме. Для повторяемости результатов перед выполнением функции condest нужно обязательно выполнить rand('state',L), где L – одно и то же целое число;
- с = condest(A.T) – где Т – положительное целое число, чем выше Т, тем выше точность оценки. По умолчанию Т равно 2;
- nrm = normest(S) – возвращает оценку второй нормы матрицы S. Применяется тогда, когда из-за чрезмерного числа элементов в матрице вычисление nrm = norm(S) занимает слишком много времени. Эта функция изначально предназначена для работы с разреженными матрицами, хотя она работает корректно и с большими полными матрицами;
- [c.v] = condest(A) – возвращает число обусловленности с и вектор v, такой, что выполняется условие norm(A*V.l) = norm(A.l)*norm(V.l)/c. Таким образом, для больших значений с вектор V близок к нулевому вектору;
- nrm = normest(S,tol) – использует относительную погрешность tol вместо используемого по умолчанию значения 10-6;
- [nrm.count] = normest(…) – возвращает оценку второй нормы и количество использованных операций. Примеры:
>
>
F
=
wilkinson(
150
); " condest(sparse(F))
ans
=
460.2219
>
>
normest(sparse(F))
ans
=
75.2453
- r=sprank(S) – вычисляет структурный ранг разреженной матрицы S. В терминах теории графов он известен также под следующими названиями: максимальное сечение, максимальное соответствие и максимальное совпадение. Для величины структурного ранга всегда выполняется условие sprank(S)irank(S), а в точной арифметике с вероятностью 1 выполняется условие sprank(S) = rank(sprandnCS)).
Пример:
>
>
S
=
[
3
0004
:
54080
;
00013
];
>
>
r
=
sprank(S)