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

         

Норма, число обусловленности и ранг разреженной матрицы


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

с = condest(A) — использует метод Хейджера в модификации Хаема для оценки числа обусловленности матрицы по первой норме. Вычисленное значение с — нижняя оценка числа обусловленности матрицы А по первой норме. Для повторяемости результатов перед выполнением функции condest нужно обязательно выполнить rand( 'state' ,L), где L -одно и то же целое число;

с = condest(A.T) — где Т — положительное целое число, чем выше Т, тем выше точность оценки. По умолчанию Т равно 2;

nrm = normest(S) — возвращает оценку второй нормы матрицы S. Применяется тогда, когда из-за чрезмерного числа элементов в матрице вычисление nrm = norm(S) занимает слишком много времени. Эта функция изначально предназначена для работы с разреженными матрицами, хотя она работает корректно и с большими полными матрицами;

[c.v] = condestCA) — возвращает число обусловленности с и вектор v, такой, что выполняется условие norm(A*V.l) = norm(A.l)*norm(V.l)/c. Таким образом, для больших значений с вектор V близок к нулевому вектору;

nrm = normest(S,tol) — использует относительную погрешность tol вместо используемого по умолчанию значения 10-

6

;

[nrm.count] = normestC...) — возвращает оценку второй нормы и количество использованных операций. Примеры:

» 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)



Содержание раздела