Неполная 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 - предварительное создание условий методов.