LU = ilu(A)
LU = ilu(A, opts)
[L, U] = ilu(A)
[L, U] = ilu(A, opts)
[L, U, P] = ilu(A, opts)
| Paramètre | Description |
|---|---|
| A | une matrice carree sparse flottante reelle ou complexe. |
| opts | une structure scalaire avec les champs optionnels type, droptol, fillfactor, udiag et thresh. |
| Paramètre | Description |
|---|---|
| LU | facteur sparse unique contenant la partie strictement inferieure de L et la partie superieure de U. |
| L | facteur sparse triangulaire inferieur LU incomplet. |
| U | facteur sparse triangulaire superieur LU incomplet. |
| P | matrice sparse de permutation de lignes. Quand elle est retournee, P * A est approximee par L * U. |
ilu calcule des facteurs LU incomplets sparse utilisables comme preconditionneurs.
opts.type peut valoir 'nofill' ou 'ilutp'. La valeur par defaut est 'nofill', qui conserve le motif sparse d'entree et n'applique pas de seuil de suppression.
En mode 'ilutp', opts.droptol supprime les petites entrees, opts.fillfactor limite le remplissage conserve par ligne, opts.udiag autorise les pivots nuls, et opts.thresh est un seuil de pivotage entre 0 et 1. Les valeurs par defaut sont droptol = 1e-4, fillfactor = 10, udiag = false et thresh = 1.
Le mode 'ilutp' utilise un pivotage sparse par lignes. Avec trois sorties, P contient la permutation de lignes et P * A est approximee par L * U. Avec une sortie, le facteur sparse compacte stocke la partie strictement inferieure de L et la partie superieure de U.
Les valeurs textuelles d'options comme opts.type peuvent etre des vecteurs lignes de caracteres ou des string scalars.
Les matrices sparse double, single, double complexes et single complexes sont prises en charge. Les facteurs L et U conservent la classe numerique d'entree ; P est une matrice sparse de permutation.
Les facteurs peuvent etre utilises directement comme preconditionneurs pour les solveurs de Krylov tels que gmres, bicgstab, bicg, cgs et qmr.
Les pivots nuls non autorises, les options invalides et les matrices non carrees sont rejetes avant de retourner des facteurs incomplets.
A = sparse([4 1 0; 2 3 1; 0 1 2]);
LU = ilu(A)
full(LU)
A = sparse([4 1 0; 2 3 1; 0 1 2]);
[L, U] = ilu(A)
full(L * U)
A = sparse([4 1 0; 2 3 1; 0 1 2]);
b = [1; 2; 3];
[L, U] = ilu(A);
x = bicgstab(A, b, 1e-12, 20, L, U)
A = sparse(single([4 1i; 2 3]));
opts.type = 'ilutp';
opts.droptol = 0;
[L, U, P] = ilu(A, opts)
full(P * A - L * U)
A = sparse([0.2 1; 1 1]);
opts.type = 'ilutp';
opts.droptol = 0;
opts.fillfactor = 10;
opts.thresh = 0.25;
[L, U, P] = ilu(A, opts);
full(P * A - L * U)
| Version | Description |
|---|---|
| 2.0.0 | version initiale |
| 2.0.0 | prise en charge des matrices sparse single et sparse single complexes, du mode ilutp, du pivotage, des options string scalar et de l'utilisation comme preconditionneur. |