Vous êtes sur la page 1sur 44

Projet mathmatique

Mmoire

CAILLER Mlody QUEMY Alexandre RAMONDENC Pierre

2009-2010

Table des matires


I- Introduction 1. 2. 3. 4. .....................................................................................................................................................3

Prsentation du projet ..................................................................................................................................3 Contexte .......................................................................................................................................................3 Objectifs ........................................................................................................................................................3 Gestion du projet et repartition des rles ....................................................................................................4

II- Programme principal ...........................................................................................................................................5 1. 2. 3. Prsentation .................................................................................................................................................5 Amlioration .................................................................................................................................................5 Utilisation ......................................................................................................................................................6

III- Rsolution des systems linaires .......................................................................................................................8 1. Mthode du Pivot de Gauss .........................................................................................................................8 a. b. c. d. 2. Prsentation ...................................................................................................................................8 Algorithme ......................................................................................................................................9 Sources .........................................................................................................................................10 Critiques .......................................................................................................................................10

Dcomposition LU ......................................................................................................................................11 a. b. c. d. Prsentation .................................................................................................................................11 Algorithme ....................................................................................................................................12 Sources .........................................................................................................................................13 Critiques .......................................................................................................................................13

4.

Factorisation de Cholesky ...........................................................................................................................14 a. b. c. d. Prsentation .................................................................................................................................14 Algorithme ....................................................................................................................................16 Sources .........................................................................................................................................17 Critiques .......................................................................................................................................17

5.

Mthode de Jacobi .....................................................................................................................................18 a. b. c. d. Prsentation .................................................................................................................................18 Algorithme ....................................................................................................................................19 Sources .........................................................................................................................................19 Critiques .......................................................................................................................................19

6.

Autres methodes & pistes ..........................................................................................................................20 a. b. c. Mthode de Gauss-Seidel ............................................................................................................20 Mthode du gradient conjugu....................................................................................................20 Les systemes non-carrs ..............................................................................................................20 i. Systmes rectangulaires avec infinit solutions ...........................................................21 ii. Systmes rectangulaires avec une unique solution .......................................................22

Mmoire de projet mathmatique INSA 2010-2011 : Rsolution des systmes linaires.

P a g e |1

IV- Conditionnement .............................................................................................................................................24 1. 2. Problme de conditionnement ...................................................................................................................24 Solutions proposes ...................................................................................................................................24 a. b. Cas o le second membre varie ...................................................................................................25 Cas o la matrice varie .................................................................................................................25

V- Conclusion .........................................................................................................................................................26 Bibliographie..........................................................................................................................................................27 Remerciements......................................................................................................................................................27 Annexes .................................................................................................................................................................28 1. 2. Algorithme de Lanczos ................................................................................................................................28 Mthode dlimination de Gauss pour inverser une matrice carre .........................................................29

Sources...................................................................................................................................................................30

Mmoire de projet mathmatique INSA 2010-2011 : Rsolution des systmes linaires.

P a g e |2

I Introduction
1- Presentation du projet
Durant lEC Projet Mathmatiques , nous avons travaill sur les mthodes permettant de rsoudre les systmes d'quations linaires. Il s'agissait de travailler en groupe sur les diffrents moyens permettant la rsolution de systmes matriciels plus ou moins grands et d'tudier la complexit des algorithmes mis en place, ainsi que leurs performances et leurs limites. Nous avons galement t amens aborder le problme du conditionnement d'une matrice et de l'introduction d'erreurs dans les solutions.

2- Contexte
Aujourd'hui les systmes linaires sont partout. En mtorologie, dans toutes les sciences, dans tous les domaines de l'industrie. Il est donc primordial pour l'ingnieur de pouvoir rsoudre ce genre de systme de manire efficace, d'autant plus qu'il s'agit d'un outil trs courant. La thorie est trs simple : il suffirait d'inverser la matrice A, et de la multiplier notre vecteur de mesure. Sauf qu'en pratique, il est draisonnable de vouloir inverser une matrice pour des raisons de temps et donc de rentabilit : combien de temps prendrait l'inversion d'une matrice contenant plusieurs centaines de milliers de valeurs ? Certainement beaucoup plus que les quelques heures dont dispose Mto France pour traiter des matrices de cette taille. Et le problme n'est pas rcent puisque depuis de nombreux sicles des scientifiques ont mis au point des mthodes permettant de rsoudre intelligemment les systmes linaires. Ainsi des mathmaticiens comme Gauss ou Jacobi ont travaill sur ce problme ds le 18me sicle. Il nexiste pas de mthode systmatique qui permettrait la rsolution de tout systme linaire Ax = b quels que soient ses particularits. De fait, le choix dune mthode de rsolution est conditionn dans un premier temps par la nature du systme (sa symtrie, sa convergence par exemple) puis par la mmoire disponible. On distingue ainsi, deux types de mthodes de rsolution : Les mthodes directes : donnent une solution exacte en nombre fini doprations. Les mthodes itratives : donnent une solution approche en engendrant une suite finie ou infinie de vecteurs tendant vers la solution.

3- Objectifs
L'objectif principal de ce projet tait d'acqurir des mthodes pour l'ingnieur de rsolution de systmes linaires en tudiant les diffrents moyens de rsoudre ces systmes et d'en analyser les avantages et inconvnients. Un second objectif tait de russir travailler en groupe et effectuer des recherches efficaces. Mmoire de projet mathmatique INSA 2010-2011 : Rsolution des systmes linaires. P a g e |3

4- Gestion du projet et rpartition des rles


Le projet a t dcoup en deux phases. La premire phase est constitue des sances obligatoires alloues au projet qui nous ont permis de comprendre les mthodes prsentes, et de les retranscrire de manire algorithmique. C'tait galement le moment pour se rpartir les taches pour la seconde phase du projet. Cette seconde phase, en parallle la premire, fut consacre l'laboration du mmoire, la recherche personnelle sur le sujet des systmes linaires (autres mthodes, historique, conditionnement, matrice noncarre, etc.) puis la mise en commun par mails o lors de brves runions de ces recherches. C'est galement durant cette phase que fut cod le logiciel prsent ci-dessous, ainsi que d'autres mthodes que celles proposes par le sujet (Jacobi par exemple), et mis au propre le code des mthodes ralises en cours (indentation correcte, lisibilit, commentaires, etc.).

Mmoire de projet mathmatique INSA 2010-2011 : Rsolution des systmes linaires.

