Bonsoir,
J'ai essayé d'écrire une procédure qui me donne la factorisation Cholesky d'une matrice supposé symétrique définie positive ( factorise une matrice en 2 matrices triangulaire dont l'une est transposé de l'autre) mais il y a un problème: Le programme compile bien (0 erreur qu'il me dit) mais lorsque je lance le programme pour une matrice de dimension supérieur ou égal à 3, ça fait planter MS-DOS !
Je précise que j'utilise codeblocks sous windows.
Voici le bout de code correspondant à la procédure:
Code :
- void Cholesky(int n, float A[N][N], float L[N][N], float Lt[N][N])
- {
- L[0][0]=sqrt(A[0][0]);
- float somme;
- for(int i=1;i<n;i++)
- {
- for(int j=0;j<i;j++)
- {
- somme=0;
- for(int k=0;k<j;j++)
- {
- somme=somme+L[i][k]*L[j][k];
- }
- L[i][j]=(A[i][j]-somme)/L[j][j];
- }
- somme=0;
- for(int k=0;k<i;k++)
- {
- somme=somme+L[i][k]*L[i][k];
- }
- L[i][i]=sqrt(A[i][i]-somme);
- }
- }
|
(j'ai défini la valeur de N à 10 au début du programme)
Voilà, j'espère que vous pourrez m'aider à trouver d'ou vient le problème.
Merci d'avance!