И другие программы этой серии
Таким образом, для больших значений с вектор V является аппроксимацией нуль-вектора матрицы А.
• nrm = normest(S) тогда, когда из-за чрезмерного числа элементов в матрице вычисление nrm = normest(S) занимает слишком много времени, то nrm = normest(S) возвращает оценку второй нормы матрицы S. Эта функция изначально предназначена для работы с разреженными матрицами, хотя она работает корректно и с разреженными матрицами.
• nrm = normest(S,tol) использует относительную погрешность to 1 вместо используемого по умолчанию значения 10—6.
• [nrm,count] = normest(...) возвращает оценку второй нормы и количество использованных операций.
Примеры:
>> F=wilkinson(150); >> condest(sparse(F)) ans = 460.2219 >> normest(sparse(F)) ans = 75.2453
252
Типы данных – массивы специального вида
Функции разреженных матриц
253
• r=sprank(S) вычисляет структурный ранг разреженной матрицы S. В терминах теории графов он известен также под следующими названиями: максимальное сечение, максимальное соответствие и максимальное совпадение. Для величины структурного ранга всегда выполняется условие sprank(S)≥ rank(S), а в точной арифметике с вероятностью 1 выполняется условие sprank(S)==rank(sprandn(S)). Пример:
>> S=[3 0 0 0 4; 5 4 0 8 0; 0 0 0 1 3]; >> r=sprank(S) r =3
5.3.2. Функции разложения Холецкого для разреженных матриц
Теперь рассмотрим функции, реализующие разложение Холецкого для разреженных матриц.
• cholinc(X,\'0\') возвращает неполное разложение Холецкого для действительной симметрической положительно определенной разреженной матрицы1. Результат представляет собой верхнюю треугольную матрицу.
• R = cholinc(X,\'0\') возвращает верхнюю треугольную матрицу, которая имеет такую же разреженную структуру, как и верхний треугольник действительной положительно определенной матрицы X. Результат умножения R\'*R соответствует X по своей разреженной структуре. Положительной определенности матрицы X недостаточно, чтобы гарантировать существование неполного разложения Холецкого, и в этом случае выдается сообщение об ошибке.
• [R,p] = cholinc(X,\'0\') никогда не выдает сообщения об ошибке в ходе разложения.
Начало в части 1