• Aucun résultat trouvé

Résoudre :

Axxx “bbb Méthodes itératives :

xxxr0s PKn et xxxrk`1sBxxxrks`ccc Algorithme :

xxxr0s donné

Pour k“0, 1,¨ ¨ ¨ faire xxxrk`1s ÐBxxxrks`ccc Fin Pour

Critère d'arrêt? Stockage de tous les xxxrks?

Méthodes itératives Algorithmes 2015/10/28 42 / 55

La convergence de ces méthodes n'est pas assurées et si il y a convergence le nombre d'itération nécessaire n'est (à priori) pas connu.

ùñ boucle Tantque Critères d'arrêt :

‚ nombre maximum d'itérations

‚ εą0 permet l'arrêt des calculs si xxxrks susament proche dexxx¯“A-1bbb Comment choisir le critère d'arrêt pour la convergence?

Exemple de critère d'arrêt pour la convergence : Soit rrrrks “bbb´Axxxrks le résidu.

›rrrrks

› }bbb} ďε Car dans ce cas, on a avec eeerks “xxx¯´xxxrks

›eeerks

}xxx}¯ ďεcondpAq

Méthodes itératives Algorithmes 2015/10/28 43 / 55

La convergence de ces méthodes n'est pas assurées et si il y a convergence le nombre d'itération nécessaire n'est (à priori) pas connu.

ùñ boucle Tantque Critères d'arrêt :

‚ nombre maximum d'itérations

‚ εą0 permet l'arrêt des calculs si xxxrks susament proche dexxx¯“A-1bbb Comment choisir le critère d'arrêt pour la convergence?

Exemple de critère d'arrêt pour la convergence : Soit rrrrks “bbb´Axxxrks le résidu.

›rrrrks

› }bbb} ďε

Car dans ce cas, on a avec eeerks “xxx¯´xxxrks

›eeerks

}xxx}¯ ďεcondpAq

Méthodes itératives Algorithmes 2015/10/28 43 / 55

La convergence de ces méthodes n'est pas assurées et si il y a convergence le nombre d'itération nécessaire n'est (à priori) pas connu.

ùñ boucle Tantque Critères d'arrêt :

‚ nombre maximum d'itérations

‚ εą0 permet l'arrêt des calculs si xxxrks susament proche dexxx¯“A-1bbb Comment choisir le critère d'arrêt pour la convergence?

Exemple de critère d'arrêt pour la convergence : Soit rrrrks “bbb´Axxxrks le résidu.

›rrrrks

› }bbb} ďε Car dans ce cas, on a avec eeerks “xxx¯´xxxrks

›eeerks

}xxx}¯ ďεcondpAq

Méthodes itératives Algorithmes 2015/10/28 43 / 55

Algorithme 1 Méthode itérative pour la résolution d'un système linéaireAxxxbbb Données :

A : matrice deMnpKq, bbb : vecteur deKn, xxx0 : vecteur initial deKn, ε : la tolérence,εPR`,

kmax : nombre maximum d'itérations, kmaxPN˚ Résultat :

xxxtol : un vecteur deKnsi convergence, sinonH

1: kÐ0,xxxtolÐ H

2: xxxÐxxx0,rrrÐbbb´Axxx,

3: tolÐεp}bbb} `1q

4: Tantque }rrr} ątol et kďkmax faire

