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

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

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

  • с = 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)
Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.