Buongiorno ragazzi, sto cercando di sviluppare l'algoritmo di Cholesky per la fattorizzazione di una matrice simmetrica definita positiva. Penso di averlo scritto bene, ma ho un problema nel risultato. La funzione che utilizzo è
int decomposizione(matrix a, matrix l, int n){
int i,j,k;
double sum;
for (j=0; j<n; j++) {
for (sum=k=0; k<j; k++) sum += l[j][k]*l[j][k];
sum=a[j][j]-sum;
l[j][j] = sqrt(sum);
for (i=j+1; i<n; i++) {
for (sum=k=0; k<j; k++) sum += l[i][k]*l[j][k];
l[i][j]=(a[i][j]-sum)/l[j][j];
}
}
}
La matrice A è una matrice nxn simmetrica e attraverso questa funzione vado anche a verificare che sia definita positiva (ho tolto quelle righe in quanto futili al fine della mia domanda).
La funzione fa quello che deve fare, ma ogni volta che metto ad esempio una matrice 3x3 mette in posizione L[0][2] un numero a 38 cifre. Dove sto sbagliando?