exponenta event banner

ilu

Неполная факторизация логической единицы

Синтаксис

ilu(A,options)
[L,U] = ilu(A,options)
[L,U,P] = ilu(A,options)

Описание

ilu создает единичную нижнюю треугольную матрицу, верхнюю треугольную матрицу и матрицу перестановки.

ilu(A,options) вычисляет неполную факторизацию логической единицы A. options - структура ввода, содержащая до пяти опций настройки. Поля должны быть названы точно так, как показано в таблице ниже. В структуру можно включить любое количество этих полей и определить их в любом порядке. Любые дополнительные поля игнорируются.

Имя поля

Описание

type

Тип факторизации. Значения для type включают:

  • 'nofill'(по умолчанию) - выполняет факторизацию ILU с помощью0 уровень заполнения, известный как ILU (0). Сtype установить в значение 'nofill', только milu используется опция настройки; все остальные поля игнорируются.

  • 'crout'- Выполняет версию Flrout факторизации ILU, известную как ILUC. Сtype установить в значение 'crout', только droptol и milu используются опции настройки; все остальные поля игнорируются.

  • 'ilutp' - Выполняет факторизацию ILU с порогом и поворотом.

Если type не уточняется, факторизация ILU с 0 выполняется уровень заполнения. Поворот выполняется только с помощью type установить в значение 'ilutp'.

droptol

Допуск сброса неполной факторизации логической единицы. droptol - неотрицательный скаляр. Значение по умолчанию: 0, что обеспечивает полную факторизацию логической единицы.

Ненулевые значения U удовлетворить

  abs(U(i,j)) >= droptol*norm(A(:,j)),

за исключением диагональных позиций, которые сохраняются независимо от соответствия критерию. Записи L проверяются на соответствие локальному допуску падения перед масштабированием с помощью оси вращения, поэтому для ненулевых значений в L

abs(L(i,j)) >= droptol*norm(A(:,j))/U(j,j).

milu

Модифицированная неполная факторизация логической единицы. Значения для milu включают:

  • 'row'- Создает измененную строковую сумму неполной факторизации логической единицы. Записи из вновь сформированного столбца коэффициентов вычитаются из диагонали верхнего треугольного коэффициента ,U, сохраняя суммы столбцов. То есть A*e = L*U*e, где e - вектор единиц.

  • 'col'- Создает неполную факторизацию логической единицы с измененной суммой столбцов. Записи из вновь сформированного столбца коэффициентов вычитаются из диагонали верхнего треугольного коэффициента ,U, сохраняя суммы столбцов. То есть e'*A = e'*L*U.

  • 'off' (по умолчанию) - модификация неполной факторизации логической единицы не производится.

udiag

Если udiag является 1любые нули на диагонали верхнего треугольного коэффициента заменяются локальным допуском падения. Значение по умолчанию: 0.

thresh

Порог сведения между 0 (силы диагонального поворота) и 1, значение по умолчанию, которое всегда выбирает значение максимальной величины в столбце в качестве опорного значения.

ilu(A,options) прибыль L+U-speye(size(A)), где L представляет собой единицу нижней треугольной матрицы и U - верхняя треугольная матрица.

[L,U] = ilu(A,options) возвращает единицу нижней треугольной матрицы в L и верхняя треугольная матрица в U.

[L,U,P] = ilu(A,options) возвращает единицу нижней треугольной матрицы в L, верхняя треугольная матрица в Uи матрица перестановок в P.

Ограничения

ilu работает только с разреженными квадратными матрицами.

Примеры

Начните с разреженной матрицы и вычислите факторизацию логической единицы.

A = gallery('neumann', 1600) + speye(1600);
options.type = 'crout';
options.milu = 'row';
options.droptol = 0.1;
[L,U] = ilu(A,options);
e = ones(size(A,2),1);
norm(A*e-L*U*e)

ans =

  1.4251e-014

Это показывает, что A и L*U, где L и U даны модифицированным Crout ILU, иметь одинаковую строковую сумму.

Начните с разреженной матрицы и вычислите факторизацию логической единицы.

A = gallery('neumann', 1600) + speye(1600);
options.type = 'nofill';
nnz(A)
ans =

        7840

nnz(lu(A))
ans =

      126478

nnz(ilu(A,options))
ans =

        7840 

Это показывает, что A имеет 7840 nonzeros, полная факторизация логической единицы имеет 126478 ненулевые и неполная факторизация логической единицы с 0 уровень заполнения, имеет 7840 ненулевые, та же сумма, что и A.

Совет

Эти неполные факторизации могут быть полезны в качестве предварительных условий для системы линейных уравнений, решаемых итеративными методами, такими как BICG (BiConjugate Gradients), GMRES (Generalized Minimum Resident Method).

Ссылки

[1] Саад, Юсеф, Итерационные методы для разреженных линейных систем, Издательская компания PWS, 1996, Глава 10 - Методы предварительного кондиционирования.

Расширенные возможности

См. также

| |