5: kÐk`1

6: pppÐxxx Źppp contient le vecteur précédent

7: xxxÐcalcul de l'itérée suivante en fonction de ppp,A,bbb,...

8: rrrÐbbb´Axxx,

9: Fin Tantque

10: Si}rrr} ďtol alors ŹConvergence

11: xxxtolÐxxx

12: Fin Si

Méthodes itératives Algorithmes 2015/10/28 44 / 55

Pour Jacobi , la suite des itérées est dénie par

Algorithme2 R

0

10: FinTantque

11: Si}rrr} ďtolalors ŹConvergene

12: xxx tolÐxxx

13: FinSi

Algorithme2 R

1

11:FinTantque

12:Si}rrr} ďtolalors ŹConvergene

13: xxx tolÐxxx

14:FinSi

Méthodes itératives Algorithmes 2015/10/28 45 / 55

Algorithme2 R

10: FinPour

11: r

r

rÐbbb´Axxx,

12: FinTantque

13: Si}rrr} ďtolalors

14: xxx tolÐxxx

15: FinSi

Algorithme2 R

2

11: FinPour

12: x

iÐ 1

a

ii

pbi´Sq

13: FinPour

14: rrrÐbbb´Axxx,

15:FinTantque

16:Si}rrr} ďtolalors

Méthodes itératives Algorithmes 2015/10/28 46 / 55

Algorithme 2 Méthode itérative de Jacobi pour la résolution d'un système linéaireAxxxbbb

kmax : nombre maximum d'itérations, kmaxPN˚ Résultat :

12: Fin Pour

13: xpiq Ð pbpiq ´Sq{Api,iq

14: Fin Pour

15: rrrÐbbb´A˚xxx, 16: Fin Tantque 17: Si}rrr} ďtol alors 18: XXXÐxxx 19: Fin Si 20:Fin Fonction

Méthodes itératives Algorithmes 2015/10/28 47 / 55

Pour Gauss-Seidel , la suite des itérées est dénie par

Algorithme3 R

0

xÐalulparGauss-Seidel

9: r

r

rÐbbb´Axxx,

10:FinTantque

11:Si}rrr} ďtolalors

12: xxx tolÐxxx

13:FinSi

Algorithme3 R

1

11:FinTantque

12:Si}rrr} ďtolalors

13: xxx tolÐxxx

14:FinSi

Méthodes itératives Algorithmes 2015/10/28 48 / 55

Algorithme3 R

10: FinPour

11: r

r

rÐbbb´Axxx,

12:FinTantque

13:Si}rrr} ďtolalors

14: xxx tolÐxxx

15:FinSi

Algorithme3 R

2

11: FinPour

12: PourjÐi`1àn faire

13: SÐS´ai,j

p

j

14: FinPour

15: xiÐ 1

a

ii

pbi´Sq

16: FinPour

17: rrrÐbbb´Axxx,

18:FinTantque

19:Si}rrr} ďtolalors

20: xxx tolÐxxx

21:FinSi

Méthodes itératives Algorithmes 2015/10/28 49 / 55

Algorithme 3 Méthode itérative de Gauss-Seidel pour la résolution d'un système linéaireAxxx“bbb

kmax : nombre maximum d'itérations, kmaxPN˚ Résultat :

12: Fin Pour

13: Pour jÐi`1 à n faire 14: SÐS´Api,jq ˚ppjq

15: Fin Pour

16: xpiq Ð pbpiq ´Sq{Api,iq 17: Fin Pour

18: rrrÐbbb´A˚xxx, 19: Fin Tantque 20: Si}rrr} ďtol alors

21: XXXÐxxx

22: Fin Si 23:Fin Fonction

Méthodes itératives Algorithmes 2015/10/28 50 / 55

Fonction XXXÐRSLJacobi(A,bbb,xxx0, ε,kmax )

Fonction XXXÐRSLGaussSeidel(A,bbb,xxx0, ε,kmax ) kÐ0,XXXÐ H

Même ossature puisque toutes deux basées sur l'Algorithme générique Peut-on simplier, clarier et racourcir les codes?

Méthodes itératives Algorithmes 2015/10/28 51 / 55

Fonction XXXÐRSLJacobi(A,bbb,xxx0, ε,kmax )

Fonction XXXÐRSLGaussSeidel(A,bbb,xxx0, ε,kmax ) kÐ0,XXXÐ H

Même ossature puisque toutes deux basées sur l'Algorithme générique Peut-on simplier, clarier et racourcir les codes?

Méthodes itératives Algorithmes 2015/10/28 51 / 55

Fonction XXXÐRSLJacobi(A,bbb,xxx0, ε,kmax )

Algorithme 4 Itération de Jacobi : calcul de xxx tel que xi 1

9:Fin Fonction

Méthodes itératives Algorithmes 2015/10/28 52 / 55

Fonction XXXÐRSLJacobi2(A,bbb,xxx0, ε,kmax )

xxxÐIterJacobipA,bbb,pppq rrrÐbbb´A˚xxx,

Algorithme 5 Itération de Jacobi : calcul de xxx tel que xi 1

9:Fin Fonction

Méthodes itératives Algorithmes 2015/10/28 52 / 55

Fonction XXXÐRSLGaussSeidel(A,bbb,xxx0, ε,kmax )

Algorithme 6 Itération de Gauss-Seidel : calcul de xxx tel que 11: Fin Pour

12:Fin Fonction

Méthodes itératives Algorithmes 2015/10/28 53 / 55

Fonction XXXÐRSLGaussSeidel2(A,bbb,xxx0, ε,kmax )

xxxÐIterGaussSeidelpA,bbb,pppq rrrÐbbb´A˚xxx,

Algorithme 7 Itération de Gauss-Seidel : calcul de xxx tel que 11: Fin Pour

12:Fin Fonction

Méthodes itératives Algorithmes 2015/10/28 53 / 55

Fonction XXXÐRSLGaussSeidel2(A,bbb,xxx0, ε,kmax )

xxxÐIterGaussSeidelpA,bbb,pppq rrrÐbbb´A˚xxx,

Fonction XXXÐRSLJacobi2(A,bbb,xxx0, ε,kmax ) kÐ0,XXXÐ H

Les deux codes sont fortement similaires!

Peut-on éviter les copier/coller et gagner encore en lisibilité?

Méthodes itératives Algorithmes 2015/10/28 53 / 55

Ecriture Algorithme générique sous forme d'une fonction et on ajoute aux paramètres d'entrées une fonction formelleIterFonc calculant une itérée :

xxx ÐIterFoncpA,bbb,yyyq.

Algorithme 7 Méthode itérative pour la résolution d'un système linéaireAxxxbbb Données :

A : matrice deMnpKq,

bbb : vecteur deKn,

IterFonc : fonction de paramètres une matrice d'ordre n, et deux vecteurs deKn.retourne un vecteur deKn. xxx0 : vecteur initial deKn,

ε : la tolérence,εPR`,