P a g e |4

II Programme principal
1- Prsentation
Nous avons dcid, au del des consignes gnrales du projet mathmatiques, de raliser un programme fonctionnel regroupant toutes les mthodes tudies et qui permet ainsi de rsoudre des systmes linaires par chacune de ces mthodes. Nous avons ajout une fonctionnalit qui nous semblait importante pour que le programme ait une utilit : la dfinition des systmes partir de fichier externe, au format texte. Ainsi, dans le cas de trs grands systmes linaires, l'utilisateur n'aurait pas rentrer sa matrice chaque fois, le programme la charge partir du fichier. A noter que le logiciel est open-source : nous laissons chacun la possibilit de modifier et ainsi amliorer le programme sa guise. A noter : Le logiciel prsent ici n'est qu'une premire version et continuera d'voluer aprs le projet mathmatiques INSA comme projet personnel. Le principal dfaut du logiciel est qu'il ne teste pas encore les conditions d'application d'une mthode un systme et de ce fait, il peut renvoyer des rsultats incorrects (par exemple, il ne teste pas si la matrice A est symtrique dfinie positive ce qui est une condition ncessaire l'application de la factorisation de Cholesky). Les sources du logiciel (compilant sous systmes UNIX et Windows) sont disponibles ladresse suivante : http://linear.alwaysdata.net

2- Amliorations
Beaucoup d'amliorations sont envisageables. On peut penser l'initialisation des matrices par diffrents types de fichiers (tableaux Excel par exemple), l'exportation des rsultats, notamment le vecteur solution sous ces diffrents types de fichier afin d'en garder une trace exploitable. Il serait galement possible d'afficher les tapes intermdiaires de calculs de chaque mthode afin que l'on se rende compte des diffrences entre les mthodes qui conduisent pourtant au mme rsultat. Encore mieux, intgrer des benchmarks, c'est dire des tests de performance (par exemple le nombre d'itrations ncessaires par rapport une autre mthode, le temps de calcul afin de trouver la solution) permettrait de mettre en vidence de faon plus explicite les avantages et inconvnients de chacune des mthodes : certaines mthodes peuvent-tre plus intressantes utiliser sur des systmes de grande envergure, d'autres sur des plus petits systmes, etc. Nous pourrions galement ajouter une interface plus esthtique et ergonomique au programme, avec Qt par exemple, bien que cela ne soit qu'accessoire d'un point de vu rsultat. Une ide intressante serait de recoder le logiciel en GPGPU (via le framework CUDA pour nVidia par exemple) particulirement adapt au calcul matriciel, c'est dire d'excuter tous les calculs par la carte graphique et non plus par le processeur. L'avantage est que comparativement, un processeur actuel dispose au maximum de 4 curs avec une capacit de calcul de 5 gigaflop contre 512 curs et 500 gigaflop voir 1teraflop de capacit pour les dernires cartes graphiques. Ainsi, on pourrait diviser par 100 le temps de calcul sur un ordinateur personnel, ce qui n'est pas ngligeable. Le logiciel pourrait alors devenir intressant pour les PME qui n'ont pas forcment les moyens d'acqurir un matriel informatique haut de gamme (super-ordinateur notamment). Mmoire de projet mathmatique INSA 2010-2011 : Rsolution des systmes linaires. P a g e |5

Enfin, il est vident qu'il faut amliorer les mthodes proposes en incorporant les algorithmes ncessaires pour vrifier qu'une mthode est applicable au systme dsir.

3- Utilisation
Dclaration manuelle de la matrice :

Dclaration de la matrice par un fichier texte (arrt du programme si le chemin nest pas valide).

Mmoire de projet mathmatique INSA 2010-2011 : Rsolution des systmes linaires.

P a g e |6

Format du fichier texte :


N // ordre de la matrice x11 ... x1n // Dfinition de la matrice, avec un espace pour sparer les valeurs . . . . . . . . . xn1 ... xnn b1 ... bn // Dfinition du vecteur b

Exemple dutilisation de la mthode de Jacobi :

Mmoire de projet mathmatique INSA 2010-2011 : Rsolution des systmes linaires.

P a g e |7

III Rsolution des systmes linaires


Lobjet du projet mathmatique est ltude des systmes linaires. Cependant, notre tude se restreint aux systmes carrs dont la solution est unique. Ceci sexplique par la grande difficult quimpose la rsolution de systmes rectangulaires ou de systmes possdant une infinit de solutions. En effet, nos comptences actuelles et le temps qui nous est impartit nous ont contraints dtudier des systmes simples .

1- Mthode du pivot de Gauss


a- Prsentation
Nous portons tout dabord notre regard sur cette mthode de rsolution directe de systme linaire, la mthode dite du pivot de Gauss ou de llimination de Gauss -Jordan, nomme en lhonneur de Carl Friedrich Gauss et Wilhem Jordan. Cette mthode fut rendue connue grce aux mathmaticiens allemands au cours du XIXme sicle, mais elle est connue des chinois depuis le Ier sicle environ. La mthode du pivot de Gauss permet la transformation dun systme linaire en un autre systme quivalent, puis la rsolution de ce systme au moyen dun algorithme dit de remonte . Ce quon cherche rsoudre, cest bien entendu le systme Ax=b. Pour cela on va tout dabord triangulariser la matrice A. Ce systme peut scrire sous la forme :

La premire tape de la triangularisation consiste en llimination des variables x1 dans toutes les lignes allant de 2 n. Ensuite, il sagit dliminer les variables x2 dans toutes les lignes allant de 3 n, et ainsi de suite. On ritre donc ce type dopration n-1 fois pour obtenir une matrice A triangularise. Prenons lexemple dun systme linaire carr dordre 3 que lon peut crire sous la forme du systme suivant :

re

tape : On limine x1 dans les lignes L2 et L3.

me

tape :

On limine x1 dans la ligne L3.

Mmoire de projet mathmatique INSA 2010-2011 : Rsolution des systmes linaires.

P a g e |8

Il est dsormais ais de rsoudre ce systme en le remontant, c'est--dire en dduisant x3 dans la troisime ligne, puis x2 dans la deuxime et enfin x1 dans la premire. Cest ce que lon appelle lalgorithme de remonte . Ainsi, on obtient :

