Académique Documents
Professionnel Documents
Culture Documents
1 - Méthode Jacobi
2 - Méthode Gauss-Seidel
3 - Méthode Sor
Différence entre
Méthodes directes
Méthodes itératives
𝑓 𝑥 = 0 ⇔ 𝑥3 = 𝑥
−1 0 1
𝑥? 𝑥
𝑓 𝑥 −𝑓 𝑥0 𝑥1 𝑥0
On a : 𝑓 ′ 𝑥0 = 𝑓 𝑥 = 𝑥 − 𝑥0 𝑓 ′ 𝑥0 + 𝑓 𝑥0
𝑥−𝑥0
𝑓 𝑥 ≈0
𝑥 − 𝑥0 𝑓 ′ 𝑥0 + 𝑓 𝑥0 ≈ 0
Programmation
Nous appelons norme matricielle : une norme définie sur 𝑀𝑛 (𝐶) qui est compatible
avec la multiplication de matrice:
. ∶ 𝑀𝑛 𝐶 → 𝑅 +
𝐴→ 𝐴
∀ 𝐴, 𝐵 ∈ 𝑀𝑛 𝐶 , ∀𝜆 ∈𝐶
• 𝐴 =0 ⇔ 𝐴=0 𝑆é𝑝𝑎𝑟𝑎𝑡𝑖𝑜𝑛
• 𝜆. 𝐴 = 𝜆 . 𝐴 𝐻𝑜𝑚𝑜𝑔é𝑛é𝑖𝑡é
• 𝐴+𝐵 ≤ 𝐴 + 𝐵 𝐼𝑛é𝑔𝑎𝑙𝑖𝑡é 𝑡𝑟𝑖𝑎𝑛𝑔𝑢𝑙𝑎𝑖𝑟𝑒
• 𝐴. 𝐵 ≤ 𝐴 . 𝐵
∀ 𝐴 ∈ 𝑀𝑛 𝐶 : 𝑛 𝑛
𝐴 𝐹 = 𝑎𝑖𝑗 = 𝑡𝑟( 𝑡𝐴 𝐴)
𝑖=1 𝑗=1
Définition 02
Une norme matricielle . est compatible avec une norme vectorielle . 𝑣 ssi :
∀𝑥 𝐴.𝑥 𝑣 = 𝐴 . 𝑥 𝑣
Propriété 01
Pour toute norme matricielle, il existe une norme vectorielle avec laquelle elle est
compatible.
Soit 𝐴 ∈ 𝑀𝑛 𝐶
Notons 𝜆𝑖 les valeurs propres de 𝐴
On appelle rayon spectral de la matrice 𝐴 le nombre réel : 𝜌 𝐴 = max 𝜆𝑖
1≤𝑖≤𝑛
Propriétés 02
Méthodes itératives
Méthodes itératives
On décompose la matrice 𝐴 : 𝐴 = 𝑀 − 𝑁
L’équation 𝐴𝑥 = 𝑏 devient : 𝑀𝑥 = 𝑁𝑥 + 𝑏
Méthodes itératives
Méthodes itératives
Théorème 01
Soit 𝐴 ∈ 𝑀𝑛 𝐶
S’il existe une norme matricielle induite . ∗ vérifiant : 𝐴 ∗ <1
alors:
• l’équation 𝑥 = 𝐴𝑥 + 𝐵 admet une solution unique 𝑥 ∗
• ∀ 𝑥0 ∶ 𝑥𝑘 → 𝑥∗
Méthodes itératives
Démonstration
Méthodes itératives
Théorème 02
Méthodes itératives
Théorème 03
Méthodes itératives
Objectif
Comment choisir 𝑀 et 𝑁 ?
1 - Méthode de Jacobi
Exemple 05
1 1 0 0
Considérons le système d’équations: 𝐴𝑥 = 𝑏 𝐴 = −1 −1 1 𝑏= 1
∗
0 1 1 2
𝑥1
Nous cherchons donc une solution 𝑥 ∗ = 𝑥2∗
𝑥3∗
Le développement des lignes nous donne:
𝑥1 + 𝑥2 = 0 𝑥1 = −𝑥2
−𝑥1 − 𝑥2 + 𝑥3 = 1 soit 𝑥2 = −𝑥1 + 𝑥3 − 1
𝑥2 + 𝑥3 = 2 𝑥3 = 2 − 𝑥2
1 - Méthode de Jacobi
Exemple 05
𝑥10
Itérativement, considérons un point de départ :
𝑥 0 = 𝑥20
𝑥30
𝑥11
Nous cherchons une nouvelle valeur 𝑥 1 = 𝑥21 plus proche du résultat par :
𝑥31
1 - Méthode de Jacobi
Algorithme
Données : 𝐴, 𝑏, 𝑥 0 , 𝑛 , 𝜀
Initialisation par 𝑥𝑖0
Début pour 𝑖 = 1 à 𝑛 faire
𝑥𝑖𝑘 ← 𝑥𝑖0
Itérations pour s’approcher de 𝑥 ∗
tant que 𝐴𝑥 𝑘 − 𝑏 >𝜀 faire
pour 𝑖 = 1 à 𝑛 faire
𝑏𝑖 −σ𝑗=1,𝑗≠𝑖 𝑎𝑖𝑗 𝑥𝑗𝑘
𝑥𝑖𝑘+1 ← 𝑎𝑖𝑖
pour 𝑖 = 1 à 𝑛 faire
𝑥𝑖𝑘 ← 𝑥𝑖𝑘+1
Fin
1 - Méthode de Jacobi
Algorithme
Données : 𝐴, 𝑏, 𝑥 0 , 𝑛 , 𝜀 , max_it
Début pour 𝑖 = 1 à 𝑛 faire
𝑥𝑖𝑘 ← 𝑥𝑖0
𝑁𝑏 ← 0
tant que 𝐴𝑥 𝑘 − 𝑏 > 𝜀 𝑒𝑡 𝑁𝑏 < max_it faire
𝑁𝑏 ← 𝑁𝑏 + 1
pour 𝑖 = 1 à 𝑛 faire
𝑏𝑖 −σ𝑗=1,𝑗≠𝑖 𝑎𝑖𝑗 𝑥𝑗𝑘
𝑥𝑖𝑘+1 ← 𝑎𝑖𝑖
pour 𝑖 = 1 à 𝑛 faire
𝑥𝑖𝑘 ← 𝑥𝑖𝑘+1
Fin
1 - Méthode de Jacobi
1 - Méthode de Jacobi
Décomposition de 𝐴
𝐴=𝑀−𝑁
𝑀 = 𝐷𝑔
𝑁 = −𝐸 − 𝐹
et on calcule la suite:
𝑥 𝑘+1 = 𝑀−1 𝑁 𝑥 𝑘 + 𝑀−1 𝑏
Définition 04
1 - Méthode de Jacobi
Propriété 03
𝑥 𝑘+1 = 𝑀−1 𝑁 𝑥 𝑘 + 𝑀−1 𝑏
• 𝜌(𝐽) < 1
En pratique, on cherche des matrices à diagonale strictement dominante ∀𝑖 ∶ 𝑎𝑖𝑖 > σ𝑖≠𝑗 𝑎𝑖𝑗
1 - Méthode de Jacobi
Théorème 04
1 - Méthode de Jacobi
Théorème 05
Données : 𝐴, 𝑏, 𝑥 0 , 𝑛 , 𝜀 , max_it
Début pour 𝑖 = 1 à 𝑛 faire
𝑥𝑖∗ ← 𝑥𝑖0
𝑁𝑏 ← 0
tant que 𝐴𝑥 𝑘 − 𝑏 > 𝜀 𝑒𝑡 𝑁𝑏 < max_it faire
𝑁𝑏 ← 𝑁𝑏 + 1
pour 𝑖 = 1 à 𝑛 faire
𝑏𝑏𝑖 −σ− σ 𝑎𝑖𝑗 𝑥𝑗𝑘𝑎 𝑥𝑘+1 𝑘
− σ 𝑎 𝑥 𝑘 𝑘
𝑘+1
𝑥𝑥𝑖𝑘+1
𝑘+1 ← 𝑖𝑏 𝑖 − σ
𝑗=1,𝑗≠𝑖
𝑗=1,𝑗<𝑖
𝑗=1,𝑗<𝑖 𝑖𝑗 𝑗𝑎 𝑖𝑗 𝑥 𝑗 − σ 𝑗=1,𝑗>𝑖 𝑖𝑗 𝑥𝑗
𝑗=1,𝑗>𝑖 𝑎
𝑖𝑗 𝑗
𝑥𝑖𝑖 ← ← 𝑎𝑖𝑖
𝑎𝑎𝑖𝑖𝑖𝑖
pour 𝑖 = 1 à 𝑛 faire
Fin 𝑥𝑖𝑘 ← 𝑥𝑖𝑘+1
2 - Méthode Gauss-Seidel
Décomposition de 𝐴
𝐴=𝑀−𝑁
𝑀 = 𝐷𝑔 + 𝐸
𝑁 = −𝐹
et on calcule la suite:
𝑥 𝑘+1 = 𝑀−1 𝑁 𝑥 𝑘 + 𝑀−1 𝑏
Définition 05
2 - Méthode Gauss-Seidel
Propriété 04
𝑥 𝑘+1 = 𝑀−1 𝑁 𝑥 𝑘 + 𝑀−1 𝑏
𝐺𝑆 = 𝐷𝑔 + 𝐸 −1 −𝐹 = 𝑀−1 𝑁
La suite 𝑥 𝑘 converge ssi :
• 𝜌(𝐺𝑆) < 1
2 - Méthode Gauss-Seidel
Théorème 06
2 - Méthode Gauss-Seidel
Théorème 07
Applications 01
Exercice 1
5 2 −1 6
Soit le système 𝐴𝑋 = 𝑏 𝐴= 1 6 −3 𝑏= 4
2 1 4 7
0
On prend : 𝑋0 = 0 max _𝑖𝑡 = 4
0
Applications 01
Exercice 2
−2 0 10 7
Soit le système 𝐴𝑋 = 𝑏 𝐴 = 10 −1 0 𝑏= 9
−1 10 −2 10
0
On prend : 𝑋0 = 0 max _𝑖𝑡 = 3
0
Applications 01
Exercice 3
3 −1 0
Soit la matrice 𝐴 = −1 3 −1
0 −1 3
Applications 01
Exercice 4
2 −1 0 1
Soit la matrice 𝐴 = 0 −1 2 𝑏= 1
−1 2 −1 0
𝜔
𝑋𝑖 𝑘+1 = 1 − 𝜔 𝑋𝑖 𝑘 + (𝑏 − 𝑎𝑖𝑗 𝑥𝑗 )
𝑎𝑖𝑖 𝑖
𝑗≠𝑖
𝑖−1 𝑛
𝜔
𝑋𝑖 𝑘+1 = 1 − 𝜔 𝑋𝑖 𝑘 + (𝑏 − 𝑎𝑖𝑗 𝑥𝑗 − 𝑎𝑖𝑗 𝑥𝑗 )
𝑎𝑖𝑖 𝑖
𝑗=1 𝑗=𝑖+1
0<𝜔<2
Exemple 06
𝐴𝑥 = 𝑏
3 −1 1 𝑥1 −1
𝐴 = −1 3 −1 𝑥 = 𝑥2 𝑏= 7
1 −1 3 𝑥3 −7
0
𝜔 = 1,25 𝑥0 = 0
0
3𝑥1 − 𝑥2 + 𝑥3 = −1
−𝑥1 + 3𝑥2 − 𝑥3 = 7
𝑥1 − 𝑥2 + 3𝑥3 = −7
Exemple 06
𝑘+1 𝑘
1 𝑘 𝑘
𝑥1 = 1 − 𝜔 𝑥1 + 𝜔. (𝑥2 − 𝑥3 − 1)
3
𝑘+1 𝑘 1 𝑘+1 𝑘
𝑥2 = 1 − 𝜔 𝑥2 + 𝜔. (𝑥1 + 𝑥3 + 7)
3
𝑘+1 𝑘 1 𝑘+1 𝑘+1
𝑥3 = 1 − 𝜔 𝑥3 + 𝜔. (−𝑥1 + 𝑥2 − 7)
3
𝐶𝑎𝑙𝑐𝑢𝑙𝑒𝑟 𝑥 1 , 𝑥 2 , 𝑥 3
3𝑥1 − 𝑥2 + 𝑥3 = −1
−𝑥1 + 3𝑥2 − 𝑥3 = 7
𝑥1 − 𝑥2 + 3𝑥3 = −7
Exercice 5
𝑓 𝑥, 𝑦 = 𝑥 2 + 2𝑥 + 𝑦 2 + 4
𝑥0 = 2
On considère le point de départ: 𝑋0 = 0
𝑦 =1
On calcule le gradient 𝜕𝑓 𝜕𝑓
= 2𝑥 + 2 = 2𝑦
𝜕𝑥 𝜕𝑦
En 𝑋 0 : 𝜕𝑓 𝜕𝑓
=6 =1 ∇𝑓 = 6𝑖 + 2𝑗
𝜕𝑥 𝜕𝑦
𝑘+1 𝑘
1 𝑓 𝑥, 𝑦 = 𝑥 2 + 2𝑥 + 𝑦 2 + 4
𝑋 = 𝑋 + −ℎ ∇𝑓Ԧ
2
𝑘+1 𝑘
2 6 𝑘+1
𝑋 = + ℎ
1 2 𝑓 𝑋Ԧ = (2 + 6ℎ)2 +2(2 + 6ℎ) + (1 + 2ℎ)2 +4
𝑘+1
2−1+ 6ℎ 𝑔 ℎ = (2 + 6ℎ)2 +2(2 + 6ℎ) + (1 + 2ℎ)2 +4
𝑋 =
1 0+ 2ℎ
𝑔𝑚𝑖𝑛 𝜕𝑔 1
=0 ℎ∗ =−
𝜕ℎ 2
En 𝑋 0 : 𝜕𝑓 𝜕𝑓
=6 =1 ∇𝑓 = 6𝑖 + 2𝑗
𝜕𝑥 𝜕𝑦
𝑥0 = 2
𝑋0 = 0 𝑓 𝑋 0 = 13
𝑦 =1
1
𝑥1 = 2 + 6 × (− )
2 −1
𝑋1 = = 𝑓 𝑋1 = 3
1
1 0
𝑦 = 1 + 2 × (− )
2
−1
Le nouveau point de départ: 𝑋1 =
0
Le gradient en 𝑋1 :
𝜕𝑓 𝜕𝑓
= 2𝑥 + 2 = 0 = 2𝑦 = 0
𝜕𝑥 𝜕𝑦
∇𝑓 = 0𝑖 + 0𝑗
Exercice 5
𝑓 𝑥, 𝑦 = 3𝑥 2 − 2𝑥𝑦 + 𝑦 2 − 8𝑦
𝑥0 = 0
En considérant le point de départ: 𝑋0 = 0
𝑦 =0
- Installer python
def SOR(A,b,maxIt,eps,x0,omega):
D=np.diag(np.diag(A))
M=np.dot((1/omega),D)+np.tril(A,-1) Application: exercice 6
N=M-A
r=np.dot(A,x0)-b 3 −1 1 −1 0
x=x0 𝐴 = −1 3 −1 𝑏= 7 𝑥0 = 0
i=0 1 −1 3 −7 0
err=1+eps
res=[] 𝜔 = 1,25
while((i<maxIt) and (la.norm(r)>=eps)):
x=np.dot(np.dot((la.inv(M)),N),x)+np.dot((la.inv(M)),b)
A=np.array([[2,0,0],[4,5,0],[7,8,9]])
r=np.dot(A,x)-b
x0=np.array([[1],[1],[1]])
err = la.norm(r,2)
b=np.array([[20],[8],[7]])
res.append(err)
print(SOR(A,b,3,10**(-3),x0,1.25))
i=i+1
return x
Exercice 6