Résolution de systeme de 3 équations à 3 inconnues

Soyez le premier à donner votre avis sur cette source.

Snippet vu 35 665 fois - Téléchargée 29 fois

Contenu du snippet

Mon premier programme en C, fait en une soirée alors que je ne connaissait pas le langage, soyez indulgnets svp!!!
Ce programme console résoude des systemes de 3 équations à 3 inconnues en utilisant la méthode du pivot de Gauss.
Code extensible a X variables et X inconnues en prolongeant la méthode.
46 Ko une fois optimisé avec Mew.
Donnez moi votre avis svp

Source / Exemple :


#include "iostream.h"
#include "iomanip.h"

using namespace std;

int main()
{
double matrice[3][4]={2,3,6,43,7,6,2,42,9,12,3,69};
double coefficient,x,y,z;
int i;
int j;
i=0;
j=0;

cout << "Resolution d'un systeme de 3 equations a trois inconnues\n";
cout << "Premiere equation, entrez en ordre respectif x,y,z et la constante\n";
cin >> matrice[0][0]>>matrice[0][1]>>matrice[0][2]>>matrice[0][3];
cout << "Seconde equation, entrez en ordre respectif x,y,z et la constante\n";
cin >> matrice[1][0]>>matrice[1][1]>>matrice[1][2]>>matrice[1][3];
cout << "Premiere equation, entrez en ordre respectif x,y,z et la constante\n";
cin >> matrice[2][0]>>matrice[2][1]>>matrice[2][2]>>matrice[2][3];

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

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

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

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

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

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

z=matrice[2][3]/matrice[2][2];
y=(matrice[1][3]-(matrice[1][2]*z))/matrice[1][1];
x=(matrice[0][3]-((matrice[0][1]*y)+(matrice[0][2]*z)))/matrice[0][0];
cout << "X est egal a " << setw(10) << x << "\n";
cout << "Y est egal a " << setw(10) << y << "\n";
cout << "Z est egal a " << setw(10) << z << "\n";

system("PAUSE");
return 0;
}

A voir également

Ajouter un commentaire Commentaires
Messages postés
32
Date d'inscription
mercredi 14 septembre 2005
Statut
Membre
Dernière intervention
14 juin 2006

PS désolé de répondre aussi longtemps plus tard, je suis à la masse... lol
Messages postés
32
Date d'inscription
mercredi 14 septembre 2005
Statut
Membre
Dernière intervention
14 juin 2006

Voila pour la méthode du Pivot de Gauss:

http://www.bibmath.net/dico/index.php3?action=affiche&quoi=./g/gausspivot.html

Le setw(10) sert a effectuer un décalage de l'écriture afin que les nombres à virgule n'empietent pas sur ce qui était écrit avant.


Par exemple:
Si l'on met
cout << "X est egal a " << x << "\n";
au lieu de
cout << "X est egal a " << setw(10) << x << "\n";
et que x est égal 0,000000001, "est égal à" sera écrasé.
Messages postés
2333
Date d'inscription
samedi 28 février 2004
Statut
Membre
Dernière intervention
26 juillet 2013
36
Salut:

Merci pour votre code.
Pouvez vous m'expliquez théoriquement cette méthode?
Quel est le rôle de setw(10) dans le code?

Et Merci ...
Messages postés
11
Date d'inscription
mercredi 14 mai 2003
Statut
Membre
Dernière intervention
18 novembre 2008

tres utile ce programme.
Messages postés
16
Date d'inscription
mardi 14 juin 2005
Statut
Membre
Dernière intervention
4 novembre 2008

c'est du c++ comme à dis muad-dib {le loup}
la biblio #include pour c++
pour c #include<stdio.h> avec printf et scanf
je te laisse ce site bien pour commencer le c
http://www.ltam.lu/Tutoriel_Ansi_C/
Afficher les 17 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.