L = ichol(A)
L = ichol(A, opts)
| Paramètre | Description |
|---|---|
| A | une matrice carree sparse flottante reelle symetrique ou complexe hermitienne. |
| opts | une structure scalaire avec les champs optionnels type, droptol, diagcomp, michol et shape. |
| Paramètre | Description |
|---|---|
| L | facteur sparse triangulaire inferieur ou superieur de Cholesky incomplet. |
ichol calcule un facteur sparse triangulaire inferieur L utilisable comme preconditionneur.
La matrice d'entree doit etre symetrique definie positive pour les donnees reelles ou hermitienne definie positive pour les donnees complexes.
opts.type peut valoir 'nofill' ou 'ict'. La valeur par defaut est 'nofill'.
opts.droptol est un scalaire positif ou nul utilise par le mode 'ict'. La valeur par defaut est 0. Les entrees dont le module est inferieur au seuil relatif a l'echelle de colonne sont supprimees du facteur incomplet.
opts.diagcomp applique une compensation diagonale relative avant la factorisation. Cela peut rendre utilisables comme preconditionneurs des matrices definies positives limites ou des matrices hermitiennes difficiles, sans modifier la matrice sparse d'entree.
opts.michol peut valoir 'on' ou 'off'. En mode 'ict', la variante modifiee reporte les entrees structurelles abandonnees sur la diagonale afin de mieux conserver les sommes de lignes.
opts.shape peut valoir 'lower' ou 'upper'. La valeur par defaut est 'lower'.
Les valeurs textuelles d'options comme opts.type, opts.michol et opts.shape 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. Le facteur retourne conserve la classe numerique d'entree.
Le facteur peut etre utilise directement comme preconditionneur pour pcg, par exemple pcg(A, b, tol, maxit, L, L').
Les matrices non symetriques, non hermitiennes, avec diagonale structurellement nulle, ou non definies positives sont rejetees avec un message explicite.
A = sparse([4 -1 0; -1 4 -1; 0 -1 3]);
L = ichol(A)
full(L * L')
A = sparse([4 -1 0; -1 4 -1; 0 -1 3]);
opts.type = 'ict';
opts.droptol = 0.6;
L = ichol(A, opts)
A = sparse([4 -1 0; -1 4 -1; 0 -1 3]);
opts.shape = 'upper';
R = ichol(A, opts)
A = sparse(single([4 1i; -1i 3]));
opts.type = 'ict';
opts.droptol = 0;
L = ichol(A, opts)
b = single([1 + 2i; 3 - 1i]);
[x, flag] = pcg(A, b, 1e-6, 20, L, L')
A = sparse([1 2 + 1i; 2 - 1i 1]);
opts.diagcomp = 3;
L = ichol(A, opts);
full(L * L')
| Version | Description |
|---|---|
| 2.0.0 | version initiale |
| 2.0.0 | prise en charge des matrices sparse single et sparse single complexes, du mode ict, de diagcomp, de shape, des options string scalar et de l'utilisation comme preconditionneur. |