mino1001
Messages postés12Date d'inscriptionmercredi 17 janvier 2007StatutMembreDernière intervention17 avril 2007
-
17 avril 2007 à 00:33
cs_brahim08
Messages postés3Date d'inscriptionmardi 27 novembre 2007StatutMembreDernière intervention12 janvier 2009
-
10 mai 2008 à 15:32
voila mon programme
,et je ne c pas pourquoi il ne calcule pas les solutions
du systeme Ax=b telles que:
5 -1 -1 -1 -4 1
-1 10 -1 -1 12 2
A -1 -1 5 -1 b 8 solution a trouver: x 3
-1 -1 -1 10 34 4
on commence par Xi egale 0,0,0,0
#include<stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
int i,j,k;
float a,A[4][4],b[4],x[4],g[4],some;
/*saisie de la matrice A */
printf(" donner les composantes de la matrice A \n");
for(i=0;i<4;i++)
{
simafst
Messages postés37Date d'inscriptiondimanche 20 mai 2007StatutMembreDernière intervention11 juin 20101 20 mai 2007 à 02:17
salut je sai pa exactement ton probléme mais je vai te donner un code qui marche.
/*Algorithme de JACOBI*/
#include<stdio.h>
#include<math.h>
#define DIM 200
#include<conio.h>
#include<stdlib.h>
void affiche_matrice_vecteur(double A[DIM][DIM],double B[DIM],int n)/*fonction pour l'affichage d'une matrice m de dimention n*/
{
int i,j;
printf("la matrice\n");
for(i=0;i<n;i++)/*boucle for sur les lignes*/
{
printf("|");
for(j=0;j<n;j++)/*boucle for sur les colonnes*/
printf(" %6.2lf ",A[i][j]);
printf("|\n");
}
}
void init_matrice(double m[DIM][DIM],int n)/*fonction pour l'initialisation d'une matrice m de dimention n*/
{
int i,j;
for(i=0;i<n;i++)/*boucle for sur les lignes*/
{
for(j=0;jeps)
return(0);/*si le critére d'arret n'est pas verifié on retourne 0*/
return(1);/*si le critére d'arret est verifié on retourne 1*/
}
void init_vect(double X[DIM],int n,double a)/*fonction pour l'initialisation d'un vecteur*/
{
int i;
for(i=0;i<n;i++)
X[i]=a;/*On initialise la solution à a*/
}
int main()
{
double a[DIM][DIM],b[DIM],x[DIM],j[DIM][DIM],x0[DIM];
int n;
int nit_AJ=0;/*on init le compteur du nombre d'itération pour obtenir le résultat*/
double eps=0.00;/* on init eps(pour le critére d'arret)*/
printf("\n-DEBUT de l'algorithme de JACOBI-\n");
printf("donner la dimention du systeme : ");
scanf("%d",&n);
init_matrice(a,n);
init_vecteur(a,b,n);
affiche_matrice_vecteur(a,b,n);
printf("donner saisir epsilon:\n");
while(eps<=0)
scanf("%lf",&eps);
init_vect(x0,n,2);/*partant de x0=2*/
init_vect(x,n,0);
while(!converge(x,x0,eps,n))/*tant que la convergence est vérifier*/
{
calcul_vecteur(a,b,x,x0,n);
nit_AJ++;
}
affiche_sys(a,b,x,n);
printf("Le nombre d'itérations est:%d\n",nit_AJ);
system("pause");
}
emmatopiak
Messages postés149Date d'inscriptionmercredi 28 mars 2007StatutMembreDernière intervention17 mai 20072 6 mai 2007 à 10:45
Salut,
Je suis pas sûre de connaitre l'algo de jacobi mais voilà deux problèmes de ton programme :
1. Tu fais à un moment x[k] = g[k] et juste en dessous tu fais ton while (g[1]-x[1]<0.0001)
--et bien si x[k]=g[k], g[1]-x[1] vaut 0 et donc la boucle s'arrête au premier tour.
Donc y'a problème dans ta boucle :p
2. Quand tu testes x[1] et g[1], tu es conscient que c'est le deuxième élément n'est ce pas ? C'est étrange de tester le deuxième élément je trouve, pourquoi pas x[0] et g[0] ? ou pourquoi pas tous ?
--et puis c'est étonnant de se comparer à la solution x vu que cette solution est inconnue
= @++
emmatopiak
Messages postés149Date d'inscriptionmercredi 28 mars 2007StatutMembreDernière intervention17 mai 20072 6 mai 2007 à 10:47
Salut,
Je suis pas sûre de connaitre l'algo de jacobi mais voilà deux problèmes de ton programme :
1. Tu fais à un moment x[k] = g[k] et juste en dessous tu fais ton while (g[1]-x[1]<0.0001)
--et bien si x[k]=g[k], g[1]-x[1] vaut 0 et donc la boucle s'arrête au premier tour.
Donc y'a problème dans ta boucle :p
2. Quand tu testes x[1] et g[1], tu es conscient que c'est le deuxième élément n'est ce pas ? C'est étrange de tester le deuxième élément je trouve, pourquoi pas x[0] et g[0] ? ou pourquoi pas tous ?
--et puis c'est étonnant de se comparer à la solution x vu que cette solution est inconnue
= @++
cs_brahim08
Messages postés3Date d'inscriptionmardi 27 novembre 2007StatutMembreDernière intervention12 janvier 2009 10 mai 2008 à 15:32
je cherche de l'aide sur la source executable de jacobi pour calculer les valeurs propres en c++
mon émail [mailto:raahime@hotmail.com raahime@hotmail.com] merci