Vous êtes sur la page 1sur 7

Annexe I- Outils pour la modélisation

III-1- La régression
La régression (ajustement) est une méthode statistique permettant d’analyser la relation d'une variable par
rapport à une ou plusieurs autres. À partir d'un ensemble de valeurs expérimentales, on cherche à calculer la
courbe qui reproduit le mieux les variations de la grandeur à étudier, c'est-à-dire celle qui s'ajuste "au mieux"
au nuage de points. La régression est donc l'opération qui consiste à ajuster une courbe mathématique "le
plus près possible" d'un certain nombre de points observés.
Une des méthodes les plus employées pour obtenir un modèle estimé est celle des « moindres carrés ».

a) Principes des moindres carrés


Dans une analyse par moindres carrés, on minimise la somme des carrés des différences entre les valeurs
expérimentales et les valeurs correspondantes prédites par le modèle mathématique 𝑆 = ∑𝑁 ̂𝑖 )2
𝑖=1(𝑦𝑖 − 𝑦
Où 𝑦𝑖 est le résultat de la mesure au point 𝑥𝑖 et 𝑦̂𝑖 la valeur du modèle en ce point.

b) Coefficient de corrélation
On peut montrer que ∑𝑁 ̅)2 = ∑𝑁
𝑖=1(𝑦𝑖 − 𝑦 𝑖=1(𝑦𝑖 − 𝑦
̂)
𝑖
2
+ ∑𝑁 ̂𝑖 − 𝑦̅)2 avec ∑𝑁
𝑖=1(𝑦 ̅)2 la variation totale,
𝑖=1(𝑦𝑖 − 𝑦

∑𝑁
𝑖=1(𝑦𝑖 − 𝑦
̂)
𝑖
2
la variation inexpliquée et ∑𝑁 ̂𝑖 − 𝑦̅)2 la variation expliquée.
𝑖=1(𝑦

Le coefficient de détermination est le rapport de la variation expliquée sur la variation totale :


∑𝑁 ̂𝑖 − 𝑦̅)2
𝑖=1(𝑦
2
𝑟 = 𝑁
∑𝑖=1(𝑦𝑖 − 𝑦̅)2
et 𝑟 est le coefficient de corrélation.
𝑟 représente donc la part relative de la variabilité totale de 𝑦 qui est expliquée par 𝑥. Il est compris entre -1 et
1 (0 ≤ |𝑟| ≤ 1). S’il est proche de 1 il y a une bonne corrélation, s’il est nul il n’y a pas de corrélation et s’il est
négatif alors 𝑦 et 𝑥 ne varient pas dans le même sens.

c) Régression linéaire
Lorsque la courbe représentant les résultats des mesures a une allure proche d’une droite (sur une échelle
linéaire), on utilise le modèle linéaire à condition qu’il n’y ait pas d’erreurs sur les 𝑥𝑖 (ou négligeables) et que
la dispersion des 𝑦𝑖 est homogène et ne dépend pas des 𝑥𝑖 .
Soit 𝑦̂𝑖 = 𝑎0 + 𝑎1 𝑥i l’équation de la droite optimale. Cette droite doit remplir la condition des moindres
carrés.
𝑁 𝑁 𝑁
2
𝑆 = ∑(𝑦𝑖 − 𝑦̂𝑖 ) = ∑[𝑦𝑖 − (𝑎0 + 𝑎1 𝑥i )]2 = ∑[𝑦𝑖 2 − 2𝑦𝑖 (𝑎0 + 𝑎1 𝑥i ) + 𝑎12 𝑥𝑖2 + 𝑎02 + 2𝑎0 𝑎1 𝑥𝑖 ]
𝑖=1 𝑖=1 𝑖=1
𝑁 𝑁 𝑁 𝑁 𝑁
2
𝑆 = ∑ 𝑦𝑖 − 2𝑎0 ∑ 𝑦𝑖 − 2 𝑎1 ∑ 𝑥𝑖 𝑦𝑖 + 𝑁𝑎02 + 𝑎12 ∑ 𝑥𝑖2 + 2𝑎0 𝑎1 ∑ 𝑥𝑖
𝑖=1 𝑖=1 𝑖=1 𝑖=1 𝑖=1
𝑁 𝑁 𝑁 𝑁
𝑑𝑆
= −2 ∑ 𝑦𝑖 + 2𝑁 𝑎0 + 2𝑎1 ∑ 𝑥𝑖 = 0 𝑎0 𝑁 + 𝑎1 ∑ 𝑥𝑖 = ∑ 𝑦𝑖
𝑑𝑎0
𝑖=1 𝑖=1 𝑖=1 𝑖=1
𝑁 𝑁 𝑁 ⇒ 𝑁 𝑁 𝑁
𝑑𝑆
= −2 ∑ 𝑥𝑖 𝑦𝑖 + 2𝑎0 ∑ 𝑥𝑖 + 2𝑎1 ∑ 𝑥𝑖2 = 0 𝑎0 ∑ 𝑥𝑖 + 𝑎1 ∑ 𝑥𝑖2 = ∑ 𝑥𝑖 𝑦𝑖
{ 𝑑𝑎1 {
𝑖=1 𝑖=1 𝑖=1 𝑖=1 𝑖=1 𝑖=1

∑𝑁 𝑁 2 𝑁 𝑁
𝑖=1 𝑦𝑖 . ∑𝑖=1 𝑥𝑖 − ∑𝑖=1 𝑥𝑖 𝑦𝑖 . ∑𝑖=1 𝑥𝑖 𝑁 ∑𝑁 𝑁 𝑁
𝑖=1 𝑥𝑖 𝑦𝑖 − ∑𝑖=1 𝑥𝑖 ∑𝑖=1 𝑦𝑖
𝑎0 = ; 𝑎1 =
𝑁 ∑𝑁 2 𝑁
𝑖=1 𝑥𝑖 − (∑𝑖=1 𝑥𝑖 )
2 𝑁 ∑𝑁 2 𝑁
𝑖=1 𝑥𝑖 − (∑𝑖=1 𝑥𝑖 )
2

1
d) Relation logarithmique, exponentielle ou puissance
On peut mettre en évidence un lien logarithmique, exponentielle ou de puissance entre y et x en traçant la
courbe représentative des résultats sur une échelle semi log (log en abscisses pour le lien logarithmique ou en
ordonnées pour le lien exponentielle) ou sur une échelle log log (pour le lien puissance).
On obtient ainsi :
• Logarithmique : 𝑦 = 𝑎 log(𝑥) + 𝑏 ⇒ 𝑦 = 𝑎𝑋 + 𝑏
• Exponentielle : 𝑦 = 𝑎𝑏 𝑥 ⇒ log(𝑦) = 𝑥 log(𝑏) + log(𝑎) ⇒ 𝑌 = 𝐴𝑥 + 𝐵
• Puissance : 𝑦 = 𝑎𝑥 𝑏 ⇒ log(𝑦) = 𝑏 log(𝑥) + log(𝑎) ⇒ 𝑌 = 𝐴𝑋 + 𝐵
• On peut ensuite utiliser les mêmes résultats que pour la régression linéaire.

III-2- L’interpolation
L’interpolation permet de construire une courbe ou une fonction à partir de la donnée d'un nombre fini de
points ou de valeurs. L'interpolation doit être distinguée de la régression qui consiste à chercher la fonction la
plus proche possible, selon certains critères, d'une fonction donnée. Dans le cas de l'interpolation, il est
imposé de passer exactement par les points donnés initialement.

a) Interpolation linéaire par morceaux


