begin process at 2012 02 07 08:52:29
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Maths & Algorithmes

 > RESOLUTION DE SYSTEME LINEAIRE PAR LA METHODE DU GRADIENT CONJUGUE

RESOLUTION DE SYSTEME LINEAIRE PAR LA METHODE DU GRADIENT CONJUGUE


 Information sur la source

Note :
Aucune note
Catégorie :Maths & Algorithmes Classé sous :maths, analyse numerique, gradient conjugue, algorithme Niveau :Débutant Date de création :17/06/2009 Date de mise à jour :17/06/2009 01:14:43 Vu / téléchargé :6 764 / 300

Auteur : zangul

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

 Description

Cliquez pour voir la capture en taille normale
ce post implemente la resolution des systemes lineaires du type Ax = b par la methode du gradient conjugue( A matrice, b et x vecteurs). l'interet de ce post est quadruple

1) implementation de la methode:  l'algorithme que j'utilise est disponible a l'adresse web http://www.math-linux.com/spip.php?article5 (en esperant qu'elle soit encore valide.je n'ai pas pris la peine de verifier...)

2) definition complete d'une classe C++ avec tout ce que ca comporte comme constructeur,destructeur, accesseurs, fonctions amies etc...

3) notion d'heritage de classe

4) commentaires de code a l aide de doxygene. ces commentaires peuvent etre deroutants pour ceux qui ne s'y connaissent pas mais ils n'alterent en rien la comprehension du code.

une fonction main est fournie uniquement dans le but de tester les resultats (elle resout le systeme x + y = 1, x - y = 0)
l'utilisateur pourra donc utiliser le code a sa guise.

NB la matrice A doit doit etre symetrique definie positive. le code fourni verifie uniquement le caractere symetrique de la matrice.

Source

  • /*!
  • * \file main.cpp
  • * \brief Programme de test.
  • * \author Zangul
  • * \version 0.1
  • * \date 01 juin 2009
  • *
  • * Programme de test pour la resolution de systemes d'équations
  • linéaires par la méthode du gradient conjugué.
  • *
  • */
  • #include <iostream>
  • #include "GradConj.h"
  • #include "Erreur.h"
  • int main()
  • {
  • Matrix A (2, 2);
  • Vecteur b(2);
  • std::cout << "entrez 6 valeurs : "<<std::endl;
  • std::cin >> A >> b;
  • std::cout << A << b ;
  • GradConj u(A,b);
  • try
  • {
  • std::cout << u.Solve();
  • }
  • catch (erreur &e)
  • {
  • std::cout << "exception" << std::endl;
  • switch(e())
  • {
  • case BAD_ALLOC:
  • std::cout << "Bad alloc" << std::endl;
  • break;
  • case BAD_SIZE:
  • std::cout << "Bad size" << std::endl;
  • break;
  • case BAD_INDEX:
  • std::cout << "Bad index" << std::endl;
  • break;
  • case NON_SYM:
  • std::cout << "Non sym" << std::endl;
  • break;
  • case NON_DEF:
  • std::cout << "Non def" << std::endl;
  • break;
  • }
  • return -1;
  • }
  • catch (...)
  • {
  • std::cout << "erreur non repertoriée";
  • }
  • return 0;
  • };
/*!
 * \file main.cpp
 * \brief Programme de test.
 * \author Zangul
 * \version 0.1
 * \date 01 juin 2009
 *
 * Programme de test pour la resolution de systemes d'&eacute;quations 
   lin&eacute;aires par la m&eacute;thode du gradient conjugu&eacute;.
 *
 */

#include <iostream>
#include "GradConj.h"
#include "Erreur.h"