kmax : nombre maximum d'itérations, kmaxPN˚ Résultat :

xxxtol : un vecteur deKnsi convergence, sinonH 1:Fonction XXXÐRSLMethIter(A,bbb,IterFonc,xxx0, ε,kmax) 2: kÐ0,xxxtolÐ H

3: xxxÐxxx0,rrrÐbbb´Axxx, 4: tolÐεp}bbb} `1q

5: Tantque }rrr} ątol et kďkmax faire

6: kÐk`1

7: pppÐxxx

8: xxxÐIterFoncpA,bbb,pppq 9: rrrÐbbb´Axxx, 10: Fin Tantque 11: Si}rrr} ďtol alors 12: xxxtolÐxxx 13: Fin Si 14:Fin Fonction

Méthodes itératives Algorithmes 2015/10/28 54 / 55

Fonction XXXÐRSLJacobi3(A,bbb,xxx0, ε,kmax ) XXXÐRSLMethIterpA,bbb,IterJacobi,xxx0, ε,kmaxq Fin Fonction

Fonction XXXÐRSLGaussSeidel3(A,bbb,xxx0, ε,kmax ) XXXÐRSLMethIterpA,bbb,IterGaussSeidel,xxx0, ε,kmaxq Fin Fonction

Algorithme 7 Méthode itérative pour la résolution d'un système linéaireAxxxbbb Données :

A : matrice deMnpKq,

bbb : vecteur deKn,

IterFonc : fonction de paramètres une matrice d'ordre n, et deux vecteurs deKn.retourne un vecteur deKn. xxx0 : vecteur initial deKn,

ε : la tolérence,εPR`,

kmax : nombre maximum d'itérations, kmaxPN˚ Résultat :

xxxtol : un vecteur deKnsi convergence, sinonH 1:Fonction XXXÐRSLMethIter(A,bbb,IterFonc,xxx0, ε,kmax) 2: kÐ0,xxxtolÐ H 10: Fin Tantque 11: Si}rrr} ďtol alors 12: xxxtolÐxxx 13: Fin Si 14:Fin Fonction

Méthodes itératives Algorithmes 2015/10/28 54 / 55

Méthode de relaxation utilisant Gauss-Seidel,avec w PR˚,

Algorithme 8 Itération S.O.R.

Données : 11: Fin Pour

12:Fin Fonction

Paramètre w "en trop" dans l'appel de la fonction Iter-SOR pour pouvoir utiliser la fonction génériqueRSLMethIter !

Fonction XXXÐRSLSOR3(A,bbb,w,xxx0, ε,kmax ) IterFunÐ ppM,rrr,sssq ÞÑIterSORpM,rrr,sss,wqq XXXÐRSLMethIterpA,bbb,IterFun,xxx0, ε,kmaxq Fin Fonction

Méthodes itératives Algorithmes 2015/10/28 55 / 55

Méthode de relaxation utilisant Gauss-Seidel,avec w PR˚,

Algorithme 9 Itération S.O.R.

Données : 11: Fin Pour

12:Fin Fonction

Paramètre w "en trop" dans l'appel de la fonction Iter-SOR pour pouvoir utiliser la fonction génériqueRSLMethIter !

Fonction XXXÐRSLSOR3(A,bbb,w,xxx0, ε,kmax ) IterFunÐ ppM,rrr,sssq ÞÑIterSORpM,rrr,sss,wqq XXXÐRSLMethIterpA,bbb,IterFun,xxx0, ε,kmaxq Fin Fonction

Méthodes itératives Algorithmes 2015/10/28 55 / 55

Documents relatifs