begin process at 2012 05 27 19:05:47
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Maths & Algorithmes

 > RESOUDRE AX = B AVEC LA METHODE DE GAUSS

RESOUDRE AX = B AVEC LA METHODE DE GAUSS


 Information sur la source

Note :
1 / 10 - par 1 personne
1,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Maths & Algorithmes Classé sous :resoudre, gauss, equation Niveau :Initié Date de création :15/09/2004 Date de mise à jour :16/09/2004 15:14:31 Vu / téléchargé :9 949 / 1 443

Auteur : keayoub

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

 Description

Bon le programme permet de resoudre AX = B avec A et B et X des matrices donc vous donnez A et B et lui il fé une approximation par une methode numerique celle de GAUSS pour retouver le X

bon c  trés facile il suffit de bien comprendre l'algorithme  

juste j oublié c pas le mien



 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Historique

16 septembre 2004 01:24:20 :
juste j oublié de dire que c pas le mien
16 septembre 2004 15:14:28 :
chnager le code
16 septembre 2004 15:14:29 :
changer le code
16 septembre 2004 15:14:31 :
changer le code

 Sources du même auteur

Source avec Zip RESOUDRE UNE EQUATION DIFFERENTIELLE
Source avec Zip INTEGRAL PAR LA MÉTHOSE
Source avec Zip INTERPOLATEUR DE LAGRANGE
Source avec Zip PROGRAMMATION D'UN GRAPH

 Sources de la même categorie

Source avec Zip UN EXAMPLE D'APPLICATION EN CUDA DE L'ALGORITHME DE SCAN POU... par oguzaras
Source avec Zip Source avec une capture CHIFFREMENT DE VIGENERE par lajouad
Source avec Zip Source avec une capture ANALYSE SYNTAXIQUE par lajouad
Source avec Zip Source avec une capture STRUCTURE D'UNE MATRICE PAR LES LISTE LINÉAIRE (NON CONTUGUS... par benzarabel
Source avec Zip Source avec une capture DESSINER UNE ARBRE BINAIRE( MODE CONSOLE): par benzarabel

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture HDR EXPOSURE FUSION par mecrosoft
RESOLUTION D'UNE EQUATION DU SECOND DEGRÉ AVEC RACINES REEL... par maloum41
Source avec Zip Source avec une capture TRAITEMENT DE L'EQUATION D'UNE CONIQUE AVEC UN GRAMMAIRE par kinkek
PIVOT DE GAUSS par Jbs106
INVERSION, CRAMER ,GAUSS, GAUSS PIVOT PARTIEL, GAUSS PIVOT T... par ahmedkolsi

Commentaires et avis

Commentaire de psycho le 16/09/2004 00:22:15

la encore, c'est loin d'etre au point....pourtant l'algorithme se retrouve vraiment tout seul.....donc, il est vraiment pas très dur à comprendre....

Donc, apparemment, il marche pour les matrices 2*2(bien que je ne sois pas sur, je n ai pas regardé le cas de matrice à conditionnement élevée...enfin bref). Ah, si tiens, le cas des matrices a determinant nul ne marche pas.....
Sinon, je comprend pas pourquoi tu testes si la diagonale est non nulle....puisque tant qu 'a faire, tu aurais mieux fais de coder la methode de gauss avec pivot(partiel ou total, elle marche assez bien toutes les deux, et gere les diagonales nulles)

Ensuite, il est a mes yeux urgent d 'apprendre a faire un code lisible.... pas de ligne sautée entre 2 fonctions, je n ai pas compris l'utilité (absolument inutile  d'une matrice 3dimensions...puisque deux dimensions suffisent...

je te sugerrerait de lire un bon cours d analyse numérique avant de pondre un autre code de ce genre la prochaine fois. Je ne dis pas que c'est mal codé, mais que c'est très mal pensé, mais alors, très très mal...

Bon, dernier point, je sais pas ce que tu utilisent comme compilo, mais ca m etonnerait qu'il soit au norme. quand tu fais un bloc for(int i=0;i<N;i++){
...}
, ton int i n'est declaré que pour la boucle for, et non pas pour tout le reste de ta fonction. Abandonne cette méthode au plus vite, et passe par un bloc de déclaration de variables, ca t'aidera(et nous aidera) a relire le code.

