Vous êtes sur la page 1sur 7

Simulation numérique en réservoir engineering 2020-2021

CHAPITRE II : Résolution des systèmes linéaires par


les méthodes itératives

On a vu que les méthodes directes donnent la solution exacte du système


d’équations linéaires, cependant elles restent gourmandes en mémoire. Dans ce
chapitre on va introduire les méthodes itératives ou indirectes qui donnent une
solution approximative du système d’équations linéaires. Ces méthodes sont très
faciles à mettre en œuvre et à programmer, elles ne consomment pas la mémoire et
donnent des résultats autant précis que l’on veut.

II.1.Méthode de Jacobi :

Responsable de module : Dr. Salim GAREH


Simulation numérique en réservoir engineering 2020-2021

Exemple 01:

Responsable de module : Dr. Salim GAREH


Simulation numérique en réservoir engineering 2020-2021

II.2.Méthode de Gauss-Seidel:

Responsable de module : Dr. Salim GAREH


Simulation numérique en réservoir engineering 2020-2021

Exemple 02:
Par la méthode de Gauss-Seidel résoudre le système d’équations suivantes :

𝟔 −𝟐 𝟐 𝒙𝟏 𝟎 𝟏
( −𝟐 𝟓 𝟎 ) (𝒙𝟐 ) = (𝟐𝟑), avec vecteur initial 𝒙(𝟎) = (𝟎) , erreur 𝜺 = 𝟏𝟎−𝟐
𝟐 𝟎 𝟕 𝒙𝟑 𝟏𝟔 𝟎

On peut écrire aussi

𝟔𝒙𝟏 − 𝟐𝒙𝟐 + 𝟐𝒙𝟑 = 𝟎 (𝟏)


