Rechercher : dans
Par :

Resolution d'un syst equations lineaires en C

Dernière réponse le 6 fév 2008 à 19:14:25 tonguim, le 18 jun 2004 à 12:35:07 
 Signaler ce message aux modérateurs

Bonjour,
pouvez vous, s'il vous plait, m'aider a decouvrir ce qui fait que mon programme ne donne pas les resultats attendus?

Il s'agit d'un programme qui resoud un systeme d'equations lineaires.
Pour le test, prenez par exemple A11 = 3; A12 = 1; B1 = 7; A21 = 5; A22 = -2 et B2 = 8.

Merci

Mon code:


#include <stdio.h>
#include <conio.h>

/* Programme qui resoud un systeme d'equations lineaires */*

main ()
{
//clrscr ();
float A11, A12, A21, A22, B1, B2, X1, X2, deltaX1 = 0, deltaX2 = 0, delta = 1;

printf("Resolution d'un syteme d'equations lineaires de la forme\n\n");
printf("|A11 X1 + A12 X2 = B1\n");
printf("|\n");
printf("|A21 X1 + A22 X2 = B2\n\n");

/* saisie des coefficients */
printf("Entrez les coefficients A11, A12, A21, A22, B1, B2 tel que: \n\n");
printf("A11 = "); scanf("%d", &A11);
printf("A12 = "); scanf("%d", &A12);
printf("B1 = "); scanf("%d", &B1);

printf("A21 = "); scanf("%d", &A21);
printf("A22 = "); scanf("%d", &A22);
printf("B2 = "); scanf("%d", &B2);

/* calcul des discriminants */
delta = (A11 * A22 - A21 * A22);
deltaX1 = (B1 * A22 - B2 * A12);
deltaX2 = (B2 * A11 - B1 * A21);

X1 = deltaX1/delta;
X2 = deltaX2/delta;

/* affichage du couple solution */
printf("\n\nL'ensemble des solutions de ce systeme d'equations est: \n\n{%f; %f}",X1, X2);

}

1

Bzozo, le 18 jun 2004 à 13:14:39

/* calcul des discriminants */
delta = (A11 * A22 - A21 * A22); // <<< Ici
deltaX1 = (B1 * A22 - B2 * A12);
deltaX2 = (B2 * A11 - B1 * A21);

J'ai pas étudié le problème (enfin si, mais y'a longtemps et j'ai la flemme), mais il me semble que ce doit être plutôt :
A11 * A22 - A21 * A12
non ?

Et avec ça tu ne résout que les systèmes d'équations qui admettent une seule solution :-\

A+
Bzozo

Répondre à Bzozo

2

tonguim, le 18 jun 2004 à 13:28:41

Il y'a une erreur à ce niveau effectivement: je l'ai corrigé.
Mais le problème ne vient pas de là, car je n'ai toujours pas le resultat attendu.

Merci Bzozo


#include <stdio.h>
#include <conio.h>

/* Programme qui resoud un systeme d'equations lineaires */*

main ()
{
//clrscr ();
float A11, A12, A21, A22, B1, B2, X1, X2, deltaX1 = 0, deltaX2 = 0, delta = 1;

printf("Resolution d'un syteme d'equations lineaires de la forme\n\n");
printf("|A11 X1 + A12 X2 = B1\n");
printf("|\n");
printf("|A21 X1 + A22 X2 = B2\n\n");

/* saisie des coefficients */
printf("Entrez les coefficients A11, A12, A21, A22, B1, B2 tel que: \n\n");
printf("A11 = "); scanf("%d", &A11);
printf("A12 = "); scanf("%d", &A12);
printf("B1 = "); scanf("%d", &B1);

printf("A21 = "); scanf("%d", &A21);
printf("A22 = "); scanf("%d", &A22);
printf("B2 = "); scanf("%d", &B2);

/* calcul des discriminants */
delta = (A11 * A22 - A21 * A12);
deltaX1 = (B1 * A22 - B2 * A12);
deltaX2 = (B2 * A11 - B1 * A21);

X1 = deltaX1/delta;
X2 = deltaX2/delta;

/* affichage du couple solution */
printf("\n\nL'ensemble des solutions de ce systeme d'equations est: \n\n{%f; %f}",X1, X2);

}

Répondre à tonguim

3

marvinrouge, le 18 jun 2004 à 15:04:54

Salut Tonquim

1) n'utilses QUE des double et JAMAIS les float (ils sont buggués)

2) ne mélange pas %d et %f pour les float

3) n'utilises QUE %lf avec les double

4) bonne chance avec ça ça va marcher !

Répondre à marvinrouge

6

pom, le 18 jun 2004 à 15:35:03

Salut Marvinrouge,
que veut dire que les float sont buggés ?
Est-ce la mele chose pour le C++ ?

merci
pom

Répondre à pom

4

Canard007, le 18 jun 2004 à 15:24:22

Salut;

tu fait une daclaration:
float A11;

et apres dans ton scanf tu fait:
scanf("%d", &A11);

%d c est pour les int....
remplace par %f sur tout tes scanf et ca va marcher

Répondre à Canard007

5

tonguim, le 18 jun 2004 à 15:31:22

Merci a tous.

Mon programme marche maintenant!
Il ne me donnait pas les résultats attendus car j'avais mis %d dans l'instruction de saisie scanf pour saisir des float !!! j'aurai dû mettre plutôt %f.

Répondre à tonguim

7

 souf46, le 6 fév 2008 à 19:14:25

Salut tt le monde j un programme en c ki permet de resoudre les systemes lineaires mai j trouvé des ereurs et j v1 po de les coriger kelk1 peut m aider

Répondre à souf46
Collection CommentÇaMarche.net