Dans le cas d'une interpolation linéaire, on construit une courbe
qui est une succession de segments. Entre deux points P1 et P2 de
coordonnées respectives (𝑥1 , 𝑦1 ) et (𝑥2 , 𝑦2 ) l’équation de la droite
𝑦2 −𝑦1
est donnée par 𝑦 =∝ (𝑥 − 𝑥1 ) + 𝑦1 avec ∝=
𝑥2 −𝑥1
Exemple : x 2 t 3
Y 2,3 g(t) 3,1

𝑔(𝑡) est la fonction affine appelée interpolant ou fonction d'interpolation 𝑔(𝑡) = 𝑐0 + 𝑐1 𝑡 dont il faut
déterminer les coefficients 𝒄𝟎 et 𝒄𝟏 . L'interpolant doit passer par les deux points donnés : 𝑔(2) = 2,3 et
𝑔(3) = 3,1
Les conditions précédentes constituent un système d'équations linéaires que nous réécrivons sous la forme
1 2 c0 2.3 c0 0.7
matricielle ( ) (c ) = ( ) => (c ) = ( )
1 3 1 3.1 1 0.8
A partir des fonctions de base b0(t) = 1 et b1(t) = t on obtient la fonction d'interpolation qui est une
combinaison linéaire des fonctions de base : 𝑔(𝑡) = 𝑐0 𝑏0 (𝑡) + 𝑐1 𝑏1 (𝑡) = 0.7 + 0.8𝑡

