Méthode de cholesky
znnoubia
Messages postés
2
Date d'inscription
Statut
Membre
Dernière intervention
-
Pacorabanix Messages postés 3248 Date d'inscription Statut Membre Dernière intervention -
Pacorabanix Messages postés 3248 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
le professeur m'a demandé d'écrire un programme en langage c, qui utilise une matrice A et donne en sortie une matrice L qui est la décomposition de A à l'aide de l'algorithme de cholesky
voila le code source que j'au utilisé
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main()
{
double A[10][10]={0},L[10][10]={0},b[10]={0};
int i=0,j=0,k=0,n=0,l=0;
float somme;
printf("Donner l'ordre de la matrice\n");
scanf("%d",&n);
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
printf("A[%d][%d]= ",i+1,j+1);
scanf("%f",&A[i][j]);
}
}
printf("\n\n");
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
printf("%f",A[i][j]);
printf("\n\n");
}
L[0][0]=sqrt(A[0][0]);
for(i=1;i<n;i++)
{
for(j=0;j<i;j++)
{
somme=0;
for(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(k=0;k<i;k++)
{
somme=somme+(L[i][k]*L[i][k]);
}
L[i][i]=sqrt(A[i][i]-somme);
}
getchar();
}
il s'éxécute mais il me demande que l'ordre de la matrice et les différents éléments de A et ensuite il m'affiche A, pourtant moi j'ai besoin de L.
sssssssssssssssvpppppppppp aidez moi, c'est urgent
le professeur m'a demandé d'écrire un programme en langage c, qui utilise une matrice A et donne en sortie une matrice L qui est la décomposition de A à l'aide de l'algorithme de cholesky
voila le code source que j'au utilisé
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main()
{
double A[10][10]={0},L[10][10]={0},b[10]={0};
int i=0,j=0,k=0,n=0,l=0;
float somme;
printf("Donner l'ordre de la matrice\n");
scanf("%d",&n);
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
printf("A[%d][%d]= ",i+1,j+1);
scanf("%f",&A[i][j]);
}
}
printf("\n\n");
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
printf("%f",A[i][j]);
printf("\n\n");
}
L[0][0]=sqrt(A[0][0]);
for(i=1;i<n;i++)
{
for(j=0;j<i;j++)
{
somme=0;
for(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(k=0;k<i;k++)
{
somme=somme+(L[i][k]*L[i][k]);
}
L[i][i]=sqrt(A[i][i]-somme);
}
getchar();
}
il s'éxécute mais il me demande que l'ordre de la matrice et les différents éléments de A et ensuite il m'affiche A, pourtant moi j'ai besoin de L.
sssssssssssssssvpppppppppp aidez moi, c'est urgent
A voir également:
- Algorithme de cholesky matlab
- Logiciel algorithme euromillion - Télécharger - Loisirs créatifs
- Logiciel algorithme gratuit - Télécharger - Édition & Programmation
- Algorithme euromillion excel gratuit - Forum Algorithmes / Méthodes
- Algorithme ajout rapide snapchat - Forum Snapchat
- Ajout rapide snap - Forum Snapchat
donc
si j'ai bien compris, vous avez remarquer que j'ai demandé au programme que le faite de m'afficher la matrice A, pourtant j'ai ajouté encore un printf qui m'affiche la matrice L, et cette fois j'ai ni A ni L.
SVP essayez de voir pourquoi et merci d'avance
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main()
{
double A[10][10]={0},L[10][10]={0},b[10]={0};
int i=0,j=0,k=0,n=0,l=0;
float somme;
printf("Donner l'ordre de la matrice\n");
scanf("%d",&n);
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
printf("A[%d][%d]= ",i+1,j+1);
scanf("%f",&A[i][j]);
}
}
printf("\n\n");
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
printf("%f",A[i][j]);
printf("\n\n");
}
L[0][0]=sqrt(A[0][0]);
for(i=1;i<n;i++)
{
for(j=0;j<i;j++)
{
somme=0;
for(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(k=0;k<i;k++)
{
somme=somme+(L[i][k]*L[i][k]);
}
L[i][i]=sqrt(A[i][i]-somme);
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
printf("%f",L[i][j]);
printf("\n\n");
}
}
getchar();
}
Je cherche de mon coté et je te tiens au courant.