begin process at 2012 05 24 05:09:43
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Math & Algorithmes

 > RESOLUTION D'UN SYSTÈME DE N ÉQUATIONS PAR LA MÉTHODE DE GAUSS-SEIDL

RESOLUTION D'UN SYSTÈME DE N ÉQUATIONS PAR LA MÉTHODE DE GAUSS-SEIDL


 Information sur la source

Note :
Aucune note
Catégorie :Math & Algorithmes Classé sous :Systèmes, équations, Gauss, Seidel, résolutions Niveau :Débutant Date de création :05/08/2008 Vu / téléchargé :7 152 / 120

Auteur : gastein

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

 Description

Ce programme vous permet de résoudre un système Ax=b par la méthode de Gauss-Seidl. NB: ce programme peut ne pas converger pour certaine matrice , dans ce cas il faut ajuster certains paramètres pour avoir une convergence. Je l'ai indiqué dans le code.

Source

  • # -*- coding: cp1252 -*-
  • # Ce programme résout un système d'équations Ax=b, par la méthode de Gauss-Seidel
  • # En cas de non convergence jouer sur w, ou sur tol ou sur itmax
  • from math import*
  • print "Résolution du système d'équations par la méthode Gauss -Seidel"
  • A=[[1,2,1],[8,-4,3],[3,2,-2]]
  • # A est une matrice du système définie ligne par ligne
  • b=[3,4,-2]
  • x=[0,0, 0]
  • # x est un vecteur qui definie les valeurs initiales de de x1 et x2(remarque xi est réel
  • tol=1e-16
  • # tol définie la précision seuil
  • err=0
  • itmax=300000
  • # itmax est le nombre d'itération maximal
  • s=0
  • w=0.1
  • # 0 <w <1 , est un facteur de relaxation qui modifie un peu l'algo, c'est pour amener
  • # le système à converger.En effet il se peut que le système ne converge pas pour certaine matrice
  • for k in range (itmax):
  • err=0
  • for i in range(len(A)):
  • s=0
  • xprim=x[i]
  • for j in range(len(A)):
  • if i!=j:
  • s=s+A[i][j]*x[j]
  • x[i]=w*((b[i]-s)/A[i][i])+(1-w)*x[i]
  • err=err+fabs((x[i]-xprim))
  • if err<tol:
  • print('Nombre d\' iterations',k,'Erreur',float(err))
  • print " la solution de votre système est:",x
  • break
  • else:
  • print "le sytème ne converge pas. Essayer de jouer sur w, ou sur tol ou sur itmax ou sur x"
  • print "voir en premier tol(penser à augmenter la puissance si trop petit), puis itmax, puis w (ne pas depasser 0.5)"
# -*- coding: cp1252 -*-

# Ce programme résout un système d'équations Ax=b, par la méthode de Gauss-Seidel
# En cas de non convergence jouer sur w, ou sur tol ou sur itmax

from math import*

print "Résolution du système d'équations par la méthode Gauss -Seidel"

A=[[1,2,1],[8,-4,3],[3,2,-2]]
# A est une matrice du système définie ligne par ligne
b=[3,4,-2]              
x=[0,0, 0]
#  x est un vecteur qui definie les valeurs initiales de de x1 et x2(remarque xi est réel
tol=1e-16
# tol définie la précision seuil
err=0
itmax=300000
# itmax est le nombre d'itération maximal
s=0
w=0.1
# 0 <w <1 , est un facteur de relaxation qui modifie un peu l'algo, c'est pour amener
# le système à converger.En effet il se peut que le système ne converge pas pour certaine matrice
for k in range (itmax):
      err=0
      for i in range(len(A)):
            s=0
            xprim=x[i]
            for j in range(len(A)):
                  if i!=j:
                        s=s+A[i][j]*x[j]
            x[i]=w*((b[i]-s)/A[i][i])+(1-w)*x[i]
            err=err+fabs((x[i]-xprim))
      if err<tol:
            print('Nombre d\' iterations',k,'Erreur',float(err))
            print " la solution de votre système est:",x
            break
else:
      print "le sytème ne converge pas. Essayer de jouer sur w, ou sur tol ou sur itmax ou sur x"
      print "voir en premier tol(penser à augmenter la puissance si trop petit), puis itmax, puis w (ne pas depasser 0.5)"

 Conclusion

J'espère recevoir vos commentaires et remarques et que ce code vous permettra de resoudre certains de vos problèmes. 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


 Sources du même auteur

Source avec Zip OPÉRATION MATRICIELLE
Source avec Zip RACINE N-IÈME D'UN RÉEL A, PAR LA METHODE DE NEWTON-RAPHSON
Source avec Zip CONVERSION ET COMPARAISON D'ENTIER RELATIFS EN BINAIRE

 Sources de la même categorie

Source avec une capture MISE EN EVIDENCE DE L'ALGORITHME A STAR GRAPHIQUEMENT par Mints
Source avec Zip BASE64 ENCRYPT/DECRYPT PYTHON BY MAXOU56800 par Maxou56800
Source avec Zip Source avec une capture TRIANGULATION par mecrosoft
Source avec Zip Source avec une capture COURBE DE BEZIER par mecrosoft
Source avec Zip Source avec une capture CALCUL D'AIRE D'UN TRIANGLE [INTERFACE GRAPHIQUE] par SeventhSon

 Sources en rapport avec celle ci

PIVOT DE GAUSS par linkid

Commentaires et avis

Commentaire de sidou195 le 20/05/2009 14:52:50

slt, est ce que toutes les systèmes sont résolvables avec cette méthode?
essayez ce système

   1  x  +     2   y  -     2    z = 1
.1156 x  +  1.5644 y  +   .2044  z = .1156
.1156 x  +   .2044 y  +  1.5644  z = .1156
   1  x  -     2   y  +     2    z = 1

Commentaire de gastein le 20/05/2009 20:55:14

slt  sidou195, merci pour ta question. La matrice de ton système est une matrice 4*3 et la méthode que je donne ci-dessus n'est pas adaptée pour ce genre de système mais plutôt pour un système dont la matrice est carré. Toutefois je purrai me pencher sur la résolution de tel systême. Merci

Commentaire de saidensak le 19/05/2011 13:38:47

svp, j'ai un mini projet sur la methode de relaxation pour resoudre  le systeme Ax=b avec langage C; est ce que vous pouvez m'aider de trouver la traduction en C (programme)  ( methode iterative)   et merci bcp d'avance (^^)                    

 Ajouter un commentaire




Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

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 : 1,061 sec (4)

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