b) Interpolation cubique
Comme son nom l'indique, on utilise ici une équation cubique pour modéliser localement la courbe. Quatre
points sont nécessaires pour évaluer la fonction qui remplace la courbe discrète. Dans ce cas, le polynôme du
troisième degré doit passer par les quatre points donnés.

L'interpolant est le polynôme g(t) de degré ≤ 3 :


Il doit passer par les quatre points donnés :

2
Les conditions précédentes constituent un système d'équations linéaires que l'on réécrit sous la forme
matricielle

Les fonctions suivantes sont appelées fonctions de base :


𝑏0 (𝑡) = 1 ; 𝑏1 (𝑡) = 𝑡 ; 𝑏2 (𝑡) = 𝑡 2 ; 𝑏3 (𝑡) = 𝑡 3
La fonction d’interpolation est une combinaison linéaire des
fonctions de base :
𝑔(𝑡) = 𝑐0 𝑏0 (𝑡) + 𝑐1 𝑏1 (𝑡) + 𝑐2 𝑏2 (𝑡) + 𝑐3 𝑏3 (𝑡) = 3,4 − 2,95𝑡 + 1,7𝑡 2 − 0,25𝑡 3

c) Interpolation polynomiale
Une interpolation polynomiale consiste à représenter une fonction f(x), dont on connait un certain nombre de
points, par un polynôme de degré aussi grand que nécessaire. On impose que la courbe du polynôme passe
par les points considérés.
Se pose alors la question du choix des points afin d’éviter de faire trop de calcules. Dans un premier temps, on
peut prendre des points régulièrement répartis dans l'intervalle. Cependant, cela peut donner des « effets de
bord » (le polynôme représente bien au milieu de l'intervalle, mais a un comportement différent aux bords
bien que passant par les points), et pose des problèmes dans les endroits où les variations de pente sont
importantes.
Pour éviter les effets de bord, on utilise des points répartis selon une fonction sinusoïdale : il y a plus de points
aux bords qu'au centre.
On peut aussi utiliser le « remaillage automatique » : pour chaque intervalle, on calcule la différence entre le
polynôme et la fonction au point médian, et si cet écart est supérieur à un seuil de tolérance, on rajoute un
point au milieu de l'intervalle.
La représentation la plus simple du polynôme se fait dans la base canonique {1, 𝑥, 𝑥 2 , … . , 𝑥 𝑛 } tel que
𝑝(𝑥) = ∑𝑛𝑘=1 𝑎𝑘 𝑥 𝑘 . Ce qui revient à déterminer les coefficients 𝑎𝑘 tels que 𝑝(𝑥𝑖 ) = 𝑓(𝑥𝑖 ) = 𝑦𝑖
avec 𝑖 = 1. . 𝑛 + 1. Ce qui est une mauvaise solution car il faut résoudre un système plein.

