begin process at 2010 09 03 03:21:27
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Maths & Algorithmes

 > RÉSOLUTION DE SYSTEME DE 3 ÉQUATIONS À 3 INCONNUES

RÉSOLUTION DE SYSTEME DE 3 ÉQUATIONS À 3 INCONNUES


 Information sur la source

Note :
9,33 / 10 - par 3 personnes
9,33 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Maths & Algorithmes Classé sous :gauss, pivot, équations, inconnues, systemedéquations Niveau :Débutant Date de création :04/02/2006 Vu :23 280

Auteur : eldred

Ecrire un message privé
Commentaire sur cette source (17)
Ajouter un commentaire et/ou une note

 Description

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

  • #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;
  • }
#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;
}



 Sources de la même categorie

Source avec Zip CALCUL DU DETERMINANT par arfang03
Source avec Zip Source avec une capture EULER AURAIT 303 ANS par pgl10
Source avec Zip Source avec une capture FORMULES POUR NOMBRES PREMIERS par pgl10
Source avec Zip Source avec une capture TRAITEMENT DE L'EQUATION D'UNE CONIQUE AVEC UN GRAMMAIRE par kinkek
Source avec Zip BELLMAN:LA VALEUR DU PLUS COURT CHEMIN ET LE PLUS COURT CHEM... par Perace

 Sources en rapport avec celle ci

PIVOT DE GAUSS par Jbs106
INVERSION, CRAMER ,GAUSS, GAUSS PIVOT PARTIEL, GAUSS PIVOT T... par ahmedkolsi
Source avec Zip Source avec une capture PROGRAMMATION LINEAIRE par JCDjcd
Source avec Zip POLYNOMES DU 2EME DEGRÉ, RÉPONSE SOUS FORME DE FRACTION ! par zut69
Source avec Zip Source avec une capture DETERMINANTS (GAUSS & COFACTEURS) par JCDjcd

Commentaires et avis

Commentaire de eldred le 04/02/2006 15:02:11

Un petit commentaire ? snif!!

Commentaire de wxccxw le 04/02/2006 15:40:40

oui c'est cool :) tu pourai passer a une API WINDOWS pour faire un fenetre :)
PS : apres 1 soiree de programmation du connai MEW ?
aussi les includes :

Commentaire de Slyxi le 04/02/2006 17:07:24

Désolé, mon commentaire n'a pas de rapport avec cette source mais j'aimerais savoir ce qu'est MEW ?
Merci d'avance!

Commentaire de lilosse le 04/02/2006 17:36:13

Il faut pas se moquer!! tu peux faire mieux on est tous débutant.
Pour le code  tu peux utiliser une boucle for pour ne pas répéter ainsi chaque fois.
tu aura un problème si le pivot est nul donc il faux pivoter les lignes  et  il y a aussi le cas ou on a la  même équation  3 fois donc tu auras pas de solution
bon  bonne chance et fe de ton mieux

Commentaire de eldred le 04/02/2006 19:27:53

Merci pour vos commentaires!!
Mew je connais car je suis nouveau en C, pas en programmation...
Je connais pas mal d'autres langages à coté...
Pour le FOR, je vois pas trop comment faire???
Sinon, tu as raison, j'ai pas traité ces deux éventualités...
Je tache d'y remédier et j'actualise mon code!!
Merci encore
PS: Mew est un petit prog qui te permet de réduire considérablement la taille de ton fichier de sortie.

Commentaire de wxccxw le 04/02/2006 20:07:09

int i; // Va servire a compter :)
for(i = 0; i<=100; i++) // Pour i = 100; i doit etre inferieur ou egale; et on rajout +1 a chaque tour :)
{
printf("%i\n",i); // Devrai afficher le tour 1 2 3 4 ....
}

Commentaire de eldred le 04/02/2006 20:34:40

Je sais faire un for merci :)
Ce que je demandais c'est comment est il possible de réunir mes trois calculs en un seul, en donc en utilisant for.