Ensuite, pense(c'est impératif) a indenter correctement, a mettre en page ton code, parce que la, c un torchon a mes yeux...

Bref, pour résumer :
-arrete le c++, et revient au C, tu en as besoin, tu feras du C++ quand tu auras un peu plus consolidé certaines choses
-met en page ton code
-pense u peu mieux tes algos
-muni toi d un bon compilateur(GCC ou G++) et abandonne visual studio si c'est ce que tu utilisent(dev-C++ est pas mal)

voila, bonne continuation tout de meme

Commentaire de keayoub le 16/09/2004 01:08:20

bon bref comme tu as pu remarqué entre ce code et les autres que j déposé  il y bcq de differnce car peut etre j oublié de mensionné que ce n'est pa le mien mais soit sure que je v transmettre tes remarques au propriétaire le plus vite possible est merci pour t remarque

juste pour le compilo moi j'aime bien le visual C++ que d'autre et je ss pas prét pour changer en plus j testé dev C++ mais j pas trop aimé et merci chaqun ca faon de voir les choses

Commentaire de keayoub le 16/09/2004 01:17:17

et pour resumé les choses moi aussi

je te dis que moi j fé bcq de C et de C++ que tu peux imaginé et c pas mes sources les plus importt mais moi je teste juste comment les choses se passe ds ce site et pour l'avenir je v essai de depossé klk chose de plus importt

et juste une remarque pour ta remarque
sur for(int i=0;i<N;i++) cela te permet de pas trop boufé de la mémoire

Commentaire de psycho le 16/09/2004 01:48:42

suis désolé, mais un int ne mange rien de nos jours....par contre, la matrice 3dimensions, elle, elle bouffe. Sinon, pour en revenir a visual c++, le compilo est a chier. Il est pas au norme. En compilant ton code aved g++, g eu une dizaine d erreur, pour te dire...entre autre, n importe quel bon compilateur ne laisserai passer tes manques de déclarations concernant tes int i dans chauqe une de tes boucles....

c pour ca que je te suggere de changer de compilo...fo arreter de toucher a la merde que peut souvent produire M$...le pire c'est qu'il y a des acheteurs.....

Commentaire de Kirua le 16/09/2004 07:38:21

j'utilise Dev-C++ moi-même mais... autant VC++6 avait un gros problème de standard au niveau de la portée des compteurs de boucles, autant... les exe qui g++ produit sont d'une taille exceptionnellement exagérée!! un hello world qui utilise la std ça fait 400Ko! et avec -s ça en fait encore facile 220, c'est exagéré. VC produit bien plus petit que ça, et c'est dommage pr nous ^^

Commentaire de BruNews le 16/09/2004 11:26:44 administrateur CS

N'y avait-il pas du code produit AVANT que les normeurs n'etablissent des regles ? auquel cas fallait bien garder la compatibilite avec l'existant.
Depuis VS6 il y a eu 2 versions qui sont maintenant aux normes.

Commentaire de psycho le 16/09/2004 12:36:52

il me semble que tu as raison brunews, mais concernant le code de keayoub, ca m etonnerait fort qu'ils soit au norme....

Quand a ta remarque kirua, tu as tout a fait raison, la taille est éxagéré, mais pour moi, les compilateurs GCC et G++ restent quand meme les meilleurs du moment.

Commentaire de BruNews le 16/09/2004 13:30:27 administrateur CS

psycho> tout a fait d'accord qu'on ne devrait absolument plus ecrire ce genre de code depuis longtemps.

Commentaire de Pamaury le 16/09/2004 15:53:17

si je ne me trompe pas, la taille du code vient du fait que VC++ utilise des lib dynamic alors que g++ utilise des lib static donc toutes la STL est incluse ?

Sinon, pour les boucles je suis pas d'acoord, je pense que un code du style:
for(int i=0;i<N;i++)
{
}
ne nuit pas au code mais bon la différence n'est pas grande tant que il n'y a pas 50 boucles qui s'enchaînent(dans ce cas une variable vaut mieux que 50 !) .

Commentaire de keayoub le 16/09/2004 16:33:46

Bien vue Pamaury juste une chose si tu veux mieux expliqué ta notion sur les lib static de g++ ou il y a STL car j pas bien copris
pour VC++ c sure qu'il utilise des lib dynamique en plus tt ds le VC++ est dynamique et pour utiliser STL il suffit de faire l'appel c tt moi mnt je travail plus avec STL car cela aide beaucoup mais sous VC++

et juste une idée des autres commentaires si je pense changer de compilo alors je utilisé C++ builder de Borland

Commentaire de Kirua le 16/09/2004 16:37:29

tu veux parler de Turbo C++ alors?
parce que le RAD de Borland (Inprise mtnt) est franchement cher... à moins que tu ne prennes une version Personnal de Builder X, mais tu ne pourras pas distribuer tes programmes sauf erreur (par contre sous GPL peut-être... faudrait voir)

Commentaire de BruNews le 16/09/2004 16:40:16 administrateur CS

Reste donc sous VS car me semble etre le plus employe dans les entreprises.

Commentaire de keayoub le 16/09/2004 16:42:44

et Pour Psyco moi aussi je ss pas fun des Merdes de M$.. mais j pas trop de solution car ds la boite ou je travail il travail avec ca et moi je ne fé que m'adapté mais entre moi je prefére C++ builder et mnt j compris ta remarque ok merci

Commentaire de cosmobob le 16/09/2004 17:52:12

for (int i = 0; i < 5; i++ ) { .. } est standard en C++ (testé a l'instant sous gcc), c'est en C que ca ne l'est pas.

Commentaire de cosmobob le 16/09/2004 17:56:09

psycho; si ton g++ plante en compilant le for (int i = 0; etc... c'est bizare, essaie de dl une version plus recente....

Commentaire de keayoub le 16/09/2004 18:43:19

oui c vrai cosmobob car moi for(int i=0;i.......
je trouve que c normal sous C++ et c deja trés utilisé

et pour kirua je veux parlé de borland C++ builder 6
mais je c pas que c trés chér

et pour la remarque de BruNews c vrai que le Vs et le plus utilisé rie na faire pour changer donc si klk connais un compilo plus puissant ki m'informe please

Commentaire de BruNews le 16/09/2004 18:55:02 administrateur CS

VS 2003 c'est top.

Commentaire de keayoub le 16/09/2004 19:25:13

ah je viens d'installé 2003 et j pas encore testé a ton avis c bien

Commentaire de Kirua le 16/09/2004 19:26:14

ce qui est pelant avec BCB6, c'est que c'est un peu comme PHP: t'as beau faire des programmes super efficaces en peu de tps, t'es pas satisfait parce que t'as tjs ce sentiment d'avr seulement utilisé des outils pré-machés. j'ai arrêté BCB6 à cause de ça, c'était pas satisfaisant. bon, si tu cherches l'efficacité et pas la pédagogie, fonce bien entendu ^^.

le problème avec les for sous VC6, c'est ça:

for(int i = 0; i < ...; i++)
{
...
}

int i = 5; // erreur, redéclaration de i, alors que le standard dit bien que la variable i compteur de la boucle for doit "mourir" à la fin de la for, et que donc cette ligne-ci n'est PAS une redéclaration!

Commentaire de BruNews le 16/09/2004 19:35:28 administrateur CS

keayoub> tu peux tout faire dessus en quasi nimporte quel langage, fonce dessus tranquille, y a pas mieux.

Commentaire de psycho le 17/09/2004 00:56:41

cosmobob> tu as du mal lire ou je me suis mal exprimé :
for(int i=0;i<5;i++){}-->correct

par contre, c apres, il n y a pas de variables nommée i qui est déclaré dans la fonction, il est donc normal que
for(int i=0;i<5;i++){}
A[i]=B[i][i];(c'est un exemple, mais dans le code, il y a ce genre de choses)
pose probleme a la compilation

Commentaire de keayoub le 17/09/2004 16:28:21

Oui et bien désolé tt le monde d'avoir posé ce type de code mais malgré ca on a un peu trouvé d'autre chose
et comme on dit tjr
       "la perfection est tjr le fruit d'un echec"

Pour le sujet de la declaration que je trouve trés bien exepliqué par Kirua c vrai que

   for(int i=0;i<5;i++) {............}
    et apres une ligne avec  " int i = 5; "
   c pas une erreur et c pas aussi une redéclaration car je c pas mais pour VC++ c'est sure que "i" est morte aprés la boucle "for" en plus le "i" de "int i=5" n'est pas vraiment le même "i"

Commentaire de Kirua le 17/09/2004 18:30:48

c'est même pas du tout le même i ^^

Commentaire de plus_plus_fab le 22/09/2004 17:47:23

je passais la par hasard, ...
et concernant la taille des executables que produit g++, je suis assez surpris.
en compilant un helloword (utilisant iostream), j'obtiens 8559ko, en compilant de la manière suivante :
g++ -Os -fno-exceptions helloword.cpp -o helloword
(g++ v-3.3.3 sous Linux 2.6.7)
par defaut g++ fait une edition de lien dynamique, donc iostream n'est pas inclu. l'édition de lien statique inclu iostream dans l'executable, du coup il est enorme (1Mo et quelques pour moi), mais autonome : pas besoin de libstdc++.so.
peut-etre que g++ sous dev-C++ fait une edition de lien statique par defaut, c'est à voir en tout cas. Mais meme en mettant les informations de debug, de profiling, je n'arrive pas à avoir un executable de 400ko !

Sinon, pour ces histoires de norme, on pas fini d'en rire de cette histoire de variable de boucle !!!
De toute façon, la critique d'un compilateur, c'est subjectif : il faut comparer la vitesse de compilation, la qualité de l'executable produit, la précision des messages d'erreurs. Et on ne peux pas optimiser ces trois criteres à la fois!
Il existe un autre critère : le respect de la norme. Tant pis si les autres critères en souffre, c'est le plus important, et g++ est le plus avancé (et de loin) dans ce domaine.

Et pour le vocabulaire, on parle d'un compilateur qui respecte la norme, et d'un code qui est conforme au standard ! Sinon, on comprend plus rien ...

pour finir, un compillateur C++ qui permet de comprendre ce que l'on fait, qui est bien documenté, très performant, et qui respecte (presque) le standard: g++.

Commentaire de Kirua le 22/09/2004 18:11:13

j'ai g++ 3.2, j'ai essayé de compiler avec tes options (-Os -fno-exceptions), et ça me fait 208 Ko avec -s (strip) au lieu de 211 (tjs avec strip).

suis sensé utiliser quelle option pr compiler en mode dynamique? (à noter: suis sous Dev-C++, un EDI pr Windows).

Commentaire de plus_plus_fab le 22/09/2004 20:54:48

l'edition de lien dynamique est faite par defaut, rien à ajouter normalement ...
essaye une edition de lien statique voir si ça te donne pas le meme executable des fois que ...
g++ -static helloword.cpp -o helloword

Commentaire de Kirua le 22/09/2004 20:57:42

exactement le même exécutable, avec -static :(

Commentaire de plus_plus_fab le 22/09/2004 21:57:25

héhé !
peut etre que les librairies dynamiques ne sont pas installé ... le linker se rabatrait alors vers les librairies statiques (?). Cherche voir si tu trouve la librairie dynamique libstdc++.  Le nom sous w$ ? heuu un libstdc++.dll ou quelquechose comme ça. la librairie statique devrait s'appeler libstdc++.a

Commentaire de Kirua le 22/09/2004 22:08:07

j'ai un libstdc++.a et un libstdc++.la, mais je trouve pas de .dll correspondant... armf, tu vois une explication à ça?

au fait, c'est quoi le .LA ?

Commentaire de plus_plus_fab le 22/09/2004 22:43:40

libstdc++.la, c'est un fichier texte permettant de lier la librairie statique libstdc++.a.
Je ne vois par contre pas d'explication au fait que les librairies dynamiques soient absentes ... c'est un scandale !
A l'installation de dev-c++, y avait peut-etre une case à cocher dans le troisieme menu de la quatrième fenetre (au sous-sol) :-)

libstdc++.so, il n'existe pas non plus ? (extension habituelle sous Unix)

Commentaire de Kirua le 23/09/2004 07:46:47

non, j'ai fait une recherche sur tout mon DD pour être sûr, pas de libstdc++.dll ni de .soni de rien d'autre.

et non, y avait pas d'option super spéciale, j'en suis sûr, j'ai installé dev au moins 5 fois en une journée il y a qq jours :p

ça m'énerve cette histoire :(

Commentaire de plus_plus_fab le 23/09/2004 14:32:34

J'ai peut etre un début de réponse ...
Ton exécutable lié statiquement n'est pas aussi gros que ça, par rapport au mien, qui est compilé (sauf erreur) avec -O2 -ftracer -march=xxx. Je soupsonne donc le tien d'avoir été compilé en -Os, donc au détriment des performances. Ce n'est certainement pas un hasard, et ça m'incite à penser que les concepteurs ont fait ce choix uniquement parce que la liaison statique est la seule solution.

Quelle est la licence de ta librairie ? GPL normalement ?
Je ne suis pas juriste,  mais il me semble que les concepteurs des programme qui lient statiquement cette librairie peuvent en faire ce qu'ils en veulent, meme faire des logiciels propriétaires.
Par contre, les logiciels qui lient dynamiquement cette librairie doivent etre eux aussi sous licence GPL. Donc si cette librairie partagée (.so ou .dll) existait sur ton système, un logiciel propriétaire, ou ton OS (non GPL si c'est w$),  pourrait etre tenter de l'utiliser ...  probleme de licence !
il existe une autre licence pour les librairies: la LGPL. Son intéret est de permettre à un logiciel sous licence quelconque, de lier dynamiquement une librairie LGPL. Mais la libstdc++ est sous GPL ...

Je crois bien ne pas etre tres loin de la vérité ... Si un spécialiste des licences GPL/LGPL passe par la, qu'il me corrige si je me trompe merci.

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Fonction equation [ par tekila_bandita ] Bonjour! Enfaite, cela fait des semaines que j'essaye de trouver un moyen de créer une fonction qui prendrai en argument un string (sous la forme d'u Resolution d'une equation speciale [ par un4given ] Bonjour a tous !!Bon je r&#233;alise en ce moment un jeu de tir a l'arc en 3D dans le cadre de mes cours (des que le prog est fini je le mettrai sur l Probleme Equation C++/C [ par Ombreee ] Bonjour,Voila j'aimerai savoir si il existe une LIB ou autre qui me permetrai de resoudre une equation du premier degre a partire d'une chaine ??? Ou Probleme de duree de calcul [ par Stubbornman ] Je suis actuellement, et maintenant depuis presque deux mois (je suis un debutant alors c'est long!!) sur une source sencee resoudre les carres magiqu Recherche : Résolution de systeme d'equation matricielle [ par julien81 ] Bonjour tlm En fait cette année j'ai un sujet pour mon projet annuel c'est de faire le prog pour resoudre un systeme d'equation avec des matrice (dime 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 algorithme de gauss et decomposition LU [ par speedamine ] bonjour a tous.je voudrai avoir des algorithmes ,ecrits en borland pascal,suivants:methode de gauss ordinaire pour la resolution d'un systeme .la deco equation d'une droite [ par gagah1 ] Quelqu'un pourrait m'aider à trouver l'equation d'une droite (à 3 dimensions) qui passe par un point A(a,b,c) et qui a un vecteur U(u,v,w). Je ne me r equation [ par sorcier0011 ] Voila j'aimerais bien faire un programme qui resout des equations à 2 inconnues. Mais je ne trouve pas la formule pour la resoudre; Est ce que qqn pou


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
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 : 0,530 sec (3)

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