Base de Lagrange :
Pour 𝑛 + 1 points (𝑥𝑖 , 𝑦𝑖 ) distincts, il existe un polynôme unique tel que 𝑝(𝑥𝑖 ) = 𝑦𝑖 pour 𝑖 = 0. . 𝑛 avec
(𝑥−𝑥 )
𝑝(𝑥) = ∑𝑛𝑖=0 𝑦𝑖 𝐿𝑖 (𝑥) où 𝐿𝑖 (𝑥) = ∏𝑛𝑗=0 (𝑥 −𝑥𝑗 )
𝑖 𝑗
𝑗≠𝑖
Propriétés : 𝐿𝑖 (𝑥𝑖 ) = 1 et 𝐿𝑖 (𝑥𝑗 ) = 0 𝑠𝑖 𝑗 ≠ 𝑖
Ainsi les coefficients du polynôme d’interpolation deviennent accessibles. L’inconvénient est qu’il est
nécessaire de recalculer tous les éléments de la base si on rajoute un point d’interpolation.
Exemple :
Connaissant trois points (0 , 1) , (2 , 5) , (4 , 17), les polynômes de Lagrange associés sont :
(𝑥−2)(𝑥−4) 𝑥(𝑥−4) 𝑥(𝑥−2)
𝐿0 (𝑥) = 𝐿1 (𝑥) = 𝐿2 (𝑥) =
8 −4 8

3
Le polynôme d’interpolation devient alors :
𝑝(𝑥) = 𝐿0 (𝑥) + 5𝐿1 (𝑥) + 17𝐿2 (𝑥) = 𝑥 2 + 1

III-3- Les systèmes creux


Les systèmes linéaires creux apparaissent dans nombre de problèmes de grande taille liés par exemple aux
éléments finis ou à l’optimisation et sont au cœur de nombreux codes de simulation numérique. La résolution
de ces types de systèmes est influencée par la puissance des processeurs et la taille mémoire disponible, ainsi
que par le choix des méthodes numériques.

a) Les méthodes directes


Exemple : Méthode de Gauss-Jordan
On utilise ici les pivots de Gauss pour transformer par élimination une matrice en une matrice diagonale.
Premier cas :
2𝑥1 − 𝑥2 = −4 2 −1 0 −4 1 −1/2 0 −2 1 0 −1/3 −2/3
{−𝑥1 + 2𝑥2 − 𝑥3 = 6 → (−1 2 −1| 6 ) → (0 3/2 −1| 4 ) → (0 1 −2/3| 8/3 )
−𝑥2 + 2𝑥3 = 3 0 −1 2 3 0 −1 2 3 0 0 4/3 17/3
système matrice augmentée
1 0 0 3/4 𝑥1 3/4
→ (0 1 0|33/6) → (𝑥2 ) = (33/6)
0 0 1 17/4 𝑥3 17/4
Deuxième cas :
1 2 3 1 2 3 1 2 3
(2 4 5) → (0 0 −1 ) → (0 −6 −12) →
7 8 9 0 −6 −12 0 0 −1
le deuxième pivot est nul

L’aspect le plus compliqué de l’élimination de Gauss-Jordan est certainement le remplissage selon lequel les
zéros de la matrice d’origine deviennent non-nuls dans le facteur.
Une implémentation efficace de la méthode directe pour les systèmes creux dépend largement de la structure
des données. Des outils mathématiques sont alors utilisés pour réordonner les coefficients de la matrice avec
une meilleure creusité afin de mieux contrôler la factorisation numérique.
Dans le cas des méthodes directes on tire parti de la structure de la matrice au détriment de l’espace
mémoire occupé qui croît rapidement avec la taille du problème.
En raison de leur robustesse, les approches directes sont des méthodes indiquées pour la résolution des
systèmes creux. Ces approches, bien que très performantes, utilisent souvent une quantité de mémoire
significative, qui peut souvent dépasser la mémoire disponible sur la plate-forme cible considérée.

b) Les méthodes itératives


Exemple : Gauss – Seidel
Pour résoudre le système A X = B on décompose la matrice A sous la forme A = D – L – U. Avec D la matrice
diagonale, - L la matrice triangulaire inférieur et - U la matrice triangulaire supérieure.
Ce qui donne D X = L X + U X + B d’où on définit la suite récurrente D X(k+1) = L X(k+1) + U X(k) + B

