x = pcg(A, b)
x = pcg(A, b, tol, maxit)
x = pcg(A, b, tol, maxit, M1, M2, x0)
[x, flag, relres, iter, resvec] = pcg(...)
| Paramètre | Description |
|---|---|
| A | une matrice carree sparse flottante symetrique ou hermitienne definie positive. |
| b | un vecteur second membre flottant. |
| tol | tolerance de convergence scalaire reelle finie. La valeur par defaut est 1e-6. |
| maxit | nombre maximal d'iterations, entier positif ou nul. |
| M1, M2 | matrices sparse optionnelles de preconditionnement ou vecteurs diagonaux. |
| x0 | vecteur initial optionnel. |
| Paramètre | Description |
|---|---|
| x | vecteur solution calcule. |
| flag | 0 si la convergence est atteinte, 1 si maxit est atteint, 4 en cas de rupture numerique. |
| relres | norme relative du residu. |
| iter | nombre d'iterations. |
| resvec | historique des normes de residu. |
pcg resout A * x = b avec la methode des gradients conjugues preconditionnes.
La methode est destinee aux matrices sparse flottantes symetriques ou hermitiennes definies positives.
Les matrices sparse single et sparse single complexes sont prises en charge. Si M1, M2 ou x0 est complexe, le calcul utilise le chemin complexe adapte.
A = sparse([4 -1 0; -1 4 -1; 0 -1 3]);
b = [15; 10; 10];
[x, flag, relres, iter] = pcg(A, b, 1e-12, 20)
A = sparse([4 -1 0; -1 4 -1; 0 -1 3]);
b = [15; 10; 10];
L = ichol(A);
[x, flag, relres, iter] = pcg(A, b, 1e-12, 20, L, L')
A = sparse(single([4 1i; -1i 3]));
b = single([1; 2]);
L = ichol(A);
[x, flag] = pcg(A, b, 1e-6, 20, L, L')
| Version | Description |
|---|---|
| 2.0.0 | version initiale |
| 2.0.0 | prise en charge des donnees sparse single et sparse single complexes. |