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

Soyez le premier à donner votre avis sur cette source.

Snippet vu 36 932 fois - Téléchargée 31 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
eldred
Messages postés
32
Date d'inscription
mercredi 14 septembre 2005
Statut
Membre
Dernière intervention
14 juin 2006

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

14 juin 2006 à 17:33
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é.
Ombitious_Developper
Messages postés
2333
Date d'inscription
samedi 28 février 2004
Statut
Membre
Dernière intervention
26 juillet 2013
38
21 avril 2006 à 13:28
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 ...
cs_chris223
Messages postés
11
Date d'inscription
mercredi 14 mai 2003
Statut
Membre
Dernière intervention
18 novembre 2008

14 févr. 2006 à 13:49
tres utile ce programme.
lilosse
Messages postés
16
Date d'inscription
mardi 14 juin 2005
Statut
Membre
Dernière intervention
4 novembre 2008

5 févr. 2006 à 14:46
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.