b- Algorithme
On va dabord par cet algorithme triangulariser la matrice A en une matrice triangulaire suprieure :
Pour i = 1 jusqu N faire Pour k = i+1 jusqu N faire c = A[k][i] / A[i][i] B[k] = B[k] - c*B[i] Pour j = i jusqu N faire A[k][j]= A[k][j] - c*A[i][j] Fin de boucle sur j Fin de boucle sur k Fin de boucle sur i

On va par la suite calculer cette matrice triangulaire suprieure laide de lalgorithme de remonte :
Pour i = N jusqu 1 faire S = 0 Pour j = i + 1jusqu N faire S = S + A[i][j]*x[j]

Fin de boucle sur j x[i] = (b[i] - S) / A[i][i]

Fin de boucle sur i

Mmoire de projet mathmatique INSA 2010-2011 : Rsolution des systmes linaires.

P a g e |9

c- Sources
Le code source de notre programme contient la mthode permettant la triangularisation de notre matrice A, cette mthode est appele Trisup. Puis le code source contient la mthode permettant la rsolution par lalgorithme de remonte, cette mthode est appele Solsup. Ces deux mthodes sont appeles par la mthode resolG qui correspond la mthode du pivot de Gauss.

d- Critiques
Cette mthode dlimination de Gauss prsente dans un premier temps lintrt dutiliser des oprateurs lmentaires dadditions, multiplications, ce qui la rend trs simple dutilisation. De plus, cette mthode prsente un avantage par rapport la mthode LU (cf IV-2) dans la mesure o lon ne rsout quun systme linaire. En effet, le nombre de calculs raliss dans la mthode du Pivot de Gauss de lordre de est infrieur au nombre de calculs raliss lors dune factorisation LU. Cependant, cela ne sapplique que pour la rsolution dun seul systme linaire, ce qui dans la pratique est trs rare, voire inexistant puisque pour un mme paramtre A on neffectue jamais une seule srie de m esures. Ces mesures correspondent au second membre b. En outre, cette mthode prsente un inconvnient non ngligeable. Elle peut en effet savrer totalement inutile dans le cas de lapparition dun pivot nul. En effet, dans lalgorithme on se rend compte que si lun des termes A*i+*i+ (pivot) devient nul, le calcul est impossible. Ainsi, la mthode dlimination de Gauss nest pas utilisable avec nimporte quel systme dans l'tat actuel de l'algorithme (alors qu'elle l'est d'un point de vue thorique). Enfin, limplmentation sur machine de lalgorithme de Gauss donne gnralement de mauvais rsultats, car les erreurs darrondis saccumulent et faussent la valeur de la solution.

Mmoire de projet mathmatique INSA 2010-2011 : Rsolution des systmes linaires.

P a g e | 10

2- Factorisation LU
a- Prsentation
Nous nous intressons ici une mthode directe de rsolution de systme linaire, la dcomposition LU. Nous cherchons dcomposer la matrice carre inversible A en un produit dune matrice triangulaire infrieure diagonale unit appele L (pour Lower) par une matrice triangulaire suprieure U (pour Upper). On a ainsi Avec les matrices L et U telles que :

Tout comme dans la mthode dlimination de Gauss la premire tape de la factorisation LU consiste transformer la matrice A en matrice U triangulaire suprieure. Nanmoins, la triangularisation de la matrice se fait sans modification du second membre. Ensuite, la matrice tant triangularise, il faut dterminer la matrice L triangulaire infrieure telle que A soit gal LU. On peut dterminer la main que les coefficients L[k][i] de la me matrice L sont gaux loppos des coefficients par lequel on multiplie la (k -1) ligne dans le but de triangulariser la matrice A.

Prenons lexemple tudi dans le chapitre IV-1 :

La triangularisation de la matrice A donne :

Puis en identifiant les coefficients L[k][i] on trouve :

Le systme initial (E) est donc quivalent au systme :

La transformation de notre premier systme linaire Ax=b en LUx=b permet ainsi la rsolution du systme initial grce deux rsolutions plus simples.

Mmoire de projet mathmatique INSA 2010-2011 : Rsolution des systmes linaires.

P a g e | 11

Dans un premier temps celle du systme Ly = b par ce que lon appelle lalgorithme de descente puis celle du systme Ux = y par lalgorithme de remonte.

Algorithme de descente :

Algorithme de remonte :

b- Algorithme
On va grce cet algorithme calculer la matrice L et transformer notre matrice A en la matrice U. Il sagit de lalgorithme de Doolittle. Il existe en effet, un second algorithme pour la dcomposition qui est lalgorithme de Crout.

Pour i = 1 jusqu n faire Pour k = i +1 jusqu n faire L[k][i] = A[k][i]/ A[i][i] Pour j = 2 n faire A[k][j] = A[k][j] - L[k][i] x A[i][j] Fin de boucle sur j Fin de boucle sur k Fin de boucle sur i

Mmoire de projet mathmatique INSA 2010-2011 : Rsolution des systmes linaires.

P a g e | 12

c- Sources
Le code source de notre programme contient la mthode permettant de transformer le systme Ax=b en LUx=b (Factorisation LU), puis il contient la mthode de rsolution de ce dernier systme qui permet lutilisateur dobtenir sa solution.

d- Critiques
Cette mthode de factorisation LU prsente par rapport la mthode du pivot de Gauss un certain avantage. En effet, en pratique, on neffectue pas des mesures isoles, ces mesures correspondent au second membre b qui est donc amen tre modifi un certain nombre de fois pour des paramtres fixes tant tablis dans A. Comme la factorisation est unique lorsque lon a dtermin les matrices infrieure et suprieure L et U il suffit de rsoudre les quations (1) et (2) :

Concernant la mthode du pivot de Gauss, lorsque lon modifie le systme linaire en changeant de second membre la matrice initiale est contrainte dtre modifie. Cest donc l que la mthode de factorisation LU prsente un avantage, lors de rsolution multiples de systmes linaires.

Dcomposition LU

Pivot de Gauss

Rsolution dun unique systme Rsolution de N systmes


Nombre de calculs On prfrera donc la mthode par dcomposition LU, chaque fois qu'on a rsoudre plusieurs systmes avec la mme matrice et des seconds membres distincts. Tout comme dans la mthode dlimination de Gauss, il est possible quun pivot nul apparaisse dans lalgorithme. Ainsi, le nombre de systmes linaires susceptibles dtre rsolu avec la factorisation LU est rduit. Il faut nanmoins prciser quil existe une mthode permettant de contourner ce problme. Celle -ci consiste permuter la ligne sur laquelle le pivot nul apparait avec une autre ligne ne possdant pas de pivot nul. Nous pouvons donc esprer amliorer l'algorithme des deux mthodes.

Mmoire de projet mathmatique INSA 2010-2011 : Rsolution des systmes linaires.

P a g e | 13

3- Dcomposition de Cholesky
a- Prsentation
Nous nous intresserons ici une mthode de rsolution directe de systmes linaires : la mthode de factorisation de Cholesky. Cette mthode rsultant des travaux dun ingnieur et militaire franais Andr-Louis Cholesky, est trs utilise en chimie quantique, mais aussi pour la simulation dune loi multinormale. La mthode de Cholesky consiste en la dcomposition dune matrice carre symtrique dfinie positive A en le produit dune matrice triangulaire infrieure L et de sa transpose L tel que lon ait :
T

Avec

et

On, montre que toute matrice carre symtrique positive A admet une unique dcomposition une matrice triangulaire infrieure dont tous les lments diagonaux sont strictement positifs.

o L est

Cette mthode est trs analogue celle de la dcomposition LU puisquelle sappuie sur un principe similaire de dcomposition et de rsolution. Ainsi, tout comme dans la mthode de dcomposition LU, on substitue la rsolution du systme linaire initial (1) la rsolution du systme (2). De fait, la rsolution du systme (1) se dcompose en la rsolution de deux systmes plus simples.

Dans un premier temps, lalgorithme de remonte (cf IV -2-a)) permet la rsolution du systme (3) c'est--dire le calcul du vecteur y. Puis la rsolution du systme (4) grce lalgorithme de descente (cf IV -2-a)) permet la dtermination du vecteur x, solution du systme initial (1). Prenons lexemple de la matrice carre symtrique dfinie positive A suivante :

