Неполная LU-факторизация
ilu(A,setup)
[L,U] = ilu(A,setup)
[L,U,P] = ilu(A,setup)
ilu
производит модуль нижняя треугольная матрица, верхняя треугольная матрица и матрица перестановок.
ilu(A,setup)
вычисляет неполную LU-факторизацию A
. setup
является входной структурой максимум с пятью опциями настройки. Поля нужно назвать точно как показано в приведенной ниже таблице. Можно включать любое количество этих полей в структуре и задать их в любом порядке. Проигнорированы любые дополнительные поля.
Имя поля | Описание |
---|---|
| Тип факторизации. Значения для
Если |
| Пропустите допуск неполной 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 - предварительное создание условий методов.