Prog C: résolution d'un système d'équations
Répondre à la discussion
Affichage des résultats 1 à 4 sur 4

Prog C: résolution d'un système d'équations



  1. #1
    invite2023feb4

    Prog C: résolution d'un système d'équations


    ------

    Bonjour à tous,

    j'ai "quelques" soucis pour programmer en C le sujet suivant: "résolution d'un système d'équations" la méthode de résolution proposée est la méthode du pivot de Gauss qui consiste (pour un système à 3 équations) dans un premier temps à éliminer l'inconnu x des 2 dernières équations puis y pour trouver l'inconnu z que l'on remplacera alors dans la deuxième ligne pour trouver y que l'on remplacera également dans la première pour trouver x. (la méthode est détaillée et beaucoup mieux expliquée sur: http://www.bibmath.net/dico/index.ph...ausspivot.html )

    Donc pour commencer le programme, on propose d'effectuer des échanges entres les 3 lignes L1 L2 et L3 pour placer en première celle avec le plus gros coefficient de x. J'utilise alors des boucles pour effectuer cet échange, mais mon principal problème est que pour «matérialiser les équations en C» il faut utiliser des matrices, et donc dans mon cas (pour un système à 3inconnus x,y,z donc 3 équations) un tableau à 2 dimensions (3*3), et je n'ai aucune idée de la façon dont on procède pour faire ce truc -> déjà un tableau simple je galère alors un 3*3!! Et les matrices je comprend pas comment ça marche!!!!

    HEEEEELP!!!!!!!!!!!!!

    -----

  2. #2
    inviteb9f49292

    Re : Prog C: résolution d'un système d'équations

    Une manière dynamique de créer ta matrice est:
    Code:
    unsigned int lignes, colonnes;
    double** matrice;
    matrice = malloc (lignes * sizeof (double*)); // allocation des index de lignes
    for (unsigned long n = 0; n < colonnes; n++) {
       matrice[n] = malloc (colonnes * sizeof (double)); // Aloocation de la ligne 'n'
    }
    pour la libérer:
    Code:
    for (unsigned long n = 0; n < colonnes; n++) {
       free (matrice [n]);
    }
    free (matrice);
    pour accéder à l'élément ligne i, colonne j, c'est tout dsimplement matrice [i][j]...

  3. #3
    invite2023feb4

    Re : Prog C: résolution d'un système d'équations

    Merci, je devrais pouvoir avancer avec ces tuyaux!

  4. #4
    polo974

    Re : Prog C: résolution d'un système d'équations

    sinon:
    Code:
    double matrice[3][3];
    c'est bien aussi...
    j'ai trouvé ça qui est clair quand on speak un peu l'english...

    la blague en C, c'est qu'un tableau à deux dimensions int tab [Y][X] est en fait un tableau de Y tableaux de X entiers.
    mais pour un usage sans utilisation de pointeurs, on s'en fout un peu pour le moment...

    Mais perso, j'utiliserais un tableau
    Code:
    double matrice[3][4]; // 3 lignes de 4 colonnes
    car les équations sont du genre: anx + bny + cnz + dn = 0 donc 4 constantes par ligne, sinon, il faut gérer séparément les dn, d'où risque d'oubli ou d'erreur au moment des permutations...

    Maintenant pour généraliser, la méthode du tableau de pointeur sur des lignes de double est sympa, car en plus, elle permet de permuter les lignes juste en échangeant les pointeurs dans le tableau de pointeurs.

    Par contre, par la suite, il ne faut pas oublier de libérer la mémoire (et dans l'ordre inverse de l'allocation)... ou de le faire sur la pile (avec alloca() au lieu de malloc()), ce qui fait qu'une fois sorti de la fonction, le ménage est fait!

  5. A voir en vidéo sur Futura

Discussions similaires

  1. Résolution numérique d'un système d'équations différentielles d'ordre 2 non linéaire
    Par invitea7473580 dans le forum Mathématiques du supérieur
    Réponses: 4
    Dernier message: 02/07/2008, 17h55
  2. Résolution systeme d'equations à 2inconnues
    Par invite2679ed8a dans le forum Mathématiques du supérieur
    Réponses: 8
    Dernier message: 02/03/2008, 19h41
  3. Résolution algébrique d'un système d'équations sous Matlab
    Par invite6f2024cf dans le forum Mathématiques du supérieur
    Réponses: 6
    Dernier message: 22/10/2007, 11h45
  4. la résolution d'un systéme d'équations différentielles
    Par invite81ff7c15 dans le forum Mathématiques du supérieur
    Réponses: 0
    Dernier message: 26/04/2007, 15h07
  5. Résolution d'un système d'équations différentielles d'ordre 1
    Par invitef6df8ec3 dans le forum Mathématiques du supérieur
    Réponses: 4
    Dernier message: 23/11/2006, 14h56
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...