On cherche la matrice

tel que

Mmoire de projet mathmatique INSA 2010-2011 : Rsolution des systmes linaires.

P a g e | 14

De cette dernire galit, on en dduit le calcul des termes diagonaux :

On en conclut que :

De la mme faon on peut calculer les termes sous la diagonale :

On en conclut que :

Ainsi, si on considre une matrice A telle que A=

La matrice A est gale au produit

Mmoire de projet mathmatique INSA 2010-2011 : Rsolution des systmes linaires.

P a g e | 15

b- Algorithme
Pour calculer la matrice L partir de la matrice A :
Pour i = 1 jusqu N-1

Pour j = i+1 jusqu N

Fin de la boucle sur j

Fin de la boucle sur i

Comme voqu prcdemment, la mthode de dcomposition de Cholesky ne sapplique quaux matrices carres symtriques dfinies positives A, c'est--dire que : (la matrice A est symtrique) (la matrice symtrique A est dfinie positive)

Dans notre programme, seul le critre de symtrie de la matrice sera vrifi, grce lalgorithme suivant :

Pour i =1 jusqu N Pour j = 1 jusqu N Si A[i][j] est diffrent de A[j][i] Return faux Fin de la boucle sur j Fin de la boucle sur i

Mmoire de projet mathmatique INSA 2010-2011 : Rsolution des systmes linaires.

P a g e | 16

c- Sources
Les sources contiennent dune part la mthode de factorisation de Cholesky permettant le calcul de la matrice triangulaire infrieure L appele Cholesk. Ensuite, le code source comprend la mthode CholeskResol permettant la rsolution du systme (2) par lappel des mthodes Cholesk, solInf et solSup. Enfin, nous avons intgr au programme une mthode permettant de dterminer si une matrice A de taille n respecte le critre de symtrie ncessaire la mthode de dcomposition de Cholesky.

