Ma question se trouve à mi-chemin entre math et info.
J'ai retrouvé un code pour le calcul de la décomposition de cholesky, à partir de la matrice A (et le résultat est retourné dans la partie triangulaire inférieure de A). Voici ma boucle
- Code: Tout sélectionner
do k=1,size(A,dim=1)
t=M(k,k)
do j=1,k-1
t=t-M(k,j)**2
end do
[B]if (t .le. 0) stop"Erreur: La matrice n'est pas définie positive" [/B]
M(k,k)=sqrt(t)
p=1/M(k,k)
do i=k+1,size(A,dim=1)
t=M(i,k)
do j=1,k-1
t=t-M(i,j)*M(k,j)
end do
M(i,k)=p*t
end do
end do
Au milieu de mon code, je teste si t est plus petit ou égal à 0. Si c'est le cas, c'est que ma matrice de départ A, n'était pas définie positive (visiblement).
Est-ce que c'est vrai? (attention au fait que les éléments de la partie triangulaire inférieure de A sont modifiés (d'abord la colonne 1 de haut en bas puis la 2,...) )
merci d'avance
