[C++]Factorisation Cholesky qui marche pas

Factorisation Cholesky qui marche pas [C++] - C++ - Programmation

Marsh Posté le 17-11-2006 à 23:40:09    

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 :
  1. void Cholesky(int n, float A[N][N], float L[N][N], float Lt[N][N])
  2. {
  3.     L[0][0]=sqrt(A[0][0]);
  4.     float somme;
  5.     for(int i=1;i<n;i++)
  6.     {
  7.         for(int j=0;j<i;j++)
  8.         {
  9.             somme=0;
  10.             for(int k=0;k<j;j++)
  11.             { 
  12.                 somme=somme+L[i][k]*L[j][k];
  13.             }
  14.             L[i][j]=(A[i][j]-somme)/L[j][j];
  15.         }
  16.         somme=0;
  17.         for(int k=0;k<i;k++)
  18.         {
  19.             somme=somme+L[i][k]*L[i][k];
  20.         }
  21.         L[i][i]=sqrt(A[i][i]-somme);
  22.     }
  23. }


 
(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!

Reply

Marsh Posté le 17-11-2006 à 23:40:09   

Reply

Marsh Posté le 18-11-2006 à 08:38:19    

Salut !
   
   tu est sûr, que c'est bien j++ qu'il faut mettre comme incrémentation dans ton for ligne 11 et pas plutôt k++ ? Car là le le vois pas sortir de cette boucle...

Reply

Marsh Posté le 18-11-2006 à 14:01:02    

Amonchakai a écrit :

Salut !
   
   tu est sûr, que c'est bien j++ qu'il faut mettre comme incrémentation dans ton for ligne 11 et pas plutôt k++ ? Car là le le vois pas sortir de cette boucle...


 
lol !
Merci, heureusement que tu me l'as fait remarqué. J'étais vraiment trop fatigué hier ..
 
Je viens de tester et ca plante plus en effet.

Reply

Marsh Posté le 30-11-2006 à 21:05:38    

le numerical recipes est ton ami sinon :o

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed