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

Разложение Холецкого разреженных матриц

  • cholinc(X,'0') – возвращает неполное разложение Холецкого для действительной симметрической положительно определенной разреженной матрицы [nrm = norm(S) занимает слишком много времени. Эта функция изначально предназначена для работы с разреженными матрицами, хотя она работает корректно и с большими полными матрицами;]. Результат представляет собой верхнюю треугольную матрицу;
  • R = cholinc(X,'0') – возвращает верхнюю треугольную матрицу, которая имеет такую же разреженную структуру, как и верхний треугольник матрицы действительной положительно определенной матрицы X. Результат умножения R' *R соответствует X по своей разреженной структуре. Положительной определенности матрицы X недостаточно, чтобы гарантировать существование неполного разложения Холецкого, и в этом случае выдается сообщение об ошибке;
  • [R,p] = cholinc(X, '0') – никогда не выдает сообщение об ошибке в ходе разложения. Если X – положительно определенная матрица, то р=0 и матрица R – верхняя треугольная, в противном случае р – положительное целое число, R – верхняя треугольная матрица размера qxn, где q=p-l. Разреженная структура матрицы R такая же, как и у верхнего треугольника размера qxn матрицы X, и произведение R' *R размера nxn соответствует структуре разреженности матрицы X по ее первым q строкам и столбцам X(l:q,:) и Х(:,l:q).
  • R = cholinc(X,droptol) – возвращает неполное разложение Холецкого любой квадратной разреженной матрицы, используя положительный числовой параметр droptol. Функция cholinc(X,droptol) возвращает приближение к полному разложению Холецкого, вычисленному с помощью функции chol (X). При меньших значениях droptol аппроксимация улучшается, пока значение droptol не станет равным 0. В этом случае cholinc задает полное преобразование Холецкого (chol(X));
  • R = cholinc(X.options) – использует структуру с тремя переменными, которые могут быть использованы в любой из комбинаций: droptol, mi chol, rdi ag. Дополнительные поля игнорируются. Если mi chol =1, cholinc возвращает модифицированное разложение Холецкого. Если rdiag=l, то все нули на диагонали верхней треугольной матрицы заменяются квадратным корнем от произведения droptol и нормы соответствующего столбца матрицы X – sqrt(droptol*norm(X(:,j))). По умолчанию rdiag=0;
  • R = cholinc(X,droptol) и R = cholinc(X.options) – возвращают верхнюю треугольную матрицу R. Результат R'*R – это аппроксимация матрицы;
  • R = cholinc(X, 'inf') – возвращает разложение Холецкого в неопределенности, когда не удается получить обычное разложение. Матрица X может быть действительной квадратной положительно полуопределенной.

Пример:

>> S = delsq(numgnd(''.4))
S =
(1.1) 4
(2.1) -1
(1.2) -1
(2.2) 4
(3.2) -1
(2.3) -1
(3.3) 4
>> R0=cholinc(S,'0')
R0=
(1.1) 2.0000
(1.2) -0.5000
(2.2) 1.9365
(2.3) -0.5164
(3.3) 1.9322
Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.