Неполная LU-факторизация
ilu(A,options)
[L,U] = ilu(A,options)
[L,U,P] = ilu(A,options)
ilu
создает модуль нижнюю треугольную матрицу, верхнюю треугольную матрицу и сочетание матрицу.
ilu(A,options)
вычисляет неполную LU-факторизацию A
. options
- структура входа с пятью параметрами настройки. Поля должны быть названы так, как показано в таблице ниже. Можно включать любое количество этих полей в структуру и определять их в любом порядке. Любые дополнительные поля игнорируются.
Имя поля | Описание |
---|---|
| Тип факторизации. Значения для
Если |
| Допуск неполной LU-факторизации. Ненулевые значения abs(U(i,j)) >= droptol*norm(A(:,j)), за исключением диагональных элементов, которые сохраняются независимо от соответствия критерию. Записи abs(L(i,j)) >= droptol*norm(A(:,j))/U(j,j). |
| Модифицированная неполная LU-факторизация. Значения для
|
| Если |
| Порог поворота между |
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
работает только с разреженными квадратными матрицами.
Начните с разреженной матрицы и вычислите LU-факторизацию.
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
, иметь ту же сумму-строку.
Начните с разреженной матрицы и вычислите LU-факторизацию.
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
ненули, полная LU-факторизация имеет 126478
ненули и неполная LU-факторизация с 0
уровень заливки, имеет 7840
ненули, столько же, сколько и A
.
Эти неполные факторизации могут быть использованы в качестве предварительных кондиционеров для системы линейных уравнений, решаемых итерационными методами, такими как BICG (BiConjugate Gradients), GMRES (обобщенный метод минимальных невязок).
[1] Saad, Yousef, Итерационные методы для разреженных линейных систем, PWS Publishing Company, 1996, Глава 10 - Preconditioning Technologies.