Résoudre :
Axxx “bbb Méthodes itératives :
xxxr0s PKn et xxxrk`1s “Bxxxrks`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éaireAxxx“bbb 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éaireAxxx“bbb
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éaireAxxx“bbb 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éaireAxxx“bbb 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