d- Critiques
La mthode de dcomposition de Cholesky prsente un grand intrt par rapport la mthode de T dcomposition LU car elle ncessite le calcul dune seule matrice L (la matrice L transpose de la matrice est trs simple calculer) contre 2 L et U dans la deuxime mthode. Nanmoins, elle se rvle tout aussi coteuse en termes de calculs car on estime matrice dordre n). le nombre de calculs ncessaires la dcomposition (pour une

On peut galement noter que les conditions sur la matrice A (carre, symtrique, dfinie positive) pour lutilisation de la dcomposition de Cholesky sont trs restrictives. Ainsi, cette mthode ne permet pas la rsolution dun systme linaire quelconque.

Mmoire de projet mathmatique INSA 2010-2011 : Rsolution des systmes linaires.

P a g e | 17

4- Mthode de Jacobi
a- Prsentation
La mthode de Jacobi est une mthode itrative de rsolution de systme linaire. L'objectif est de construire une suite vectorielle convergente vers la solution du systme linaire. En d'autres termes, nous allons approximer la solution du systme et amliorer la prcision de cette approximation de manire itrative jusqu' un degr de prcision acceptable. Cette mthode est due au mathmaticien allemand Charles Jacobi connu entre autres pour ses travaux sur la thorie des nombres, les fonctions elliptiques ou le calcul infinitsimal. Afin de trouver x, solution du systme, nous utilisons une suite convergente vers x, point fixe de cette suite. On (k + 1) (k) (0) cherche donc tablir la suite par rcurrence x = F(x ) tant donn un x donn. A = M N o M est une matrice inversible.

o F est une fonction affine. M

N est alors appele Matrice de Jacobi


1

Si x est solution de Ax = b alors x = M

Nx + M

Pour garantir la convergence de notre suite, il faut que la matrice soit diagonale dominante, c'est dire que :

Cependant, une matrice diagonale dominante implique une suite convergente, mais la rciproque n'est pas vraie. La seule condition ncessaire et suffisante pour que la suite converge est que le rayon spectral (plus grande valeur propre en module) de B soit strictement infrieur 1. Afin de tester si le rayon spectral est infrieur 1, il nous faut d'abord trouver les valeurs propres de la matrice. Pour ce faire, nous pourrions utiliser l'algorithme de Lanczos, qui est une mthode itrative qui permet de trouver ces valeurs. Cependant, l'algorithme n'est pas vident mettre en place, et donc, par manque de temps nous considrerons que l'utilisateur a vrifi lui mme la convergence de la suite (voire annexe A.1).

Mmoire de projet mathmatique INSA 2010-2011 : Rsolution des systmes linaires.

P a g e | 18

b- Algorithme
On choisit une approximation de la solution x
0

Tant que la convergence n'est pas atteinte, faire : Pour i = 1 jusqu' n faire : = 0 pour j = 1 jusqu' n faire : si j diffrent de i alors

fin de si fin de boucle sur j

fin de boucle sur i test de convergence fin de boucle sur la convergence

c- Sources
Les sources contiennent en plus de l'algorithme de rsolution et son affichage ainsi que le choix de la prcision. Le nombre d'itration ncessaire pour obtenir la prcision dsire est affich la suite du vecteur solution.

d- Critiques
On peut mettre plusieurs critiques face la mthode de Jacobi. Tout d'abord, il existe une condition sur la matrice A qui ne permet pas de rsoudre n'importe quel systme linaire. 2 Ensuite, cette mthode a un cot de l'ordre de 3n + 2n par itration et converge moins vite que la mthode itrative de Gauss-Seidel. Cependant, elle est facilement paralllisable ce qui lui permet d'tre particulirement efficace avec une approche GPGPU (cf. II-3 Amliorations) et donc de devenir plus rapide que d'autres mthodes.

Mmoire de projet mathmatique INSA 2010-2011 : Rsolution des systmes linaires.

P a g e | 19

5- Autres mthodes & pistes


a- La mthode de Gauss-Seidel
La mthode de Gauss-Seidel est une mthode itrative de rsolution de systme linaire. Tout comme la mthode de Jacobi, elle consiste en la cration dune suite vectorielle convergente. Lapproche tant trs similaire la mthode de Jacobi, et par manque de temps, nous avons choisi de ne pas ltudier en profondeur et de ne pas en raliser une version informatique. La principale diffrence entre les deux mthodes est la dcomposition de la matrice A.

Dans la mthode de Gauss-Seidel, on choisit Alors que dans la mthode de Jacobi nous avons :

b- La mthode du gradient conjugu


La mthode du gradient conjugu a t mise au point en 1950 simultanment par Lanczos et Hestenes. Il sagit dune mthode itrative qui ne sapplique quaux matrices dfinies positivement symtriques. Lintrt de cette mthode est quelle permet de trouver une approximation de la solution en un nombre ditration gal la taille du systme. Une mthode alternative dite du gradient prconditionn permet de rduire le nombre ditrations par une initialisation astucieuse (prconditionnement) afin dobtenir une estimation trs proche de la solution exacte. Cette mthode consiste en la construction par rcurrence dune base de vecteurs orthogonaux pour le produit scalaire et exprimer le vecteur solution dans cette base. Pour choisir astucieusement le premier terme de la suite, o n utilise lintuition lie la nature physique du problme. De ce fait, la mthode prsente un peu moins dintrt pour nous, qui ntudions que des systmes abstraits et cest, avec les contraintes de temps, la raison pour laquelle nous navons pas dve lopp plus que cela ltude de cette mthode qui a pourtant donn lieu normment de publications. A noter quil existe une version gnralise aux matrices non-carre nomme : gradient biconjugu .

c- Les systmes non-carr


Comme voqu en introduction, notre tude sest principalement porte sur les systmes carrs. Nanmoins, nous nous sommes sommairement intresss en guise douverture aux mthodes de rsolution de systmes quelconques.

Mmoire de projet mathmatique INSA 2010-2011 : Rsolution des systmes linaires.

P a g e | 20

On peut distinguer deux types de systmes : Les systmes rectangulaires avec une infinit de solutions Les systmes rectangulaires avec une solution unique

Nous traiterons un exemple de chaque cas afin dobserver quelles sont ses particularits. La mthode utilise est celle de Gauss-Jordan (ou de llimination de Gauss) consistant en la transformation dun systme initial quelconque en un systme quivalent plus simple . Concrtement, il sagit de transformer la matrice A augmente de son second membre b en une matr ice chelonne rduite A augment de son second membre b du type :

i. Systmes rectangulaires avec infinit de solutions

Considrons le systme suivant :

Systme 3 quations et 4 inconnues systmes avec une infinit de solutions

Voici son criture sous forme matricielle :

On considre la matrice augmente (A/B) dobtenir la forme chelon rduite de la matrice augmente.

, puis on applique llimination de Gauss afin

Dans un premier temps supprimons les premiers termes de la premire colonne des lignes 2 et 3:

Faisons de mme avec ceux de la 3

me

ligne et 3

me

colonne :

Forme chelonne simple de (A/B)

Mmoire de projet mathmatique INSA 2010-2011 : Rsolution des systmes linaires.

P a g e | 21

Normalisons notre systme :

Gnrons des 0 par remonte :

Forme chelon rduite de (A/B)

Colonnes de base contenant les pivots

Le systme initial (E) se rduit un systme plus simple (E) : Exprimons les variables des colonnes de base en fonction des variables des colonnes hors base, c'est--dire exprimons et en fonction de et . (E) :

Do les solutions du systme (E)

Le systme possde ici une infinit de solutions. Ceci sexplique par le fait quon ait lorigine un systme trois quations (ou contraintes) pour quatre inconnues, et que lune des trois quations est linairement lie au deux autres, do la dpendance de deux variables aux deux autres.

Systmes rectangulaires avec une solution unique

Considrons le systme suivant :

Systme 4 quations et 3 inconnues systme avec possibilit dune unique solution si non redondance de certaines quations

Mmoire de projet mathmatique INSA 2010-2011 : Rsolution des systmes linaires.

P a g e | 22

Voici son criture sous forme matricielle :

On considre la matrice augmente (A/B) dobtenir la forme chelon rduite de la matrice augmente.

, puis on applique llimination de Gauss afin

Dans un premier temps supprimons les premiers termes des lignes 2, 3 et 4 et de la premire colonne :

Normalisons notre systme :

Permutons les lignes 2, 3 et 4 afin dchelonner la matrice:

Gnrons des 0 par remonte :

puis

Forme chelon rduite de (A/B)

Colonnes de base contenant les pivots

Le systme initial (F) se rduit un systme plus simple rsoudre :

Ici, le systme possde une unique solution. On a effectivement un systme 3 inconnues et 4 quations dont 3 sont indpendantes, do lexistence dune s eule et unique solution.

Mmoire de projet mathmatique INSA 2010-2011 : Rsolution des systmes linaires.

P a g e | 23

V Conditionnement
1- Problme de conditionnement
De nombreux problmes rencontrs dans les domaines de la physique, de la chimie ou encore de la mtorologie conduisent la rsolution de systmes linaires plus ou moins consquents. Le plus souvent, les donnes de ces problmes dpendent de mesures exprimentales connues avec une certaine erreur. En outre, il arrive parfois quune petite variation sur le second membre ou sur la matrice entrane une grande variation sur la valeur du vecteur solution. Dans ce cas, le problme (ou la matrice) est dit mal conditionn. Prenons un exemple :

On considre le systme suivant

Par la mthode de Cholesky on trouve la solution du systme

Si on remplace le second membre initial par le vecteur suivant

., la mthode de Cholesky

nous donne la solution suivante

On constate quune variation de sur le second membre peut entrainer une importante variation sur la solution, la rendant totalement inexploitable. Parfois, sur des systmes trs mal conditionns on peut multiplier une erreur relative de 0.01 par des millions.

2- Solutions proposes
Les problmes de mauvais conditionnement dune matrice ou dun problme font lobjet dune tude approfondie qui constitue une discipline part entire des mathmatiques : le conditionnement. Cette discipline consiste en la mesure de la dpendance de la solution d'un problme numrique aux donnes du problme, ceci afin de contrler la validit d'une solution calcule par rapport ces donnes. Concrtement, ce calcul de dpendance consiste majorer lerreur relative sur la solution grce lerreur relative sur les donnes du problme. Pour ce faire, les mathmaticiens on dfini le nombre K(A) (relativement une borne subordonne) correspondant au conditionnement de la matrice A dfini tel que :

Mmoire de projet mathmatique INSA 2010-2011 : Rsolution des systmes linaires.

P a g e | 24

Comme voqu prcdemment, deux situations peuvent se prsenter : soit le second membre varie soit la matrice varie.

a- Cas o le second membre varie :


Soit le systme Ax=b o les donnes sont la matrice A (considre comme exacte) et le second membre b connu avec une erreur . Majorons lerreur relative sur la solution. On a donc Soit : On sait de plus que Soit par combinaison des quations (1) et (2) on obtient : (1)

Ainsi, selon le conditionnement K(A) de la matrice A et lerreur relative commise sur le second membre on peut majorer lerreur relative sur la solution et juger de son exactitude. Souvent on considre quun conditionnement environ gal 1 est idal.

b- Cas o la matrice varie :


Soit le systme Ax=b o les donnes sont la matrice A connue avec une erreur A et le second membre b suppos exact. Majorons lerreur relative sur la solution. Tout calcul fait on trouve que :

Ainsi, afin dviter les problmes de mauvais conditionnement dun problme lide serait de fixer une valeur maximale de lcart relatif sur la solution, puis de le majorer grce aux formules dfinies ci-avant afin de conclure sur la qualit de la rsolution. Nanmoins, cette technique su ppose le calcul de linverse dune matrice qui trs simple grce la mthode dlimination de Gauss pour des systmes de petites tailles mais qui peut savrer trs lourd pour des systmes dordre lev.

Mmoire de projet mathmatique INSA 2010-2011 : Rsolution des systmes linaires.

P a g e | 25

IV Conclusion
Ce projet mathmatique a t loccasion de dcouvrir plusieurs mthodes pour lingnieur de rsolution de systmes linaires. Cest un outil de tous les jours pour lingnieur et donc une comptence non ngligeable que lon a pu acqurir grce ce projet. Nous pouvons dsormais affirmer quil nexiste pas de mthode magique pour la rsolution de systme linaire : il faut choisir lalgorithme en fonction de la situation (les contraintes sur la matrice lies lalgorithme, la prcision dsire, le matriel disponible, etc.). De plus, le projet mathmatique nous a appris faire des recherches efficaces sur le domaine scientifique et travailler en quipe. Les deux principaux objectifs que nous nous tions fixs ont donc t atteints. Enfin, le domaine tait extrmement riche et intressant, et nous avons malheureusement du passer sous silence dans ce mmoire bon nombre de choses qui nous ont pourtant intresss. On peut citer les mthodes de relaxation, de surrelaxation successive applique aux mthodes itratives pour augmenter la rapidit de convergence, la dcomposition QR pour les systmes non-carrs ou encore les mthodes de Gauss par pivot total ou partiel. Ltude plus pousse des algorithmes : tester leurs performances en paralllisation via MPI (Message Passing Interface), en GPGPU via CUDA (Compute Unified Device Architecture) par exemple, aurait t extrmement intressant.

Mmoire de projet mathmatique INSA 2010-2011 : Rsolution des systmes linaires.

P a g e | 26

Bibliographie
Sites Internet : Nadir SOUALEM Rsolution de systmes linaires, 2006 http://www.math-linux.com/spip.php?rubrique10 Wikipedia http://fr.wikipedia.org/wiki/Gauss http://fr.wikipedia.org/wiki/Jacobi http://en.wikipedia.org/wiki/Jacobi_method http://en.wikipedia.org/wiki/Cholesky_decomposition *+ Mthodes numriques pour lingnieur, dpartement ASI, INSA-Rouen http://asi.insa-rouen.fr/enseignement/siteUV/ananum/ Casa Maths, auteur non-identifi (professeur agrg semble-t-il) http://casa.maths.free.fr/documents/Mod%E9lisation/Conditionnement%20d%27un%20syst %E8me%20lin%E9aire.pdf

Ouvrages consults : Techniques du calcul matriciel de D.PHAM

Divers : Cours danalyse Systmes linaires et matrices INSA de Rennes 1


re

anne de cycle STPI

Remerciements
Nous souhaitons remercier M. Adel Hamdi pour son aide et ses conseils tout au long du projet mathmatique et M. Varea pour ses pistes utiles

Mmoire de projet mathmatique INSA 2010-2011 : Rsolution des systmes linaires.

P a g e | 27

Annexes
A1. ALGORITHME DE LANCZOS
Avoir une matrice diagonale dominante n'est pas une condition ncessaire et suffisante pour avoir une suite vectorielle convergente comme nous avons pu le voir dans la mthode de Jacobi. Il nous faut alors trouver les valeurs propres de notre matrice afin d'en dterminer le rayon spectral et s'assurer que celui-ci est infrieur 1. Pour cela, il existe l'algorithme de Lanczos que nous n'avons pas implment dans notre programme par manque de temps, mais dont nous souhaitions parler en annexe brivement. Lalgorithme de Lanczos permet de transformer une matrice A en une matrice tridiagonale (c'est --dire une matrice dont tous les coefficients qui ne sont ni sur la diagonale principale, ni sur la diagonale juste au-dessus, ni sur la diagonale juste en-dessous, sont nuls). Par exemple (ici une matrice carre de dimension m) :

