Resolution d'un syst equations lineaires en C

tonguim -  
souf46 Messages postés 1 Statut Membre -
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);

}

5 réponses

  1. tonguim
     
    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);

    }
    1
    1. marvinrouge
       
      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 !
      0
      1. pom > marvinrouge
         
        salut Marvinrouge,
        que veut dire que les float sont buggés ?
        Est-ce la mele chose pour le C++ ?

        merci
        pom
        0
  2. Bzozo
     
    /* 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
    0
  3. Canard007 Messages postés 5954 Date d'inscription   Statut Contributeur 216
     
    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
    0
  4. tonguim
     
    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.
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. souf46 Messages postés 1 Statut Membre
     
    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
    0