Resolution d'un systeme d'equation
alibabapro
-
alibabapro Messages postés 28 Statut Membre -
alibabapro Messages postés 28 Statut Membre -
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.
Merci pour votre aide!!!!
#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
-
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.-
Bonjour! Le principe vector<vector<double>> imbriques avec la boucle for() je n'ai pas compris.Pouvez-vous m'expliquer avec un exemle?
Merci!!- 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
-