Неполная LU-факторизация
ilu(A,setup)
[L,U] = ilu(A,setup)
[L,U,P] = ilu(A,setup)
ilu
производит модуль нижняя треугольная матрица, верхняя треугольная матрица и матрица перестановок.
ilu(A,setup)
вычисляет неполную LU-факторизацию A
настройка
входная структура максимум с пятью опциями настройки. Поля нужно назвать точно как показано в приведенной ниже таблице. Можно включать любое количество этих полей в структуре и задать их в любом порядке. Проигнорированы любые дополнительные поля.
Имя поля | Описание |
---|---|
| Тип факторизации. Значения для
Если |
| Пропустите допуск неполной LU-факторизации. Ненулевые записи abs(U(i,j)) >= droptol*norm(A(:,j)), за исключением диагональных элементов, которые сохраняются независимо от удовлетворения критерию. Записи abs(L(i,j)) >= droptol*norm(A(:,j))/U(j,j). |
| Модифицированная неполная LU-факторизация. Значения для
|
| Если |
| Порог центра между |
ilu(A,setup)
возвращает L+U-speye(size(A))
, где L
модуль нижняя треугольная матрица и U
верхняя треугольная матрица.
[L,U] = ilu(A,setup)
возвращает модуль нижняя треугольная матрица в L
и верхняя треугольная матрица в U
.
[L,U,P] = ilu(A,setup)
возвращает модуль нижняя треугольная матрица в L
, верхняя треугольная матрица в U
, и матрица перестановок в P
.
ilu
работает над разреженными квадратными матрицами только.
Запустите с разреженной матрицы и вычислите LU-факторизацию.
A = gallery('neumann', 1600) + speye(1600); setup.type = 'crout'; setup.milu = 'row'; setup.droptol = 0.1; [L,U] = ilu(A,setup); e = ones(size(A,2),1); norm(A*e-L*U*e) ans = 1.4251e-014
Это показывает тот A
и L*U
, где L
и U
даны модифицированным ILU
Crout, имейте ту же сумму строки.
Запустите с разреженной матрицы и вычислите LU-факторизацию.
A = gallery('neumann', 1600) + speye(1600); setup.type = 'nofill'; nnz(A) ans = 7840 nnz(lu(A)) ans = 126478 nnz(ilu(A,setup)) ans = 7840
Это показывает тот A
имеет 7840
ненули, полная LU-факторизация имеет 126478
ненули и неполная LU-факторизация, с 0
уровень временной замены, имеет 7840
ненули, та же сумма как A
.
Эти неполные факторизации могут быть полезны как предварительные формирователи для системы линейных уравнений, решаемых итерационными методами, такими как BICG (Градиенты BiConjugate), GMRES (Обобщенный Метод минимальных невязок).
[1] Саад, Yousef, итерационные методы для разреженных линейных систем, издательства PWS, 1996, глава 10 - предварительное создание условий методов.