{ −𝟐𝒙 𝟏 + 𝟓𝒙𝟐 + 𝟎𝒙𝟑 = 𝟐𝟑 (𝟐)
𝟐𝒙𝟏 + 𝟎𝒙𝟐 + 𝟕𝒙𝟑 = 𝟏𝟔 (𝟑)

Et aussi

𝒙𝟏 = (𝟐𝒙𝟐 − 𝟐𝒙𝟑 )/𝟔


{ 𝒙𝟐 = (𝟐𝟑 + 𝟐𝒙𝟏 )/𝟓
𝒙𝟑 = (𝟏𝟔 − 𝟐𝒙𝟏 )/𝟕

On peut écrire le dernier système avec l’indice d’itération de Gauss-Seidel :

𝒙𝟏 (𝒌+𝟏) = (𝟐𝒙𝟐 (𝒌) − 𝟐𝒙𝟑 (𝒌) )/𝟔


{ 𝒙𝟐 (𝒌+𝟏) = (𝟐𝟑 + 𝟐𝒙𝟏 (𝒌+𝟏) )/𝟓
𝒙𝟑 (𝒌+𝟏) = (𝟏𝟔 − 𝟐𝒙𝟏 (𝒌+𝟏) )/𝟕

On simplifier le système

𝟏
𝒙𝟏 (𝒌+𝟏) = (𝒙 (𝒌) − 𝒙𝟑 (𝒌) )
𝟑 𝟐
𝟏
𝒙𝟐 (𝒌+𝟏) = (𝟐𝟑 + 𝟐𝒙𝟏 (𝒌+𝟏) )
𝟓
(𝒌+𝟏) 𝟐
{ 𝒙 𝟑 = (𝟖 − 𝒙𝟏 (𝒌+𝟏) )
𝟕

Pour k=0 :

𝟏 𝟏
𝒙𝟏 (𝟏) = (𝒙𝟐 (𝟎) − 𝒙𝟑 (𝟎) ) = (𝟎 − 𝟎) = 𝟎
𝟑 𝟑
𝟏 𝟏
𝒙𝟐 (𝟏) = (𝟐𝟑 + 𝟐𝒙𝟏 (𝟏) ) = (𝟐𝟑 + 𝟐(𝟎)) = 𝟒. 𝟔
𝟓 𝟓
(𝟏) 𝟐 𝟐
{𝒙𝟑 = (𝟖 − 𝒙𝟏 (𝟏) ) = (𝟖 − (𝟎)) = 𝟐. 𝟐𝟖𝟓𝟕𝟏
𝟕 𝟕

Responsable de module : Dr. Salim GAREH


Simulation numérique en réservoir engineering 2020-2021

Donc

𝟎
𝒙(𝟏) = ( 𝟒. 𝟔 )
𝟐. 𝟐𝟖𝟓𝟕𝟏

On applique le teste de convergence |𝒙(𝒌+𝟏) − 𝒙(𝒌) | ≤ 𝜺

𝟎 𝟏 −𝟏 𝟏
|𝒙(𝟏) − 𝒙(𝟎) | = |( 𝟒. 𝟔 ) − (𝟎)| = |( 𝟒. 𝟔 )| = ( 𝟒. 𝟔 ) > 𝜺
𝟐. 𝟐𝟖𝟓𝟕𝟏 𝟎 𝟐. 𝟐𝟖𝟓𝟕𝟏 𝟐. 𝟐𝟖𝟓𝟕𝟏

Donc il faut calculer 𝑥 (2) ,

Pour k=1 :

𝟏 𝟏
𝒙𝟏 (𝟐) = (𝒙 (𝟏) − 𝒙𝟑 (𝟏) ) = (𝟒. 𝟔 − 𝟐. 𝟐𝟖𝟓𝟕𝟏) = 𝟎. 𝟕𝟕𝟏𝟒𝟑
𝟑 𝟐 𝟑
𝟏 𝟏
𝒙𝟐 (𝟐) = (𝟐𝟑 + 𝟐𝒙𝟏 (𝟐) ) = (𝟐𝟑 + 𝟐(𝟎. 𝟕𝟕𝟏𝟒𝟑)) = 𝟒. 𝟗𝟎𝟖𝟓𝟕
𝟓 𝟓
(𝟐) 𝟐 (𝟐) 𝟐
(𝟖
{ 𝒙𝟑 = 𝟕 (𝟖 − 𝒙𝟏 ) = 𝟕 − (𝟎. 𝟕𝟕𝟏𝟒𝟑)) = 𝟐. 𝟎𝟔𝟓𝟑𝟏

Donc

𝟎. 𝟕𝟕𝟏𝟒𝟑
𝒙(𝟐) = (𝟒. 𝟗𝟎𝟖𝟓𝟕)
𝟐. 𝟎𝟔𝟓𝟑𝟏

On applique le teste de convergence |𝒙(𝒌+𝟏) − 𝒙(𝒌) | ≤ 𝜺

𝟎. 𝟕𝟕𝟏𝟒𝟑 𝟎 𝟎. 𝟕𝟕𝟏𝟒𝟑 𝟎. 𝟕𝟕𝟏𝟒𝟑


|𝒙(𝟐) − 𝒙(𝟏) | = |(𝟒. 𝟗𝟎𝟖𝟓𝟕) − ( 𝟒. 𝟔 )| = |(𝟎. 𝟑𝟎𝟖𝟓𝟕)| = (𝟎. 𝟑𝟎𝟖𝟓𝟕) > 𝜺
𝟐. 𝟎𝟔𝟓𝟑𝟏 𝟐. 𝟐𝟖𝟓𝟕𝟏 𝟎. 𝟐𝟐𝟎𝟒 𝟎. 𝟐𝟐𝟎𝟒

On remarque que l’erreur reste encore plus grand que 𝜀, donc il faut faire les
itérations jusqu'à réaliser la condition de la convergence.

On écrit les reste calcules dans le tableau suivant :

Responsable de module : Dr. Salim GAREH


Simulation numérique en réservoir engineering 2020-2021

k X1 X2 X3

0 1 0 0

1 0 4.6 2.28

2 0.7714 4.9085 2.065

3 0.9477 4.9791 2.0149

4 0.9880 4.9952 2.0034

5 0.9972 4.9989 2.0004

6 0.9993 4.9999 2.0001

On applique le teste de convergence pour la sixième itération |𝒙(𝒌+𝟏) − 𝒙(𝒌) | ≤ 𝜺

𝟎. 𝟗𝟗𝟗𝟑 𝟎. 𝟗𝟗𝟕𝟐 𝟎. 𝟎𝟎𝟐𝟏 𝟎. 𝟎𝟎𝟐𝟏


(𝟔) (𝟓)
|𝒙 −𝒙 | = |(𝟒. 𝟗𝟗𝟗𝟗) − (𝟒. 𝟗𝟗𝟖𝟗)| = |( 𝟎. 𝟎𝟎𝟏 )| = ( 𝟎. 𝟎𝟎𝟏 ) ≤ 𝜺
𝟐. 𝟎𝟎𝟎𝟏 𝟐. 𝟎𝟎𝟎𝟒 −𝟎. 𝟎𝟎𝟎𝟑 𝟎. 𝟎𝟎𝟎𝟑

𝒂𝒗𝒆𝒄 𝜺 = 𝟏𝟎−𝟐

𝟎. 𝟗𝟗𝟗𝟑
(𝟔)
Donc le teste de convergence être réalisé, alors la solution est 𝒙 = 𝒙 = (𝟒. 𝟗𝟗𝟗𝟗)
𝟐. 𝟎𝟎𝟎𝟏

II.3.Méthode de Relaxation SOR:


Nous présentons dans cette section une méthode d’itération qui ales memes avantages que
la méthode de Gauss-Seidel mais quiconverge plus rapidement.Pour cela introduisons le
paramètre w≠0 et posons :

̅(𝒌+𝟏) = 𝒙(𝒌) + 𝒘 ∗ (𝒙(𝒌+𝟏) − 𝒙(𝒌) )


𝒙

Ou : 𝒙(𝒌+𝟏)est vecteur estimé par la méthode de Gauss-Seidel.

Si, w=1, on retourne la méthode de Gauss-Seidel.

Si, w>1, on détermine la méthode de sur-relaxation.

Si, w<1, on détermine la méthode de sous-relaxation.

Si on écrit la formule de Gauss-Seidel comme suivant :

Responsable de module : Dr. Salim GAREH


Simulation numérique en réservoir engineering 2020-2021

(𝒌+𝟏)
𝒃𝒊 − ∑𝒊−𝟏
𝒋=𝟏 𝒂𝒊𝒋 𝒙𝒋
(𝒌+𝟏)
− ∑𝒏𝒋=𝒊+𝟏 𝒂𝒊𝒋 𝒙𝒋 (𝒌)
𝒙𝒊 = , 𝒂𝒗𝒆𝒄 𝒊 = 𝟏: 𝒏
𝒂𝒊𝒊

Donc on remplace la dernière équation (Gauss-Seidel) dans l’équation de Relaxation

(𝒌+𝟏) (𝒌)
𝒃𝒊 − ∑𝒊−𝟏
𝒋=𝟏 𝒂𝒊𝒋 𝒙𝒋
(𝒌+𝟏)
− ∑𝒏𝒋=𝒊+𝟏 𝒂𝒊𝒋 𝒙𝒋 (𝒌)
̅𝒊
𝒙 = 𝒙𝒊 +𝒘( − 𝒙𝒊 (𝒌) )
𝒂𝒊𝒊

Et aussi

𝒊−𝟏 𝒏
(𝒌+𝟏) (𝒌) (𝒌+𝟏)
𝒙̅𝒊 = 𝒙𝒊 + 𝒘 (𝒃𝒊 − ∑ 𝒂𝒊𝒋 𝒙𝒋 − ∑ 𝒂𝒊𝒋 𝒙𝒋 (𝒌) − 𝒂𝒊𝒊 𝒙𝒊 (𝒌) )
𝒋=𝟏 𝒋=𝒊+𝟏

Finalement l’équation de relaxation est comme suivant :


𝒊−𝟏 𝒏
(𝒌+𝟏) (𝒌) 𝒘
𝒙̅𝒊 = 𝒙𝒊 + (𝒃 − ∑ 𝒂𝒊𝒋 𝒙𝒋 (𝒌+𝟏) − ∑ 𝒂𝒊𝒋 𝒙𝒋 (𝒌) )
𝒂𝒊𝒊 𝒊
𝒋=𝟏 𝒋=𝟏

Responsable de module : Dr. Salim GAREH