lu a comme argument une matrice carrée A d’ordre n
(numérique ou symbolique).
lu(A) renvoie une permutation p de 0..n−1, une matrice
triangulaire inférieure L avec des 1 sur sa diagonale et une matrice
triangulaire supérieure U.
Ces matrices sont telles que :
L*U*x=P*B=p(B) where p(B)=[bp(0),bp(1)..bp(n−1)], B=[b0,b1..bn−1] |
On peut aussi définir à partir de p la matrice de permutation Pn
par :
Pn[i, p(i)]=1 et
Pn[i, j]=0 si j ≠ p(i).
C’est la matrice obtenue en permutant, selon la permutation p, les lignes de
la matrice unité.
On peut utiliser la fonction permu2mat :
permu2mat(p) renvoie la matrice P d’ordre n.
On tape :
On obtient :
On a, en effet, n=2 donc :
P[0,p(0)]=P2[0,1]=1, P[1,p(1)]=P2[1,0]=1, P=[[0,1],[1,0]] |
Vérification :
On tape :
On obtient:
Il faut noter que la permutation est différente lorsque les données sont exactes (le choix du pivot est plus simple). On tape :
On obtient :
On tape :
On obtient :