int main() 
{ 
	Matrix A (2, 2);                                              
	Vecteur b(2);
	std::cout << "entrez  6 valeurs : "<<std::endl;
	std::cin >> A >> b;
	std::cout << A << b ;
	GradConj u(A,b);
	try 
	{
		std::cout << u.Solve();
	}
	catch (erreur &e)
	{
		std::cout << "exception" << std::endl;
		switch(e())
		{
		case BAD_ALLOC:
			std::cout << "Bad alloc" << std::endl;
			break;
		case BAD_SIZE:
			std::cout << "Bad size" << std::endl;
			break;
		case BAD_INDEX:
			std::cout << "Bad index" << std::endl;
			break;
		case NON_SYM:
			std::cout << "Non sym" << std::endl;
			break;
		case NON_DEF:
			std::cout << "Non def" << std::endl;
			break;
		}
		return -1;
	}
	catch (...)
	{
		std::cout << "erreur non repertoriée";
	}
 	return 0;
};

 Conclusion

vos remarques et suggestions sont attendues.
merci

 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

17 juin 2009 01:09:54 :
pas de modification du code. juste rajouter les fichier zip et la capture ecran
17 juin 2009 01:14:43 :
mise a jour du fichier zip

 Sources du même auteur

Source avec Zip Source avec une capture APPLI FINANCIERE AVEC GUI MFC

 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 UN EXAMPLE D'APPLICATION EN CUDA DE L'ALGORITHME DE SCAN POU... par oguzaras
Source avec Zip Source avec une capture RÉSOLUTION SUDOKU (9X9) PAR BACKTRACKING RÉCURSIF INTELLIGEN... par Gallien69
GÉRER UN COMBAT DANS UN JEU 2D / ALGORITHME PRIMAIRE D'UNE I... par Chiheb2010
Source avec Zip BELLMAN:LA VALEUR DU PLUS COURT CHEMIN ET LE PLUS COURT CHEM... par Perace
Source avec Zip COMPILATEUR ET DÉCOMPILATEUR DE SOURCES MALBOLGE [MLBC] par youscef

Commentaires et avis

Commentaire de juju12 le 27/06/2009 18:23:30

au lieu de renvoyer une erreur si la matrice n'est pas symétrique :
Ax=b
tu peux multipier g/d par tA, la transposée de A :
=> Mx=c avec M=tA.A et c =tA.b

du coup M est symétrique et tu peux résoudre le système par la méthode GC.


suggestion bien entendu...

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

je cherche quelqu'un fort en maths et qui est en 1ere ES !! [ par GEO ] je cherche quelqu'un qui aurais le livre orange declic maths de 1 ES merci d'avance Algorithme de compression STAR amélioré [ par hi_vivie2 ] Bonjour à tous,Je dois réaliser de manière urgente l'implémentation en java de l'algorithme de compression STAR amélioré appliqué aux images en mouvem Algorithme de compression STAR amélioré [ par hi_vivie2 ] Bonjour à tous,Je dois réaliser de manière urgente l'implémentation en java de l'algorithme de compression STAR amélioré appliqué aux images en mouvem un programme à creer [ par yoyo ] je dois creer un programme permettant d trouver les nombres premiers.l'algorithme est donné, et il utilise des tableaux dont les cases sont remplies p Qui sait l'algorithme pour calculer les racines? [ par TMT ] Aidez-moi! conversion de la partie fractionnaire en base n [ par Alucard ] J'ai vu qu'il y avait beaucoup d'algorithme de la partie entière (int) d'un nombre en n'importe quel base mais je voulais savoir si quelqu'un avait un Algorithme de mélange [ par C2S ] bonjour, j'aimerais connaitre un algorithme de mélange d'un tableau... (aléatoire) ... c'est pour simuler une fonction "mélanger" relative a un paquet aide sur l'algorithme AMR [ par semecurbep ] Votre texte iciVotre texte ICIVotre texte ICI map basic?????? [ par Sfoued2003 ] slt tout le monde,je me demande si je peux faire implémenter un algorithme de Electre1 sur map basic, pour pouvoir l'utiliser aprés sur map info? et ç 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


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

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 : 2,028 sec (3)

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