Неполная факторизация логической единицы
ilu(A,options)
[L,U] = ilu(A,options)
[L,U,P] = ilu(A,options)
ilu создает единичную нижнюю треугольную матрицу, верхнюю треугольную матрицу и матрицу перестановки.
ilu(A,options) вычисляет неполную факторизацию логической единицы A. options - структура ввода, содержащая до пяти опций настройки. Поля должны быть названы точно так, как показано в таблице ниже. В структуру можно включить любое количество этих полей и определить их в любом порядке. Любые дополнительные поля игнорируются.
Имя поля | Описание |
|---|---|
| Тип факторизации. Значения для
Если |
| Допуск сброса неполной факторизации логической единицы. Ненулевые значения abs(U(i,j)) >= droptol*norm(A(:,j)), за исключением диагональных позиций, которые сохраняются независимо от соответствия критерию. Записи abs(L(i,j)) >= droptol*norm(A(:,j))/U(j,j). |
| Модифицированная неполная факторизация логической единицы. Значения для
|
| Если |
| Порог сведения между |
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 - Методы предварительного кондиционирования.