Resolution d'un systeme d'equation

alibabapro -  
alibabapro Messages postés 23 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour, je veux utiliser la boucle << switch case>> pour résoudre un système d’équation à 2, 3, 4, 5 inconnus. Pouvez-vous m'aider? Voici mon code a 2 inconnus.

#include <stdlib.h>
#include <iostream>
#include <conio.h>
#include <iomanip>
using namespace std;

int main()
{

double matrice[2][3]={2,3,6,7,6,2};
double coefficient,x,y;
int i;
int j;
i=0;
j=0;

cout << "Résolution d'un système de 2 équations a trois inconnues\n";
cout << "Première équation, entrez en ordre respectif x,y et la constante\n";
cin >> matrice[0][0]>>matrice[0][1]>>matrice[0][2];
cout << "Seconde équation, entrez en ordre respectif x,y et la constante\n";
cin >> matrice[1][0]>>matrice[1][1]>>matrice[1][2];

coefficient=(-1*matrice[1][0]/matrice[0][0]);

i=0;
for(i;i<=2;i++)
{
matrice[1][i]=(coefficient*matrice[0][i])+matrice[1][i];               
}

y=matrice[1][2]/matrice[1][1];
x=(matrice[0][2]-(matrice[0][1]*y))/matrice[0][0];
cout << "X est egal a " << setw(10) << x << "\n";
cout << "Y est egal a " << setw(10) << y << "\n";
system("PAUSE");
return 0;
}


Merci pour votre aide!!!!

1 réponse

Dalfab Messages postés 706 Date d'inscription   Statut Membre Dernière intervention   101
 
Bonjour,

Pour écrire un code résolvant les systèmes d'équations à N inconnues, il te faut tout d'abord connaître une des méthodes possibles.
Le cas de 2 inconnus est assez simple, pour plus d'inconnues quelle méthode connais-tu (cela dépend de ton niveau en math) ?
Ensuite il te faudra 'oublier' l'utilisation d'un tableau de tableaux car en C++ les dimensions seraient obligatoirement fixes, hors tu désires les choisir dynamiquement. Le code devrait utiliser par exemple des vector<vector<double>>, ensuite le code sera composé de nombreuses boucles for() imbriquées en fonction de la méthode choisie.
0
alibabapro
 
Bonjour! Le principe vector<vector<double>> imbriques avec la boucle for() je n'ai pas compris.Pouvez-vous m'expliquer avec un exemle?
Merci!!
0
Dalfab Messages postés 706 Date d'inscription   Statut Membre Dernière intervention   101 > alibabapro
 
Il faut commencer par choisir une méthode de résolution (par substitution, par combinaisons linéaire, par inversion de matrice, par diagonalisation de matrice, ...), alors ?
Ensuite il faut aussi connaître le C++.
Si on a besoin d'une matrice N*M avec N et M connu dynamiquement, on doit utiliser un tableau dynamique (appelés vector<> en C++) ou le simuler via un simple buffer (façon C).
#include <vector>
using namespace std;
// définition d'une matrice N*M
vector<vector<double>> matrice(N); // nb de lignes
for ( auto& v : matrice ) v.resize(M); // nb de colonnes pour chaque ligne
// utilisation de la matrice, p.e somme de tous les éléments
for ( int i=0 ; i < N ; ++i )
for ( int j=0 ; j < M ; ++j )
somme += matrice[i][j]; // même notation qu'un tableau de tableaux à l'utilisation
0
alibabapro Messages postés 23 Date d'inscription   Statut Membre Dernière intervention   > Dalfab Messages postés 706 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour merci pour ta reponse, mais dans mon exemple si je choisie par exmpele la methode de diagonalisation de matrice, que dois-je faire?Merci d'advance!!!
0