Commentaire de lilosse le 05/02/2006 00:00:40

pr l'exemble de for
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]
je pe faire
for(int i=0;i<3;i++)
{
cout<<i+1<<" equation, entrez.."<<endl;
for(int j=0;j<=3;j++)cin>>matrice[i][j];
}
tu pe faire 2 même pr ts le code

Commentaire de nikoland le 05/02/2006 10:18:47

cest du c ou du c++ ?

Commentaire de muad-dib le 05/02/2006 12:09:05

c'est du C++ : cout et cin n'existent pas en C

Commentaire de eldred le 05/02/2006 12:13:53

Si muad-dib le dit, ca doit etre du C++ lol moi je ne connais pas encore trop la différence a part l'orientation objet de C++. Sinon c'est compilé avec Dev C++ pour info.
Merci à toi Lilosse, je met une mise à jour d'ici quelques jours maxi!!

Commentaire de nikoland le 05/02/2006 12:32:33

cest bien ce qui me semblait...

merci jeune paul atreïde...

Commentaire de lilosse le 05/02/2006 14:46:06

c'est du c++ comme à dis muad-dib  {le loup}
la biblio #include<iostream.h> 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/

Commentaire de chris223 le 14/02/2006 13:49:52

tres utile ce programme.

Commentaire de Ombitious_Developper le 21/04/2006 13:28:49

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

Commentaire de eldred le 14/06/2006 17:33:05

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

Commentaire de eldred le 14/06/2006 17:34:04

PS désolé de répondre aussi longtemps plus tard, je suis à la masse... lol

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

pivot de gauss [ par DeNeBj ] bonjourj'aimerais trouver un prog en c qui utilise seulement les tableaux et les boucles et qui resoud des systemes d'equations (on s'arrete à 10 ) ke besion d' aide [ par ccfacile ] j'ai  fais un programme sur devc++ pour resoudre l'equation matricielle : A*X=B ,  je vois pas ou est elle euruer ? est ce que vous pouvez aidez SVP, pivot de gauss [ par midokok ] salut .....je rechrche une fonction récursive ...pour la solution de (n) systeme d'equation //par la méthode ----> (PIVOT DE GAUSS) & merci ....... Résolution d'équations à n équations et n inconnues [ par slimshady62 ] Salut tout le monde, On doit réalisé un programme en C++ qui permer de résoudre, selon la méthode du pivot de gauss, n équations à n inconnues.Au débu résolution des équations de Navier Stokes [ par ammarsonia ] bonjour je veux programmer le problème qui résout les équations de Navier Stokes discrétisés en volumes finies avec la présence de terme source qui gauss en pascal "Tres Urgent " [ par islem2007 ] Svp je voudrais ecrire en pascal le programme correspondant a la methode de gauss pour la matrice suivante :On considere la matrice An=(ai,j)&lt;=i,j& Application de l'algorithme de Runge Kutta au système d'équations d'un corps rigide en mouvement(dynamique) [ par johnstanp ] Cela fait un petit moment que je cherche à comprendre comment implémenter Runge-Kutta pour le système d'équations de Newton.Voici le système d'équatio nombres de boucles inconnues [ par LILIPA ] Bonjour,Comment faire lorsque l'on veut faire n boucles, je m'explique :Par exemple, pour 3 boucles c'est facile :pour i=1..imax   pour j=1..jmax      Résolution d'un systeme d'équations [ par Manubbosse ] Bonjour à tous!!Dans le cadre d'un stage, je dois (entre autre) programmer un logiciel de calcul de facteur solaire. Heureusement pour moi, je ne dois Recherche d'une bibliotheque C/C++ permettant la résolution d'un systeme d'équations non-linéaires. [ par Manubbosse ] Bonjour à tous.Cela fait quelque temps, maintenant, que je recherche une bibliothèque en C/C++ qui me permettrait de résoudre un systeme d'équations n


Nos sponsors


Sondage...

CalendriCode

Septembre 2010
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
27282930   

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 6,630 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales