ilu
Factorisation LU incomplete.
📝Syntaxe
LU = ilu(A)
LU = ilu(A, opts)
[L, U] = ilu(A)
[L, U] = ilu(A, opts)
[L, U, P] = ilu(A, opts)
📥Arguments d'entrée
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.
📤Arguments de sortie
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.
📄Description

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.

💡Exemples
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)
Factorisation ILUTP sparse single complexe.
A = sparse(single([4 1i; 2 3]));
opts.type = 'ilutp';
opts.droptol = 0;
[L, U, P] = ilu(A, opts)
full(P * A - L * U)
Controler le pivotage et le remplissage conserve en mode avec seuil.
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)
🔗Voir aussi
bicgstabgmresqmrlu
Used Functions
Routines sparse Nelson
🕔Historique des versions
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.
Modifier cette page sur GitHub