Ensuite, pour trouver les valeurs propres et vecteurs propres associs, il faut utiliser une seconde mthode du type algorithme QR. Le procd est rendu trs simple par la nature tridiagonale de la matrice. Il est noter que cet algorithme est trs utilis tant lutilit des valeurs propres et vecteurs propres est grande. On peut citer par exemple Google qui lutilise pour son PageRank , son algorithme danalyse des liens concourant au systme de classement des pages Internet.

A2. MTHODE DLIMINATION DE GAUSS POUR INVERSER UNE MATRICE CARRE

Inverser une matrice A carre inversible dordre n, revient rsoudre n systmes Afi = ei pour i allant de 1 n. Pour cela, on cr un tableau n lignes et 2n colonnes en bordant la matrice A par la matrice identit In . Ainsi, pour inverser la matrice A=(ai j) de format (n, n), on utilisera la matrice augmente suivante :

Mmoire de projet mathmatique INSA 2010-2011 : Rsolution des systmes linaires.

P a g e | 28

La transformation de Gauss-Jordan consiste transformer ce systme en un systme quivalent dont le bloc gauche est l'identit, c'est--dire qu'il faut modifier la matrice (A | I) pour qu'elle devienne de la forme (I | A 1) en utilisant les proprits de l'algorithme.

