next up previous contents index
suivant: Le programme de factorisation monter: Les méthodes précédent: La méthode utilisant la   Table des matières   Index

La méthode par identification

On peut aussi déterminer C par identification en utilisant l'égalité B=C*tran(C) et C triangulaire inférieure.
On trouve pour tout entier j compris entre 0 et n - 1 :
- pour la diagonale :
$ \tt (C[j,j])^2=B[j,j]-\sum_{k=0}^{j-1}(C[j,k])^2$
- pour les termes subdiagonaux c'est à dire pour j + 1 $ \leq$ l $ \leq$ n - 1 :
$ \tt C[l,j]=1/C[j,j]*(B[l,j]-\sum_{k=0}^{j-1}C[l,k]*C[j,k])$
On peut donc calculer les coefficients de C par colonnes, en effet, pour avoir la colonne j :
- on calcule le terme diagonal C[j,j] qui fait intervenir les termes de la ligne j des colonnes précédentes (avec un test vérifiant que le terme $ \tt B[j,j]-\sum_{k=0}^{j-1}(C[j,k])^2$ est positif), puis,
- on calcule les termes subdiagonaux C[l,j] pour j + 1 $ \leq$ l $ \leq$ n - 1 qui font intervenir les termes des colonnes précédentes des lignes précédentes. Mais cet algorithme n'est pas très bon car les termes de la matrice C sont obtenus à chaque étape avec une multiplication ou une division de racine carrée : il serait préférable d'introduire les racines carrées qu'à la fin du calcul comme dans la méthode LU. On va donc calculer une matrice CC (sans utiliser de racines carrées) et une matrice diagonale D (qui aura des racines carrées sur sa diagonale) de tel sorte que C=CC*D (la colonne k de CC*D est la colonne k de CC multiplié par D[k,k]).
Par exemple : C[0,0]* C[0,0]= B[0,0] on pose :
CC[0,0]= B[0,0]=a et D[0,0]=1/sqrt(a) ainsi
C[0,0]= CC[0,0]/sqrt(a)=sqrt(a) et on a bien :
C[0,0]* C[0,0]=a=B[0,0]
On aura donc C[l,0]=CC[l,0]/sqrt(a) c'est à dire :
CC[l,0]=B[l,0] pour 0 $ \leq$ l < n
Puis :
C[1,1]* C[1,1]=B[1,1]-C[1,0]*C[1,0]=B[1,1]-CC[1,0]*CC[1,0]/a=b
on pose :
CC[1,1]= B[1,1]-CC[1,0]*CC[1,0]/a=b et
D[1,1]=1/sqrt(b)
On aura donc pour 2 $ \leq$ l < n ;
C[l,1]=CC[l,1]/sqrt(b)=1/sqrt(b)*(B[l,1]-C[l,0]*C[1,0])
c'est à dire pour 2 $ \leq$ l < n :
CC[l,1]=B[l,1]-C[l,0]*C[1,0]=B[l,1]-CC[l,0]*CC[1,0]/a
etc.....
Les formules de récurences pour le calcul de CC sont :
- pour la diagonale :
$ \tt CC[j,j]=B[j,j]-\sum_{k=0}^{j-1}(CC[j,k])^2/CC[k,k]$
- pour les termes subdiagonaux c'est à dire pour j + 1 $ \leq$ l $ \leq$ n - 1 :
$ \tt CC[l,j]=B[l,j]-\sum_{k=0}^{j-1}CC[l,k]*CC[j,k]/CC[k,k]$
avec $ \tt D[j,j]=1/sqrt(CC[j,j])$.
next up previous contents index
suivant: Le programme de factorisation monter: Les méthodes précédent: La méthode utilisant la   Table des matières   Index
Documentation de giac écrite par Renée De Graeve