Répondre à la discussion
Affichage des résultats 1 à 4 sur 4

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



  1. #1
    Archimerde

    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. Publicité
  3. #2
    lou_ibmix_xi

    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]...

  4. #3
    Archimerde

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

    Merci, je devrais pouvoir avancer avec ces tuyaux!

  5. #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!

  6. 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 mariejuana dans le forum Mathématiques du supérieur
    Réponses: 4
    Dernier message: 02/07/2008, 16h55
  2. Résolution systeme d'equations à 2inconnues
    Par laroche1 dans le forum Mathématiques du supérieur
    Réponses: 8
    Dernier message: 02/03/2008, 18h41
  3. Résolution algébrique d'un système d'équations sous Matlab
    Par jbollagnier dans le forum Mathématiques du supérieur
    Réponses: 6
    Dernier message: 22/10/2007, 10h45
  4. la résolution d'un systéme d'équations différentielles
    Par H.Dalila dans le forum Mathématiques du supérieur
    Réponses: 0
    Dernier message: 26/04/2007, 14h07
  5. Résolution d'un système d'équations différentielles d'ordre 1
    Par layougue dans le forum Mathématiques du supérieur
    Réponses: 4
    Dernier message: 23/11/2006, 13h56
Découvrez nos comparatifs produits sur l'informatique et les technologies.