Mmoire de projet mathmatique INSA 2010-2011 : Rsolution des systmes linaires.

P a g e | 29

Sources
S1. METHODE DE GAUSS
#include <stdio.h> #include <math.h> #include <stdlib.h> #include <iostream> #define DIM 200

using namespace std;

void triSup(double A[DIM][DIM], double B[DIM], int N) { double c;

for(int i = 0; i < N-1; i++) { for(int k = i+1; k < N; k++) { c = A[k][i] / A[i][i]; B[k] = B[k] - c*B[i]; for(int j = i; j < N; j++) A[k][j]= A[k][j] - c*A[i][j]; } } }

void solSup (double A[DIM][DIM] , double b[DIM] , double x[DIM], int N) { double S;

for (int i = N-1; i >= 0; i--) { S = 0; for (int j = i + 1; j < N; j++) { S = S + A[i][j]*x[j]; } x[i] = (b[i] - S) / A[i][i]; } Mmoire de projet mathmatique INSA 2010-2011 : Rsolution des systmes linaires. P a g e | 30

void resolG(double A[DIM][DIM], double b[DIM], double x[DIM], int N) { triSup(A, b, N); solSup(A, b, x, N); }

main(void) {

double a[DIM][DIM],b[DIM],x[DIM]; int n= 3;

// Initialisation cout << "Entrez la dimension de la matrice : "; cin >> n; cout << endl;

cout << "Entrez la matrice (par ligne, en sparant les valeurs par des espaces : " << endl; for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { cin >> a[i][j];

} }

cout << "Entrez le vecteur b : " << endl; for (int i = 0; i < n; i++) { cin >> b[i]; }

resolG (a, b, x, n);

cout << "Matrice A :" << endl; for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { cout << a[i][j] << " "; Mmoire de projet mathmatique INSA 2010-2011 : Rsolution des systmes linaires. P a g e | 31

} cout << endl; }

cout << endl << "Vecteur b :" << endl; for (int i = 0; i < n; i++) { cout << b[i] << endl; }

cout << endl << "Vecteur x solution :" << endl; for (int i = 0; i < n; i++) { cout << x[i] << endl; } system("pause"); }

Mmoire de projet mathmatique INSA 2010-2011 : Rsolution des systmes linaires.

P a g e | 32

S2. DCOMPOSITION LU
#include <stdio.h> #include <math.h> #include <stdlib.h> #include <iostream> #define DIM 200

using namespace std;

void lu(double L[DIM][DIM], double A[DIM][DIM], int N) {

double c = 0;

for (int i = 0; i < N; i++) { for (int j = 0; j < N; j++) { L[i][j] = 0; if (i==j) L[i][j] = 1; } } for(int i=0;i<N-1;i++) { for(int k=i+1;k<N;k++) { c = A[k][i]/A[i][i]; L[k][i] = c; for(int j=i;j<N;j++) A[k][j]= A[k][j] - c*A[i][j]; } } }

void solInf (double A[DIM][DIM], double b[DIM], double x[DIM], int N) { double S = 0;

for (int i = 0; i <= N-1 ; i++) { S = 0; Mmoire de projet mathmatique INSA 2010-2011 : Rsolution des systmes linaires. P a g e | 33

for (int j = 0; j <= i-1; j++) S = S + A[i][j]*x[j]; x[i] = (b[i] - S) / A[i][i]; } }

void solSup (double A[DIM][DIM], double b[DIM], double x[DIM], int N) { double S = 0;

for (int i = N-1; i >= 0; i--) { S = 0; for (int j = i + 1; j < N; j++) S = S + A[i][j]*x[j]; x[i] = (b[i] - S) / A[i][i]; } }

void resolLu (double A[DIM][DIM], double b[DIM], double x[DIM], int n) { solInf(A, b, x, n); solSup(A, b, x, n); }

main(void) {

double a[DIM][DIM],b[DIM],x[DIM], L[DIM][DIM]; int n= 3;

// Initialisation cout << "Entrez la dimension de la matrice : "; cin >> n; cout << endl;

cout << "Entrez la matrice (par ligne, en sparant les valeurs par des espaces : " << endl; for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { Mmoire de projet mathmatique INSA 2010-2011 : Rsolution des systmes linaires. P a g e | 34

cin >> a[i][j];

} }

cout << "Entrez le vecteur b : " << endl; for (int i = 0; i < n; i++) { cin >> b[i]; }

triSup(a, b, n);

lu(L, a, n);

resolLu (a, b, x, n);

cout << "Matrice A :" << endl; for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { cout << a[i][j] << " "; } cout << endl; }

cout << endl << "Vecteur b :" << endl; for (int i = 0; i < n; i++) { cout << b[i] << endl; }

cout << endl << "Vecteur x solution :" << endl; for (int i = 0; i < n; i++) { cout << x[i] << endl; } system("pause"); }

Mmoire de projet mathmatique INSA 2010-2011 : Rsolution des systmes linaires.

P a g e | 35

S3. FACTORISATION DE CHOLESKY


#include <stdio.h> #include <math.h> #include <stdlib.h> #include <iostream> #define DIM 200