4
(𝑘+1) (𝑘+1) (𝑘)
on obtient alors les itérations ∀ 𝑖 = 1. . 𝑛 𝑎𝑖𝑖 𝑥𝑖 = − ∑𝑖−1
𝑗=1 𝑎𝑖𝑗 𝑥𝑗 − ∑𝑛𝑗=𝑖+1 𝑎𝑖𝑗 𝑥𝑗 + 𝑏𝑖
(𝑘+1) 1 (𝑘+1) (𝑘)
et finalement le calcul ∀ 𝑖 = 1. . 𝑛 𝑥𝑖 = (− ∑𝑖−1
𝑗=1 𝑎 𝑖𝑗 𝑥𝑗 − ∑𝑛𝑗=𝑖+1 𝑎𝑖𝑗 𝑥𝑗 + 𝑏𝑖 ) à partir d’un vecteur
𝑎𝑖𝑖
initial X(0).
On remarquera que cette méthode n’est définie que si les 𝑎𝑖𝑖 sont non nuls.
Convergence : * Si la matrice A est à diagonale strictement dominante la méthode de Gauss-Seidel converge
pour tout X(0).
* Si A est définie positive alors cette méthode converge pour tout X(0).
𝑅 (𝑘)
Critères d’arrêt : * Pour une précision exigée , on arrête les itérations lorsque ‖ ‖<𝜀
𝐵
où 𝑅 (𝑘) = 𝐵 − 𝐴𝑋 𝑘 est le résidu.
𝑥 (𝑘+1) −𝑥 𝑘
*| |<𝜀
𝑥 𝑘+1
Considérons le système :
12𝑥1 + 3𝑥2 − 5𝑥3 = 1 12 3 −5 𝑥1 1 |𝑎11 | = 12 ≥ |𝑎12 | + |𝑎13 | = |3| + |−5| = 8
𝑥
{ 𝑥1 + 5𝑥2 + 3𝑥3 = 28 → ( 1 5 3 ) ( 2 ) = (28) → { |𝑎22 | = 5 ≥ |𝑎21 | + |𝑎23 | = |1| + |3| = 4
3𝑥1 + 7𝑥2 + 13𝑥3 = 76 3 7 13 𝑥3 76 |𝑎33 | = 13 ≥ |𝑎31 | + |𝑎32 | = |3| + |7| = 10
1 − 3𝑥2 + 5𝑥3 1 − 3(0) + 5(1) 0,5 − 1
𝑥1 = = = 0,50000 |𝜖1 | = | | = 100%
12 12 0,5
𝑥1 1 28 − 𝑥1 − 3𝑥3 28 − (0,5) − 3(1) 4,9 − 0
𝑥
( 2 ) = (0) → 𝑥2 = = = 4,9000 → |𝜖2 | = | | = 100%
𝑥3 5 5 4,9
1
76 − 3𝑥1 − 7𝑥2 76 − 3(0,5) − 7(4,9) 3,0923 − 1
𝑥3 = = = 3,0923 |𝜖3 | = | | = 67,6%
{ 13 13 { 3,0923
Vecteur initial Première itération Erreur relative maximale de 100%

itération 𝑥1 𝜖1 % 𝑥2 𝜖2 % 𝑥3 𝜖3 %
1 0,50000 100,00 4,9000 100,00 3,0923 67,662
2 0,14679 240,61 3,7153 31,889 3,8118 18,876 𝑥1 1
𝑥
( 2 ) = (3)
3 0,74275 80,236 3,1644 17,408 3,9708 4,0042
𝑥3 4
4 0,94675 21,546 3,0281 4,4996 3,9971 0,65772 Solution exacte
5 0,99177 4,5391 3,0034 0,82499 4,0001 0,07438
6 0,99919 0,74307 3,0001 0,10856 4,0001 0,00101
Résultats après six itérations
Les méthodes itératives occupent moins d’espace mémoire car elles ne requièrent que des multiplications de
matrice (ou de la transposée) par un vecteur, des produits scalaires et des additions de vecteurs.
Généralement, les méthodes itératives sont plus simples à décrire. Par contre, le comportement numérique
des méthodes itératives est plus compliqué que celui des méthodes directes. Généralement elles convergent
au plus en N pas pour un système de NxN. Dans la pratique la convergence s’effectue en moins de N pas mais
à l’opposé, une perte de l’orthogonalité due aux erreurs d’arrondis peut empêcher la convergence. Cette
dernière dépend de l’homogénéité de la répartition du spectre de la matrice d’itération. Ce spectre va
fortement conditionner l’efficacité de la méthode.

c) Le pré-conditionnement
Un pré-conditionneur pour le système AX=b est une matrice M telle que la matrice M-1 A présente un meilleur
spectre que A. Une méthode itérative peut alors être appliquer au système (M-1A)X=M-1b. La convergence est
alors déterminée par le spectre de M-1 A.
Ce que l’on attend d’un bon pré-conditionneur c’est :
- sa facilité de calcul et de résolution
5
- une occupation mémoire ne dépassant pas celle de la matrice originale
- une meilleure convergence (i.e. un meilleur spectre) que la matrice originale

Résumé

d) Représentation de matrices creuses


Pour une matrice A d’ordre N, N étant grand, si le nombre d’éléments non nuls Nnz est très petit alors A est
dite creuse. Dans le cas contraire elle est dite dense.
Sans traitement particulier, les matrices issues de systèmes creux de grande taille seraient impraticables. Le
traitement consiste ici à éviter des opérations redondantes avec des éléments nuls et surtout à éviter de
devoir les conserver en mémoire.
Lorsqu’on exploite efficacement la structure creuse d’une matrice comportant Nnz éléments non nuls la
complexité des algorithmes de résolution des systèmes linéaires est O(Nnz) et ne fait pas intervenir l’ordre N
des matrices.
Par exemple la discrétisation du Laplacien à 5 points avec une grille de 64×64 nœuds conduit à une matrice d’ordre 4096
× 4096 avec 20224 éléments non nuls. Le tableau qui suit indique la mémoire requise pour conserver la matrice et le
temps nécessaire pour effectuer un produit et la solution d’un système linéaire lorsqu’on recourt à une technique sans
traitement et lorsqu’on exploite la structure creuse.
Plein Creux
Mémoire 128 Mbytes 0,25 Mbytes
𝐷𝑥 30 sec 0,2 sec
𝐷𝑥 = 𝑏 > 12 H 10 sec

Il existe plusieurs façons de stocker une matrice creuse. Généralement on enregistre les éléments non nuls associés à
leurs indices de lignes et de colonnes.

e) Structures de matrices creuses


✓ Structures régulières : La structure de la matrice creuse est dite régulière si tous les éléments non nuls
sont regroupés de telle manière qu’ils forment une zone limitée permettant de facilement les repérer. On
peut citer par exemple la matrice triangulaire et la matrice bande constante.
La compression d’une structure triangulaire par exemple, peut s’effectuer en utilisant le stockage MSR
(modified sparse row), qui consiste en un vecteur de réels A et un vecteur d’entiers JA. Les N premières
positions de A contiennent les éléments de la diagonale. La position N+1 n’est pas utilisée. Commençant à
partir de la position N+2, les éléments non nuls de la matrice sont stockés par ligne, en excluant les
éléments de la diagonale. A chaque élément A (k) correspond l’élément JA(k) qui est l’indice de la colonne
de A (k) dans la matrice. Les N+1 première positions dans JA contiennent les pointeurs sur le début de
chaque ligne dans A et JA.

6
✓ Structures irrégulières : Une structure est dite
irrégulière si ses éléments sont répartis de manière non
uniforme. On peut citer la matrice bande variable et la
matrice quelconque.
Pour une matrice creuse quelconque, il existe une
variété de modes de stockage, le plus simple étant le
COO (coordinate). Il est constitué de trois tableaux : un tableau A de réels, de taille Nnz contenant les
éléments non nuls de la matrice. Un tableau IA d’entiers contenant leurs indices de lignes et un tableau JA
d’entiers contenant leurs indices de colonnes.