using namespace std;

void solInf (double A[DIM][DIM], double b[DIM], double x[DIM], int N) { double S = 0;

for (int i = 0; i <= N-1 ; i++) { S = 0; for (int j = 0; j <= i-1; j++) S = S + A[i][j]*x[j]; x[i] = (b[i] - S) / A[i][i]; } }

void solSup (double A[DIM][DIM], double b[DIM], double x[DIM], int N) { double S = 0;

for (int i = N-1; i >= 0; i--) { S = 0; for (int j = i + 1; j < N; j++) S = S + A[i][j]*x[j]; x[i] = (b[i] - S) / A[i][i]; } }

void cholesk(double A[DIM][DIM], double L[DIM][DIM], int N) {

Mmoire de projet mathmatique INSA 2010-2011 : Rsolution des systmes linaires.

P a g e | 36

double S, F, M;

M = 0;

for (int i = 0; i < N ; i++) for (int j = 0; j < N ; j++) L[i][j] = 0;

for (int i = 0; i < N-1; i++) { S = 0.0; for (int k = 0; k < i; k++) S = S + (L[i][k])*(L[i][k]);

L[i][i] = sqrt(A[i][i] - S);

for (int j = 1 + i; j < N; j++) { F = 0.0; for (int k = 0; k < i; k++) F = F + (L[j][k])*(L[i][k]); L[j][i] = (A[j][i] - F)/ L[i][i]; } }

for (int j = 0; j < N-1; j++) M = M + (L[N-1][j])*(L[N-1][j]); L[N-1][N-1] = sqrt (A[N-1][N-1] - M); }

void choleskResol(double A[DIM][DIM], int N, double L[DIM][DIM], double b[DIM], double x[DIM]) {

double Y[DIM], M[DIM][DIM];

cholesk(A,L,N);

for(int i = 0; i < N; i++) for(int j = 0; j < N; j++) Mmoire de projet mathmatique INSA 2010-2011 : Rsolution des systmes linaires. P a g e | 37

M[i][j]=L[j][i];

solInf(L, b, Y, N); solSup(M, Y, x, N); }

main(void) {

double a[DIM][DIM],b[DIM],x[DIM], L[DIM][DIM]; int n= 3;

// Initialisation cout << "Entrez la dimension de la matrice : "; cin >> n; cout << endl;

cout << "Entrez la matrice (par ligne, en sparant les valeurs par des espaces : " << endl; for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { cin >> a[i][j];

} }

cout << "Entrez le vecteur b : " << endl; for (int i = 0; i < n; i++) { cin >> b[i]; }

cholesk(a,L,n); choleskResol (a, n, L, b, x);

cout << "Matrice A :" << endl; for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { Mmoire de projet mathmatique INSA 2010-2011 : Rsolution des systmes linaires. P a g e | 38

cout << a[i][j] << " "; } cout << endl; }

cout << endl << "Vecteur b :" << endl; for (int i = 0; i < n; i++) { cout << b[i] << endl; }

cout << endl << "Vecteur x solution :" << endl; for (int i = 0; i < n; i++) { cout << x[i] << endl; } system("pause"); }

Mmoire de projet mathmatique INSA 2010-2011 : Rsolution des systmes linaires.

P a g e | 39

S4. METHODE DE JACOBI


#include <stdio.h> #include <math.h> #include <stdlib.h> #include <iostream> #define DIM 200

using namespace std;

int isConv(double X[DIM],double XS[DIM],double eps,int n) { double s=0.00; for(int i=0;i<n;i++) s+=pow((X[i]-XS[i]),2);

s=sqrt(s);

if (s>eps) return(0); return(1); }

void jacobi (double a[DIM][DIM], double x[DIM], double x0[DIM], double b[DIM], int n) { for(int i=0;i<n;i++) // On redfinit x0 comme tant l'lment d'ordre n-1 de la suite x0[i]=x[i]; for(int i=0;i<n;i++) // Methode de Jacobi { x[i]=b[i]; for(int j=0;j<i;j++) x[i]-=a[i][j]*x0[j];// Calcul des lments du vecteur x (d'ordre n) patir de ceux du vecteur x0 (d'ordre n-1) for(int j=i+1;j<n;j++) x[i]-=a[i][j]*x0[j]; x[i]=(x[i]/a[i][i]); } Mmoire de projet mathmatique INSA 2010-2011 : Rsolution des systmes linaires. P a g e | 40

int main() { double a[DIM][DIM],b[DIM],x[DIM],j[DIM][DIM],x0[DIM];

int n = 2; int it = 0; // Compteur d'itrations double eps = 0; // Epsilon, prcision et condition pour le test d'arrt

// Initialisation cout << "Entrez la dimension de la matrice : "; cin >> n; cout << endl;

cout << "Entrez la matrice (par ligne, en sparant les valeurs par des espaces : " << endl; for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { cin >> a[i][j];

} }

cout << "Entrez le vecteur b : " << endl; for (int i = 0; i < n; i++) { cin >> b[i]; }

cout << "Entrez le vecteur x0 : " << endl; for (int i = 0; i < n; i++) { cin >> x0[i]; }

cout << "Entrez la precision desiree : "; cin >> eps; cout << endl; Mmoire de projet mathmatique INSA 2010-2011 : Rsolution des systmes linaires. P a g e | 41

while(!isConv(x,x0,eps,n)) // Tant que la convergence est vrifie { jacobi (a, x, x0, b, n); it++; }

// Affichage cout << "Matrice A :" << endl; for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { cout << a[i][j] << " "; } cout << endl; }

cout << endl << "Vecteur b :" << endl; for (int i = 0; i < n; i++) { cout << b[i] << endl; }

cout << endl << "Vecteur x solution :" << endl; for (int i = 0; i < n; i++) { cout << x[i] << endl; }

cout << endl << "Iterations : " << it <<endl; cout << "Precision : " << eps << endl; system("pause"); }

Mmoire de projet mathmatique INSA 2010-2011 : Rsolution des systmes linaires.

P a g e | 42

S4. PROGRAMME PRINCIPAL

Les sources du programme principal ntant quune runion des sources de mthodes prcdentes, nous navons pas jug utile de les mettre ici. Cependant, vous pouvez les tlcharger ladresse suivante : http://linear.alwaysdata.net

Mmoire de projet mathmatique INSA 2010-2011 : Rsolution des systmes linaires.

P a g e | 43

Vous aimerez peut-être aussi