Académique Documents
Professionnel Documents
Culture Documents
MASTER ETC
MASTER GEE
Modules
Méthodes Numériques et Matlab (ETC)
Méthodes Numériques et Optimisation (GEE)
2012-2013
Abdellatif Khamlichi
Sommaire
Chapitre1:
Les concepts rattachés au calcul numérique................................................................... 3
Chapitre 2:
Résolution numérique des équations non linéaires ........................................................ 13
Chapitre 3:
Interpolation et approximation........................................................................................ 21
Chapitre 4:
Résolution numérique des systèmes d'équations linéaires ........................................... 33
Chapitre 5:
Méthodes de calcul numérique des valeurs propres et des vecteurs propres .............. 44
Chapitre 6:
Programmation linéaire.................................................................................................... 49
Chapitre 7:
Equations différentielles aux dérivées partielles ............................................................ 53
1
Bibliographie
Louvain, 2005.
[8] J.C. Strikwerda "Finite difference schemes and partial differential equations",
Wadsworth & Brooks/ Cole, Mathematics Series, California 1989.
2
CHAPITRE 1:
Les concepts rattachés au calcul numérique
1. Introduction
L'objet de l'analyse numérique est l'application des mathématiques afin de développer des
algorithmes et des méthodes capables de construire des solutions numériques aux différents
problèmes rencontrés dans la pratique.
Très souvent les théorèmes d'existence permettent d'établir que certaines classes de problèmes
admettent des solutions mais ne donnent aucune information concernant comment calculer
effectivement la solution.
Dans d'autres cas des solutions analytiques existent mais ne peuvent pas être utilisées telles
qu'elles sont pour obtenir des résultats numériques.
Voici quelques exemples:
n
(1) comment résoudre le système linéaire ∑a x
j=1
ij j = bi i = 1, 2, n , où les a ij et b i sont des
réels donnés?
(2) comment évaluer e−746 ? (Matlab donne par exemple exp(−746) = 0 et
3
Méthode 1: Nous effectuons les calculs intermédiaires en retenant 4 chiffres significatifs;
tan(0.1250) = 0.1257 , sin(0.1250) = 0.1247 ; par soustraction il vient f (x) = 0.0010 qui est
un résultat à deux chiffres significatifs; une perte de précision est constatée.
L'exemple précédent montre qu'il est nécessaire d'envisager une reformulation mathématique
adéquate du problème afin de sauvegarder la précision des résultats. Autrement, des pertes de
précision accompagneront le résultat de tout calcul où interviennent par exemple des
soustractions.
Lorsqu'un algorithme est appliqué en pratique, il y a des considérations qui doivent être prises
en compte et qui dépassent le cadre mathématique ordinaire. Ces considérations
supplémentaires sont nécessaires à cause du fait que les opérations de calcul sont effectuées
sur un calculateur numérique automatique (ordinateur). Ce qui signifie que notre univers
mathématique est constitué seulement d'un sous ensemble fini de l'ensemble des nombres
rationnels Q . Cet ensemble est appelé espace des nombres représentés par la machine. Il a
plein de défauts: il ne contient pas par exemple la fraction 1/ 3 et il est instable vis à vis des
opérations arithmétiques.
Les nombres pouvant être pris en compte effectivement forment l'ensemble élargi des
nombres dits représentables sur la machine en considérant des approximations de ces derniers
par les nombres représentés. Il s'ensuit alors des erreurs d'arrondis. Par ailleurs, les opérations
ne sont pas effectuées en général de manière exacte et d'autres erreurs d'arrondis affectent les
résultats de calcul. Par conséquent les propriétés habituelles algébriques telles que par
exemple la commutativité et l'associativité ne peuvent plus être garanties de sorte que les
relations suivantes a(b / c) = b(a / c) = (ab) / c ne peuvent pas toujours avoir lieu.
4
3. Instabilités numériques et problèmes mal conditionnés
Il faut distinguer entre les difficultés propres associées à la résolution d'un problème donné et
les difficultés qui sont liées à l'algorithme numérique utilisé pour calculer numériquement une
solution de ce problème.
Considérons le problème de résolution du système algébrique linéaire suivant où 0 < ε << 1
2
2x + 3 + ε y = 2
x + 1 y = 1
3
y = k . Ce qu'il faut remarquer ici c'est qu'une petite perturbation ε = 10−10 affectant un seul
coefficient du système est capable de modifier de manière considérable la nature du résultat.
C'est une propriété mathématique du système qui ne dépend pas de l'algorithme utilisé pour le
résoudre.
Si un problème est tel qu'une petite perturbation dans les données ne produise qu'une petite
perturbation au niveau de la solution mathématique, le problème est bien conditionné. Si au
contraire une petite perturbation au niveau des données produit une grande perturbation au
niveau du résultat, le problème est mal conditionné.
Cette notion de conditionnement du problème mathématique peut être transcrite aux
algorithmes numériques qui sont envisagés pour le résoudre. Nous disons ainsi qu'un
algorithme numérique est stable si la solution obtenue en utilisant cet algorithme est proche,
en uns sens à préciser (choix d'une norme), de la solution exacte du problème perturbé.
Supposons que le symbole D désigne les données et que F représente une fonction
mathématique qui permet d'obtenir la solution exacte. F(D) est le processus mathématique qui
permet de résoudre le problème. Si les données sont perturbées, on se retrouve avec D* et le
processus de résolution conduit à la solution F(D* ) du problème perturbé. Le problème est
5
Remarque
On peut trouver dans la pratique les quatre situations suivantes:
- problème mal conditionné et algorithme numérique stable; dans cette situation tout ce qu'on
peut faire c'est étudier la sensibilité du problème (Chaos par exemple);
- problème mal conditionné et algorithme numérique instable; dans ce cas l'outil numérique
ne peut servir à rien;
- problème bien conditionné et algorithme numérique stable; c'est la situation idéale;
- problème bien conditionné et algorithme numérique instable; c'est le cas où le numéricien
doit travailler davantage.
6
(9) équation différentielle aux dérivée partielles, problème aux limites tel que l'équation de
∂ 2u ∂ 2u
Laplace + 2 = 0 dans Ω = ]−1,1[ × ]−1, 2[ avec u(x, y) = sin(πx) + y3 sur la frontière
∂x 2
∂y
Γ = ∂Ω .
5. Méthodes itératives
Par opposition aux méthodes directes qui permettent de construire une approximation à la
solution en une seule étape, les méthodes dites itératives permettent de construire une suite
d'approximations qui tendent à s'améliorer au fur et à mesure que l'on augmente le nombre des
itérations. Ces méthodes sont souvent simples et efficaces. Elles exigent en principe un
nombre infini d'étapes afin de converger mais elles ne sont utilisées dans la pratique que
lorsqu'elles assurent une convergence rapide vers la solution.
Les méthodes itératives sont souvent utilisées pour résoudre des équations de la forme
f (x) = 0 où f est une fonction non linéaire de x. On initialise la solution en choisissant x 0 et
1+ N
x 0 = 2
i = 0,1, 2...
x i +1 = 1 x i + N
2 xi
- Convergence:
L'algorithme précédent converge, en effet: x i ≥ N par récurrence; la suite (x i ) est minorée;
la suite (x i ) est décroissante; donc elle converge vers une limite ≥ N > 0 . Mais par
passage à la limite dans les deux membres de l'équation itérative, il vient que = N .
7
- Taux de convergence:
On établit par récurrence pour 1 < N < 2 que x i − N ≤ 2 − i . Ainsi pour atteindre la précision
ε < 1 sur le résultat, il faut au minimum un nombre total d'itération égal à − log(ε) / log(2) et
on peut constater que la convergence est extrêmement rapide : pour ε = 10−6 , 20 itérations
suffisent.
8
Le mot de longueur égale à 60 qui représente x s'écrit:
Pour obtenir (-a) on exécute la règle du complémentaire (on remplace 1 par zéro et zéro par
1). Afin que la représentation soit unique, on convient de normaliser de la façon suivante:
x > 0 ⇒ a 47 = 1 et x < 0 ⇒ a 47 = 0 .
implantée dans la machine C est inclut dans l’intervalle [10 −294 ,10322 ] et de manière
symétrique pour les réels négatifs.
A titre d'exemple explicitons les représentations normalisées en mode virgule flottante de
±10 et ±1/10 sur la machine C.
Appelons φB (x) la représentation de x en base B. Ainsi 10 = φ10 (10) . Pour trouver φ2 (10) on
applique l'algorithme de conversion qui consiste en de simples divisions successives par 2 où
l'on s'arrête lorsque le reste est soit 1 soit 0. La collection des restes prise à l'envers constitue
la représentation en base binaire associée à la représentation décimale. On trouve alors
φ2 (10) = 1010 . La représentation en virgule flottante s'en déduit et on obtient:
−44
x = 101000...0
2 . Sachant que φ2 (−44) = 01111010011 , le mot qui représente 10 s'écrit:
48 bits
00111101001110100....0
. On en déduit immédiatement la représentation de (-10) en utilisant
10 bits 48 bits
binaire de φ2 (1/10) est infinie et périodique. Pour la trouver il suffit de pratiquer la division
0011110011001100110011....1
.
10 bits 48 bits
9
Remarquons à présent que les nombres que l'on peut représenter de manière exacte par des
mots de longueur fixe et que l'on peut stocker donc dans la mémoire d'un ordinateur forment
un sous ensemble fini de l'ensemble des rationnels Q . Nous appelons cet ensemble les
représentations offertes par la machine ou tout simplement l'ensemble des nombres
représentés a priori sur la machine. Si nous voulons représenter un nombre qui n'est pas une
représentation offerte nous devons considérer son approximation par une représentation
offerte. On démontre que pour tout x appartenant au domaine couvert par la représentation, il
existe une unique représentation offerte a.2b telle que: x = (a + δ).2b 0 < δ < 1 . La
représentation adoptée dans ce cas pour x est x ≅ a.2b . L'erreur relative commise (arrondi) est
ε = (a.2 b − x) / x . Elle est telle que ε < 2 −48 . Tout le monde a compris que pour la réduire
davantage, il faut étendre davantage la mantisse et donc utiliser une machine de plus grande
capacité.
est effectuée par l’ordinateur supposons d’abord que b 2 ≤ b1 , alors on peut écrire:
x1 + x 2 = (a1 + a 2 2− (b1 − b2 ) ).2b1 = a S .2b1 avec a S = a1 + a 2 .2− (b1 − b2 ) . L'opération d'addition suit les
étapes suivantes:
- on place a 2 dans la moitié supérieure d’un accumulateur à longueur double;
- a1 qui est placé dans la moitié inférieure, puis additionné avec la moitié supérieure pour
former a S ;
- le résultat est normalisé en prévision de futures utilisations;
Le résultat ainsi obtenu est un mot double et il faut l'arrondir ce qui s’accompagne d’erreurs
d’arrondis.
10
L'addition utilise une table binaire stockée dans la mémoire de l'ordinateur
+ 0 1
0 0 1
1 1 10
précédent), on a: (x1 + x 2 ) machine = (x1 + x 2 )(1 + εS ) avec εS < 2−48 . L'erreur absolue peut être
z 0 = a 0 , z1 = xz 0 + a1 , z 2 = xz1 + a 2
2
La borne supérieure des arrondis est donnée dans ce cas par: (4 a 0 x + 3 a1 x + a 2 )ε avec
ε < 2 −48 .
x3 x5 x 7
atan x = x − + − + ... Il faudra à peu près une dizaine de termes pour arriver à une
3 5 7
erreur 10−8 sur [ −1,1] . D'autres formules plus économiques existent: on se ramène d'abord à
l'intervalle [ − tan(π /12), tan(π /12)] avec tan(π /12) = 2 − 3 . Puis on considère
0.55913709
l'approximation atan x ≈ x 0.6031579 − 0.05160454x 2 + 2 . Le résultat obtenu
x + 1.4087812
présente une erreur ≤ 10−8 mais nécessite moins de termes qu'avec Taylor.
11
7. Exercices
(1.1) Soient φ10 (x) = 75 et φ10 (y) = 0.8 , trouver φ2 (x) et φ2 (y) . En déduire φ2 (75.8) .
(1.2) Soient φ2 (x) = 1110.101 et φ2 (y) = 1001011.1100110 , calculer φ10 (x) et φ10 (y) .
(1.3) Quels sont parmi les nombres suivants ceux qui sont représentables sur la machine C:
10400 ,10300 , 10−300 ,10−400 .
1
(1.4) Trouver dans le cas de la machine C les représentations normalisées de: ±2 , ±10 , ± ,
10
0 , 40 , 2172 , 2−172 .
12
CHAPITRE 2:
Résolution numérique des équations non linéaires
1. Introduction
Nous considérons dans ce chapitre le problème de la résolution numérique d'équations non
linéaires telles que par exemple
- sin x − x + 2 = 0 x∈R ;
- e x + ln x − 3 = 0 x ∈ R +* ;
x − 3xy + 1 = 0
3 2
- 2 (x, y) ∈ R 2 .
3x y − y = 0
3
F(X) = 0 (2.1)
avec X = [ x1 x 2 x n ] et F = [ f1 f 2 f n ] .
t t
Nous supposerons aussi que F est continue et on renforcera en cas de besoin cette hypothèse
par des conditions de régularité qui imposent à F de vérifier certaines propriétés de
différentiabilité.
Nous allons considérer dans un premier temps le cas scalaire f (x) = 0 avant de généraliser
l’étude à un système quelconque.
13
2. Définitions
Nous considérons l'équation scalaire en l'inconnue réelle x
f (x) = 0 (2.3)
2.1 Définition 1
Si f (x * ) = 0 , alors x * est appelé racine de l'équation et x * est un zéro de f .
2.2 Définition 2
Si x * est zéro de f (continue), alors la multiplicité, m, de x * est la borne supérieure de
l'ensemble des réels k satisfaisant à la condition
f (x)
lim* k
< +∞ (2.4)
x→x
x − x*
En tant qu'exemple f (x) = x admet en 0 un zéro de multiplicité 1/2 car pour tout ε > 0 , on
a:
f (x) f (x)
lim 1
= 0 et lim 1
= +∞ .
x →0 −ε x →0 +ε
2 2
x x
2.3 Théorème
Si x * est un zéro de f (x) et si pour un entier m, f (x) est m fois continûment différentiable
Remarques
Des solutions analytiques de (2.3) ne sont disponibles que dans des cas très particuliers
comme par exemple pour f (x) = ax + b (f est linéaire), f (x) = ax 2 + bx + c (f est quadratique).
14
Elles sont aussi disponibles lorsque f (x) est un polynôme de degré 3, mais dans ce dernier
cas les formules sont compliquées et rarement utilisées dans la pratique. Pour un polynôme de
degré strictement supérieur à 4, il n'existe pas toujours des solutions analytiques. Les
solutions analytiques n'existent pas non plus en général lorsque f fait intervenir des fonctions
transcendantes.
Des méthodes numériques nous permettront souvent de calculer des solutions appropriées
dans le cadre des limitations de précision exigées par la représentation discrète des réels et la
représentation des fonctions transcendantes par des séries tronquées. Parmi les méthodes
itératives qui ont fait leur preuve nous étudions dans la suite:
- la méthode de dichotomie (appelée bisection en anglais);
- la méthode de la position fausse (appelée false position en anglais);
- la méthode de Newton.
Nous généraliserons ensuite l'analyse au cas des systèmes de deux équations non linéaires à
deux inconnues.
3. La méthode de dichotomie
localiser x * en construisant une suite d'intervalles qui s'emboîtent de manière récursive et tels
que la longueur de l'intervalle actuel soit égale à la moitié de la longueur de son prédécesseur.
Tous ces intervalles contiennent au moins un zéro de f. Posons ainsi r0 = a , s 0 = b et
15
rn +1 = rn , s n +1 = z n si f (z n )f (rn ) < 0
(2.6)
rn +1 = z n , s n +1 = s n si f (z n )f (rn ) > 0
et le processus continue.
b−a
ln
ε
n≥ −1 (2.7)
ln 2
rn f (s n ) − s n f (rn )
zn = (2.8)
f (s n ) − f (rn )
f (s n ) − f (rn ) s f (r ) − rn f (s n )
f n (x) = x+ n n (2.9)
s n − rn s n − rn
Ainsi
rn f (s n ) − s n f (rn )
f n (z n ) = 0 ⇒ z n = (2.10)
f (s n ) − f (rn )
16
On démontre que si f est continue sur [ a, b ] et f (a)f (b) < 0 , la méthode de la position fausse
converge.
5. La méthode de Newton
Supposons que x * soit une racine de f (x) = 0 où f est une fonction scalaire de classe C1 ,
f (x 0 )
x1 = x 0 − (2.14)
f ′(x 0 )
f (x n )
x n +1 = x n − (2.15)
f ′(x n )
f (x)f ′′(x) < ε 2 . D'où ϕ′(x) < 1 et la méthode converge pourvu que l'initialisation s'effectue
au voisinage de la solution x * .
17
6. Système d'équations non linéaires
L'analyse des méthodes numériques pour résoudre les systèmes d'équations non linéaires peut
être faite dans le cadre d'un système non linéaire quelconque de la forme
Mais afin de simplifier la présentation, nous considérons un système de deux équations à deux
inconnues
g(x, y) = 0
(2.17)
h(x, y) = 0
Cette équation peut, dans ce cas particulier de dimension 2, être associée à l'équation
d'inconnue complexe f (z) = 0 où g = Re(f ) et h = Im(f ) .
Les méthodes envisagées pour résoudre ce problème sont:
- la méthode de newton généralisée;
- la méthode de Jacobi;
- la méthode de Gauss-Seidel;
- les méthodes de relaxation.
g(x n , y n )h ,y (x n , y n ) − h(x n , y n )g ,y (x n , y n )
x n +1 = x n − (2.19)
Jn
18
h(x n , y n )g,x (x n , y n ) − g(x n , y n )h ,x (x n , y n )
y n +1 = y n −
Jn
avec
g ,x (x n , y n ) g ,y (x n , y n )
J n = det = g ,x (x n , y n )h ,y (x n , yn ) − h ,x (x n , y n )g ,y (x n , y n )
h ,x (x n , y n ) h ,y (x n , yn )
Remarques
- Lorsque ∂g / ∂y = 0 , la formule généralisée de Newton redonne la formule scalaire de
Newton.
- L'efficacité de la méthode de Newton dépend de manière critique du choix de l'initialisation.
On peut faire appel aux méthodes graphiques pour savoir comment initialiser au voisinage de
la solution désirée.
8. La méthode de Jacobi
On résout le système
(2.20)
f (x (k ) , x (k ) ,..., x (k +1) ) = 0 → x (k +1)
n 1 2 n n
19
10. Méthode de relaxation
On pose x i(k +1) = x i(k ) + ω x i(k +1) − x i(k ) i = 1, 2,..., n avec x i(n +1) tel que
fi (x1(k +1) , x (k
2
+1)
,..., x i(k−1+1) , x i(k +1) , x i(k+1) ,..., x (k
n ) =0
)
(2.22)
11. Exercices
(2.1) Ecrire un programme sous Matlab permettant de résoudre avec la méthode de
dichotomie l'équation f (x) = sin x − 0.750 = 0 . On prendra a = 0.800 et b = 0.900 .
(2.2) Ecrire un programme sous Matlab permettant de résoudre avec la méthode de la position
fausse l'équation f (x) = sin x − 0.750 = 0 . On prendra a = 0.800 et b = 0.900 .
1
(2.3) Développer une méthode itérative à base de la méthode de Newton pour calculer N 5 .
1
Appliquer la méthode pour calculer 2 5 avec trois chiffres significatifs.
(2.4) Appliquer sous forme d'un programme la méthode de Newton pour résoudre les
équations suivantes:
sin x = x 3 + 1 x 0 = −1 ;
g(x, y) = x 3 − 3xy 2 − 2x + 2 = 0
x 0 = y0 = 1 .
h(x, y) = 3x y − y − 2y = 0
2 3
20
CHAPITRE 3:
Interpolation et approximation
1. Introduction
On considère dans la suite le problème de l'évaluation d'une fonction f (x) de manière
approchée. Le but étant de déterminer une autre fonction F(x) qui donne pour chaque valeur
de la variable x une valeur qui est suffisamment proche de f (x) . Il est souhaitable que la
fonction F(x) soit de forme simple tel que par exemple un polynôme ou une fraction
rationnelle.
La construction d'une fonction F(x) se fait selon deux méthodes. La première méthode
s'appelle interpolation. Elle consiste à choisir F(x) parmi une classe de fonctions (par
exemple les polynômes de degré ≤ n ) de telle sorte que F(x) et f (x) coïncident en un certain
nombre de points appelés "points d'interpolation". On peut exiger aussi que les dérivées de
F(x) et f (x) coïncident en certains points. Parmi les méthodes qui suivent cette technique
d'interpolation, on trouve l'interpolation linéaire, l'interpolation de Lagrange, l'interpolation
d'Hermite,...
La deuxième méthode s'appelle approximation. Dans ce procédé on ne demande pas à F(x)
de coïncider avec f (x) en un certain nombre de points, on impose à F(x) d'être proche de
b
∫ [ F(x) − f (x)]
2
f (x) au sens d'une norme à choisir. On cherche par exemple à minimiser dx
a
∑ [ F(x ) − f (x )]
2
ou bien i i sur un domaine contenant la variable x lorsque F(x) appartient à
n =1
un espace connu.
Cette approximation permet par exemple d'ajuster des données expérimentales par une
fonction facile à évaluer.
2. Interpolation linéaire
Etant donné une fonction f (x) continue définie sur un intervalle [ a, b ] , on cherche une
21
On trouve que pour tout x ∈ [ a, b]
b−x x −a
F(x) = w a (x)f (a) + w b (x)f (b) avec w a (x) = , w b (x) =
b−a b−a
w a (x) et w b (x) définissent les poids de l'interpolation. On vérifie que w a (x) + w b (x) = 1
L'erreur commise en remplaçant f (x) par F(x) sur l'intervalle [ a, b ] dépend de f ′′(x) , si f est
(x − a)(x − b)
f (x) − F(x) = f ′′(c) où c ∈ [ a, b ]
2
Considérons maintenant une subdivision de l'intervalle [ a, b ] définie par la suite des points
b−a
xk = a + k 0≤k≤N
N
Sur chaque intervalle [ x k , x k +1 ] on détermine FN (x) par interpolation linéaire, ainsi pour
x ∈ [ x k , x k +1 ]
x k +1 − x x − xk
FN (x) = w kd (x)f (x k ) + w gk +1 (x)f (x k +1 ) avec w dk (x) = , w gk +1 (x) =
x k +1 − x k x k +1 − x k
L'exposant permet de signaler qu'en chaque point de la subdivision deux poids sont définis:
l'un correspond au sous intervalle se trouvant à gauche du point et l'autre au sous intervalle à
droite de ce point.
L'erreur correspondant à l'intervalle [ x k , x k +1 ] de la subdivision est
On montre alors puisque f est uniformément continue sur [ a, b] que lim FN (x) = f (x)
N →+∞
22
3. Interpolation de Lagrange
L'interpolation de Lagrange est justifiée par le théorème suivant:
Soit x 0 , x1 ,..., x n un ensemble de points distincts, alors pour tout ensemble y 0 , y1 ,..., y n , il
n
x − xj
P(x) = P0 (x) + P1 (x) + ... + Pn (x) avec Pi (x) = ∏ y 0≤i≤n
j=0 x − x i
j≠i i j
La construction de P utilise le déterminant de Vandermonde.
Si l'on se donne maintenant une fonction f (x) qui est définie en n + 1 points distincts
n n x − xj n
Fn (x) = ∑ w i (x)f (x i ) avec w i (x) = ∏ et ∑ w (x) = 1
i
i=0 j= 0 xi − x j i=0
j≠ i
h n +1
Il s'ensuit que si l'on pose M n +1 = max f (n +1) (x) , on obtient f (x) − Fn (x) ≤ M n +1 qui
[ x 0 ,x n ] 4(n + 1)
donne une majoration de l’erreur commise.
23
Lorsque le pas de la subdivision est h, définissons les différences progressives par
∆f (x) = f (x + h) − f (x)
∆ 2 f (x) = ∆(∆f (x)) = f (x + 2h) − 2f (x + h) + f (x)
∆ n f (x) = ∆(∆ n −1f (x))
24
* Si f est un polynôme de degré ≤ n , alors ∆ n +1f (x) = 0 .
L'intérêt de considérer les différences est justifié par le théorème de Gregory-Newton:
Le polynôme d'interpolation de Lagrange est donné par:
avec
x − x0 u(u − 1)...(u − j + 1)
u= et Q j (u) =
h j!
z 0 = a 0 ∆ n − k f (x 0 ) x − x0
avec ak = et u =
z k = (u − n + k)z k −1 + a k 1 ≤ k ≤ n (n − k)! h
h h
δf (x) = f x + − f x −
2 2
5. Interpolation d'Hermite
Dans l'interpolation d'Hermite on exige, en plus du fait que F(x) coïncide avec f (x) aux
points d'interpolation x 0 , x1 ,..., x n , que certaines de ses dérivées coïncident avec celles de
25
chercher le polynôme d'Hermite tel que: F(a) = f (a) , F(b) = f (b) , F′(a) = f ′(a) et
F′(b) = f ′(b) . On pose ainsi
F(x) = a 0 (x − α)3 + a1 (x − α) 2 + a 2 (x − α ) + a 3
ce qui donne
F′(x) = 3a 0 (x − α) 2 + 2a1 (x − α ) + a 2
En posant α = a et h = b − a , on obtient
f (a) = a 3
f (b) = a 0 h + a1h + a 2 h + a 3
3 2
f ′(a) = a 2
f ′(b) = 3a h 2 + 2a h + a
0 1 2
D'où
2 1
a 0 = h 3 [ f (a) − f (b) ] + h 2 [ f ′(a) + f ′(b)]
a = 3 f (b) − f (a) − 1 2f ′(a) + f ′(b)
1 h2 [ ] [
h
]
a 2 = f ′(a)
a = f (a)
3
1
f (x) = sur [ −5,5]
1+ x2
26
5j
Si les points d'interpolation sont: x j = , − n ≤ j ≤ n où n définit le degré d'interpolation de
n
Lagrange, en l'occurrence un polynôme de degré 2n noté F2n , on démontre le résultat
inattendu max f (x) − F2n (x) = +∞ . Ce problème est connu sous le nom de phénomène de
n →+∞
Afin de contourner ces difficultés, il est préférable d'utiliser des interpolations construites à
base de polynômes de plus faible degré mais sur une partition d'intervalles de taille plus
réduite que celle de l'intervalle de départ. Si sur chaque sous intervalle une interpolation
linéaire est par exemple considérée (cas déjà vu), on obtient une fonction d’interpolation
continue qu'on appelle interpolation spline linéaire. Dans le cas d'une interpolation spline
cubique, on utilise une subdivision quelconque de l'intervalle de départ et on définit sur
chaque sous intervalle une interpolation cubique devant de plus satisfaire les conditions de
régularité suivantes aux points de la subdivision:
Fk (x i ) = f (x i ) pour i = k − 1, k
− +
Fk′ (x k ) = Fk′+1 (x k ) k = 1, 2,..., n − 1
′′ −
Fk (x k ) = Fk′′+1 (x k )
+
(3.2)
hk h + h k +1 h y − y k y k − y k −1
M k −1 + k M k + k +1 M k +1 = k +1 − k = 1, 2,..., n − 1
6 3 6 h k +1 hk
27
Si nous fixons arbitrairement M 0 = M n = 0 , M1 , M 2 ,..., M n −1 sont calculés par inversion du
système matriciel de matrice symétrique A qui est tridiagonale et à diagonale dominante
h1 + h 2 h2
3 0 0
6
h2 h2 + h3
6 3
A= 0 0
h n − 2 + h n −1 h n −1
3 6
h n −1 h n −1 + h n
0 0
6 3
L'interpolation associée à la spline cubique est alors plus lisse que celle du même ordre
associée à Lagrange.
Problème 1:
Etant donné une fonction continue f (x) sur un intervalle [ a, b] , on minimise
1
Pn − f 2
= ( ∫ [P (x) − f (x)] )
b
a n
2 2
où Pn (x) est un polynôme de degré ≤ n .
Problème 2:
Etant donnée une fonction définie sur un ensemble fini de points J: x 0 , x1 ,..., x M , chercher à
1
M 2 2
= ∑ [ Pn (x i ) − f (x i )] .
J
minimiser Pn − f 2
i =1
Le deuxième problème peut correspondre à un ajustement de données expérimentales par
Pn (x) .
b
Définissons le produit scalaire: f , g = ∫ f (x)g(x) dx dans le cas du problème continu
a
M
(problème 1), ou bien f , g = ∑ f (x i )g(x i ) dans le cas du problème discret (problème 2).
i =1
28
Considérons le cas où f est un élément de L2 ([ a, b ]) . L2 ([ a, b ]) muni du produit scalaire
f , g est un espace de Hilbert. L'existence et l'unicité des solutions des problèmes 1 et 2 sont
alors justifiées par le théorème de projection sur un convexe fermé. L'ensemble des
polynômes de degré ≤ n est en effet un sous espace vectoriel fermé de dimension finie et le
théorème de projection s'énonce sous la forme:
Pour tout n ∈ N et pour tout f ∈ L2 ([ a, b ]) , il existe un unique polynôme de degré ≤ n tel que
f − Pn 2
= min f − Q n 2
Qn
degré ≤ n .
Le calcul de Pn s'effectue de la façon suivante:
Soit n ∈ N , soit {ϕ0 (x), ϕ1 (x),..., ϕn (x)} une base de l'espace des polynômes de degré ≤ n ,
n
alors Pn (x) = ∑ c k ϕk (x) . D'après le théorème précédent, on a
k =0
n
f − ∑ c k ϕk (x), ϕ j (x) = 0 j = 0,1,..., n
k =0
D'où
∑
k =0
ϕk , ϕ j c k = f , ϕ j
ΦC=F (3.3)
Φ est une matrice définie positive, donc non singulière, ce qui implique qu'il existe une
unique solution pour le système (3.3). Malheureusement, souvent la matrice Φ est très mal
29
conditionnée dans la mesure où si l'on cherche à inverser directement cette matrice, une très
grande perte de précision apparaît. Ceci peut s'expliquer par le fait qu'en général Φ est quasi-
proportionnelle à la matrice de Hilbert H ij = 1/(i + j + 1) .
Afin de contourner cette difficulté numérique, on construit une base orthogonale par le
procédé de Gram Schmidt:
ϕ0 (x) = 1
xϕ 0 , ϕ 0
ϕ1 (x) = x − ϕ0 (x)
ϕ0 , ϕ0
ϕ (x) = xϕ (x) − α ϕ (x) − β ϕ (x) 1 ≤ k ≤ n − 1
k +1 k k k k k −1
avec
xϕ k , ϕ k ϕk , ϕk
αk = et β k =
ϕk , ϕk ϕk −1 , ϕk −1
Pm (x)
F(x) = Fm,k (x) =
Q k (x)
où Pm (x) et Qk (x) sont des polynômes de degré respectivement m et k et qui n'admettent pas
de zéros communs.
Dans le cas de l'approximation de Padé, on se donne un point α et on choisit Pm (x) et Qk (x)
tels que: F(α) = f (α) et F( j) (α) = f ( j) (α) avec j = 1,..., m + k . L'approximation de Padé est
une généralisation du développement en série de Taylor au voisinage de x = α .
30
Si l'on suppose que f est développable en séries entières au voisinage de α , on a:
+∞
f ( j) (α)
f (x) = ∑ (x − α) j
j= 0 j!
On montre alors que les coefficients des polynômes P et Q sont tels que le terme constant et
les monômes en (x − α) , ..., (x − α) m + k s'annulent dans l'expression suivante:
+∞
f ( j) (α)
Qk (x)∑ (x − α) j − Pm (x)
j= 0 j!
1
1+ x
F(x) = 2
1
1− x
2
9. Exercices
(3.1) Trouver l'unique polynôme P(x) de degré ≤ 3 tel que: P(0.5) = 2 , P(0.6) = 8 ,
P(0.7) = −2 , P(0.8) = 5 . Calculer P(0.56).
(3.2) Trouver ln(0.54) en utilisant une interpolation de Lagrange à trois points à l'aide de la
table:
Calculer la valeur exacte de l'erreur sachant que ln(0.54) = −0.61619 et comparer cette valeur
avec la borne de l'erreur.
31
(3.3) Soit f(x) une fonction telle que: f (0) = 1.25 , f (0.5) = 1.75 , f (1) = 2.10 . Soit P(x) un
polynôme de degré ≤ 2 tel que: F(0) = f (0) , F(0.5) = f (0.5) et F(1) = f (1) . Déterminer F(x)
et calculer F(0.25) :
- par la formule d'interpolation de Lagrange;
- par la formule d'interpolation de Grégory Newton.
(3.4) Trouver le polynôme P(x) de degré ≤ 2 tel que: P(1) = 1 , P′(1) = 1 , P(2) = 1 .
32
CHAPITRE 4:
Résolution numérique des systèmes d'équations linéaires
1. Introduction
Nous considérons le système algébrique d'équations linéaires
AX = B
a11 a1n b1
[ A, B] =
a n1 a nn bn
∆j
xj =
∆
33
Une autre façon qui permet d'exprimer implicitement la solution consiste à écrire
X = A − 1B
On dit que le système est homogène si et seulement si B = 0 . Dans ce cas si A est régulière
l'unique solution est X = 0 .
n
1
2(n + 1)!∑
j= 2 ( j − 1)!
n
1
Lorsque n est grand ∑ ( j − 1)! ≅ e − 1 ,
j= 2
on obtient donc à peu près 2(e − 1)(n + 1)!
multiplications. Sachant qu'il faut aussi autant d'additions, on obtient un nombre total
d'opérations qui est égal à 4(e − 1)(n + 1)! afin de calculer la solution X du système AX = B
par la méthode de Cramer.
En tant qu'exemple si n = 20 , il faut 8.36 × 1017 opérations. Un ordinateur qui est capable
d'effectuer 2 millions d'opérations par seconde, devra tourner durant au moins treize milles
années. Bien sûr, durant cette période l'ordinateur risque de tomber en panne et la personne
qui conduit les calculs pourrait mourir!
L'exemple précédent justifie le recours aux méthodes d'élimination qui sont attribuées à
Gauss.
34
a i1(1) (1)
a ij(2) = a ij(1) − a
(1) 1j
i ≥ 2 , j ≥1 (5.1)
a11
a i1(1) (1)
b (2)
i = b − (1) b1
(1)
i i≥2 (5.2)
a11
Cette première étape d'élimination conduit au nouveau système matriciel: A (2) X = B(2) , alors
qu'au départ on avait A (1) X = B(1) . La procédure d'élimination est équivalente à la
multiplication à gauche des deux membres de A (1) X = B(1) par la matrice triangulaire
1 0 0
a (1)
− (1)
21
M (1) = a11
I n −1
(1)
a n1
− a (1)
11
Il vient alors A (2) = M (1) A (1) et B(2) = M (1) B(1) . Il est évident maintenant que les deux
systèmes A (2) X = B(2) et A (1) X = B(1) sont équivalents dans la mesure où ils admettent la
même solution. En particulier, det(A (2) ) = det(A (1) ) .
Après avoir pratiqué (r − 1) éliminations, on se retrouve avec le système réduit A (r) X = B(r) .
a ir(r) (r)
a ij(r +1) = a ij(r) − a rj i ≥ r +1 , j ≥ r (5.3)
a (r)
rr
a ir(r) (r)
bi(r +1) = bi(r) − br i ≥ r +1 (5.4)
a (r)
rr
35
A l'issue de cette élimination, on se retrouve avec le système: A (r +1) X = B(r +1) . On peut vérifier
par des multiplications directes que la matrice
I r −1 0 0
0 1 0 0
a (r)
r +1,r
M (r) = − 1
a (r)
rr
0 0
0 a (r)
− n,r
0 0 1
a (r)
rr
est telle que: A (r +1) = M (r) A (r) et B(r +1) = M (r) B(r) .
Nous pouvons donc poursuivre par récurrence la procédure d'élimination tant que les pivots le
permettent jusqu'à finir à l'ordre n. On obtient alors le système matriciel A (n ) X = B(n ) qui est
équivalent à A (1) X = B(1) . On a vérifie alors les relations
Les deux systèmes admettent donc la même solution est le même déterminant:
Pour passer de A (r) à A (r +1) , on effectue 2(n 3 − n) / 3 additions et multiplications ainsi que
n(n − 1) / 2 divisions. Pour passer de B(r ) à B(r +1) , on effectue n(n − 1) additions et
multiplications. La remontée nécessite n(n − 1) additions et multiplications et n divisions.
Remarque
La mise en marche de l’algorithme de Gauss dans sa version précédente suppose que les
pivots ne s’annulent jamais. Dans la réalité, il se peut qu’à une étape donnée le pivot soit
nulle. Dans ce cas il faut pratiquer soit le pivotage partiel soit le pivot complet. Le pivotage
36
permet dans tous les cas d’améliorer le conditionnement du système lorsqu’on remplace le
pivot initial par un autre plus grand en valeur absolue.
3. Instabilité numérique
Lorsque l'algorithme de Gauss décrit précédemment est appliqué dans la pratique, il y a des
considérations qui dépassent celles déjà mentionnées ci-dessus. Ces considérations
supplémentaires sont dues à la nature du calcul numérique avec la représentation des nombres
sur ordinateur qui entraîne nécessairement des arrondis (l'arithmétique opéré par les
ordinateurs n'est pas exacte, elle est approchée).
Sous l'hypothèse d'une représentation idéale des nombres (1/3 a une représentation infinie) et
d'un calcul arithmétique infiniment précis l'algorithme de Gauss pourrait conduire à l'unique
solution du problème et ce avec une précision infinie (et peut être une durée de calcul infinie).
Mais la réalité est très différente. En présence d'un pivot qui est petit les troncatures
numériques peuvent polluer considérablement la solution.
Exemple:
Conséidérons la matrice de Hilbert d’ordre 20 telle qu’elle est définie par le script suivant.
clear;
format long e;
for i=1:20,
for j=1:20,
H(i,j)=1/(i+j-1);
end
B(i,1)=1;
end
X=inv(H)*B
erreur=H*X-B
La solution calculée est fausse à cause de l'instabilité numérique. L'origine de cette instabilité
est expliquée par la notion de conditionnement présentée dans la suite.
37
4. Système mal conditionné
Le système AX = B est mal conditionné lorsque la solution est très sensible aux petites
perturbations qui peuvent affecter la matrice augmentée [ A, B] .
Dans le cas d'un système mal conditionné, l'instabilité de l'algorithme de Gauss est un sort qui
est inévitable.
Supposons que l'on perturbe le système AX = B de la façon suivante: A → A + ε A ;
(A + ε A )(X + ε X ) = B + ε B
α AX
M α
= sup α
X ≠0 X α
α
où α
est une norme sur R n . α
est dite norme matricielle subordonnée de la norme α
.
α α α
La norme matricielle vérifie les propriétés suivantes: MP α
≤ M α
P α , et pour tout X ∈ R n :
α
AX α
≤ A α
X α.
Les normes vectorielles qui peuvent être utilisées pour définir la norme matricielle sont:
n n
X 1 = ∑ xi , ∑x
2
X2= i , X ∞
= max x i .
i
i =1 i =1
n
On démontre alors que: A 1 = max ∑ a ij , puis A 2 = µ1 (norme spectrale) avec µ1 la
1 2
j
i =1
racine positive de la plus grande valeur propre de la matrice hermitienne t AA dite aussi plus
n
= max ∑ a ij .
∞
grande valeur singulière de A. Finalement A ∞ i
j=1
38
Remarque
On démontre le théorème suivant:
α
Si λ est valeur propre de A, alors pour toute norme matricielle, on a: λ ≤ A α , le rayon
α α
εX A A −1 εB εA
α
α −1 α α α
Si ε A A < 1 et I = 1 , alors α
≤ α
α
+ α
α α α
X 1 − εA
α
A −1
α
Bα A
α
α α α α
Ce théorème montre que la perturbation qui affecte X est majorée par la quantité;
καα (A) r
r ( B
ε + ε rA ) où κ αα (A) = A
α α
α
A −1 et l'exposant r dans ε rA indique la norme relative de
1 − εA α
la perturbation.
Le nombre καα (A) joue un rôle considérable. S'il est petit, la perturbation qui affecte la
solution reste petite. Dans le cas contraire, puisqu'on démontre dans le cas général qu'il
n’existe pas de borne plus fine que la précédente, on peut avoir amplification de la
perturbation. Lorsque ceci se produit, le système est mal conditionné. Le nombre καα (A)
s'appelle conditionnement du système linéaire AX = B .
α
Si α
est la norme spectrale, alors κ 22 (A) = µ1 / µ n qui est le rapport de la plus grande et de
la plus petite valeur propre de t AA dites aussi valeurs singulières de A. On a alors κ 22 (A) ≥ 1 .
Il ne faut pas croire que A est mal conditionnée si det(A) est petit. En effet, κ 22 (A) peut être
grand dans le cas où la taille du système est petite et det(A) petit. En tant qu'exemple, on peut
considérer le système
39
5. Décomposition triangulaire d'une matrice
5.1 Factorisation LU
La procédure de Gauss sans modification de pivot conduit au système triangulaire supérieur
A (n ) X = B(n ) . La relation entre A (n ) et A est donnée par: A (n ) = MA , soit A = M −1A (n ) . La
−1 −1 −1
matrice M −1 est donnée par: M −1 = M (1) M (2) ... M (n −1) .
I r −1 0 0
0 1 0 0
a (rr +)1,r
M =
(r ) −1
1
a (rrr )
0 0
0 a (rn,r)
0 0 1
a (rrr )
de sorte que
1 0 0 0
(1)
a 21 1
a11
(1)
(2)
a 32
1
[ M ] =
−1
a (2)
22
1 0
a (1) a (2)
a (n −1)
n,n −1
(1)
n1 n2
(2) (n −1)
1
11
a a 22 a n −1,n −1
40
Lorsque la décomposition LU d'une matrice A est disponible, on peut résoudre le système en
deux étapes: LY = B , puis UX = Y pour trouver enfin X.
Lorsqu'on pratique le pivotage partiel, on montre que si l'on appelle P la matrice de
permutation, on obtient la décomposition: PA = LU .
Une méthode voisine de la méthode de Gauss est la méthode de Gauss Jordan qui permet de
calculer l'inverse d'une matrice.
i −1 i −1
i −1
a i,i +1 − ∑ b ki b k,i +1 a in − ∑ b ki b kn
bii = a ii − ∑ bik2 , bi,i +1 = k =1
,..., bin = k =1
k =1 bii bii
6. Méthodes itératives
On considère de manière générale la décomposition de la matrice A sous la forme A = M − N
où M est une matrice inversible et facile à inverser. On a donc les équivalences:
AX = B ⇔ MX = NX + B ⇔ X = M −1 NX + M −1B
41
On considère alors la méthode itérative X k +1 = M −1 NX k + M −1B k ≥ 0 avec X 0 arbitraire.
méthode n'exige pas le calcul de (D − E) −1 . Cette méthode occupe moins de places mémoires
que Jacobi et présente donc un avantage certain dans le cas des grands systèmes.
1 1− ω
associé à la décomposition A = D − E + D + F . Tout se passe comme si l'on fait
ω ω
passer une partie de la matrice D dans la matrice N (on a relaxé D).
−1
1
Les itérations s'écrivent: X k +1 = R ω X k + D − E B .
ω
Si ω = 1 , on retrouve Gauss Seidel.
Si ω < 1 , on parle de sous relaxation.
Si ω > 1 on parle de sur relaxation.
D
La mise en oeuvre numérique de cette méthode n'exige pas le calcul de ( − E) −1 .
ω
42
L'avantage de cette méthode c'est qu'elle permet d'étudier la vitesse de convergence en
fonction de ω et donc de choisir un paramètre ω optimal.
Une itération correspondant à la méthode de Gauss Seidel ou de relaxation correspond à la
résolution du système triangulaire inférieur suivant:
7. Exercices
1
(4.2) On appelle matrice de Hilbert d'ordre n la matrice symétrique H = (h ij ) où h ij = ,
i + j −1
1 ≤ i, j ≤ n .
Montrer que cette matrice est définie positive (donc inversible).
Calculer le conditionnement κ 22 (H) pour n = 2, 3, 4,5,10 (il est préférable d'utiliser à ce titre
Matlab) et constater que le conditionnement est très rapidement croissant en fonction de n.
1 2 3 4
2 5 1 10
A=
3 1 35 5
4 10 5 45
43
(4.4) Ecrire un programme sous Matlab qui permet de résoudre un système quelconque par la
méthode de Gauss sans contrôle du pivot.
44
CHAPITRE 5:
Méthodes de calcul numérique des valeurs propres et des
vecteurs propres
1. Introduction
Pour calculer des approximations du spectre (ensemble des valeurs propres) d'une matrice A,
une idée couramment exploitée consiste à construire une suite de matrices (Pk ) k ≥1 telle que les
matrices Pk−1APk convergent dans un sens à préciser vers une matrice de valeurs propres
connues, c'est-à-dire diagonale ou triangulaire.
Cette idée est à la base de la méthode de Jacobi pour les matrices symétriques où les matrices
Pk sont des produits de matrices orthogonales élémentaires très simples à construire.
Pour les matrices quelconques des algorithmes d’extraction de valeurs et vecteurs propres
existent: les itérations inverses, la méthode QR, la méthode de Lanczos,... Nous avons aussi la
possibilité d’utiliser directement dans ce cas la commande eig de Matlab.
2. La méthode de Jacobi
Cette méthode s'emploie lorsqu'on cherche toutes les valeurs propres (et éventuellement tous
les vecteurs propres) d'une matrice symétrique. Elle s'applique bien aux matrices pleines.
Rappelons le théorème suivant dans le cas d'une matrice A symétrique:
il existe une matrice orthogonale P telle que P t AP = D(λ1 ,..., λ n ) où les nombres λ i sont les
valeurs propres, multiplicités comprises, de A. Les vecteurs colonnes de P forment une base
orthonormale de vecteurs propres, le ième vecteur colonne étant un vecteur propre associé à la
valeur propre λ i .
A k = (a ij ) , A k +1 = (bij ) et Pk = P .
45
La méthode de Jacobi s'appuie sur le théorème suivant:
soit p et q deux entiers vérifiant 1 ≤ p < q ≤ n , et θ un nombre réel, auxquels on associe la
matrice orthogonal
1 0 0
0
1
cos θ sin θ p
1
P =
1
q
− sin θ cos θ
1
0
0 0 1
p q
n n
Si A = (a ij ) est symétrique, B = P t AP est symétrique et ∑ bij2 = ∑ a ij2 . Si de plus a pq ≠ 0 , il
i, j=1 i, j=1
π π 2a pq
existe un unique θ∈ − , 0 ∪ 0, tel que: b pq = 0 , t an(2θ) = et
4 4 a qq − a pp
n n
∑b = ∑a
i =1
2
ii
i =1
2
ii + 2a 2pq .
Remarques:
Seules les pème et qème lignes et colonnes de la matrice A sont modifiées dans la
transformation A → B = P t AP . De façon plus précise pour toute valeur de l'angle θ ,
bij = a ij si i ≠ p, q et j ≠ p, q
b pi = a pi cos θ − a qi sin θ si i ≠ p, q
bip = b pi si i ≠ p,q
46
b qi = a pi sin θ + a qi cos θ si i ≠ p, q
a pp − a qq
b pq = b qp = a pq cos(2θ) + sin(2θ)
2
Au vu du résultat précédent, une étape de la méthode Jacobi; celle qui permet de construire
A k +1 à partir de A k = (a ijk ) consiste à choisir un couple (p, q) p ≠ q pour lequel l'élément
π π
a kpq ≠ 0 , puis on construit la matrice Pk avec l'angle θ k qui est choisi dans − , 0 ∪ 0,
4 4
2a kpq
de telle façon que t an(2θk ) = et l'on pose: A k +1 = Pkt A k Pk = a ij(k +1) .
a −a
k
qq
k
pp
Quelque soit la stratégie adoptée, un élément annulé à une étape peut très bien devenir non
nul à une étape ultérieure. La réduction à une matrice diagonale en un nombre fini d'itérations
n'est pas toujours possible.
47
La convergence est rendue possible par le fait que la somme des carrés de tous les éléments
des matrices A k reste constante, alors qu'à chaque étape la somme des carrés des éléments
diagonaux s'augmente de la somme des carrés des deux éléments annulés.
3. Exercices
(5.1) En utilisant la commande eig de Matlab, calculer les valeurs et vecteurs propres des
matrices
1 2 3 4 120 80 40 −16
2 1 4 3 80 120 16 −40
,
3 4 1 2 40 16 120 −80
4 3 2 1 −16 −40 −80 120
(5.2) En utilisant la commande eig de Matlab, calculer les valeurs et vecteurs propres de la
matrice
120 −90.86 0 0
−90.86 157.2 67.59 0
0 67.59 124.0 −46.26
0 0 −46.26 78.84
(5.3) Ecrire un programme sous Matlab qui permet de calculer les valeurs et vecteurs propres
de la matrice de l’exercice (5.2) par la méthode de Jacobi.
48
CHAPITRE 6:
Programmation linéaire
1. Introduction
On appelle de manière générale programme mathématique un problème d'optimisation sous
contraintes dans un espace vectoriel normé V . On choisira de manière systématique dans la
suite V = R n et le programme mathématique s'écrit
Nous n'avons envisagé ici que le cas de la minimisation. Ceci n'est pas restrictif dans la
mesure où la recherche du maximum d'une fonction J se ramène naturellement au problème
de la minimisation de J′ = − J .
Remarquons que la forme (P) inclut des contraintes d'égalité. En effet, une contrainte de type:
ψ(v) = 0 peut toujours être remplacée par la double inégalité: ψ(v) ≤ 0 et − ψ (v) ≤ 0 .
On appelle solution de (P) tout vecteur v vérifiant les contraintes, c'est-à-dire tel que:
ϕi (v) ≤ 0 , {i = 1, 2,..., m} .
On appelle solution optimale de (P) (ou encore optimum global) de (P) une solution qui
minimise J(v) sur l'ensemble de toutes les solutions.
49
Trouver u tel que
(PL) u ∈ U = {v ∈ R n ; Cv ≤ d} , C ∈ M m x n ( R), d ∈ R m
J(u) = inf
v∈U
J(v), J(v) = a t v, a ∈ R n
On peut supposer sans restreindre la généralité que rg(C) = m , ce qui impose m ≤ n . On peut
supposer aussi que tous les vecteurs colonnes C j de la matrice C sont non nuls.
On démontre dans ce cas en particulier que tout optimum local est un optimum global.
3. Programmation linéaire
Nous décrivons dans la suite la méthode du simplexe qui permet à l'aide d'un nombre fini
d'opération élémentaires soit de calculer une solution du problème (PL) (après que celui-ci eût
été mis sous une forme équivalente dite standard mieux adaptée à l'application de la
méthode), soit de conclure que le problème n'a pas de solution. Il peut apparaître un
phénomène de cyclage dans certains cas exceptionnels où la méthode ne permet pas de
conclure. Nous introduisons ensuite la notion de problème dual.
50
Trouver u tel que
n
(PL1) u ∈ U = v ∈ R n ; ∑ Cij v j ≤ d i , 1 ≤ i ≤ m
j=1
n
J(u) = inf J(v), J(v) = ∑ a i vi
v∈U
i =1
Trouver u ′ tel que
n′
(PL2) u ′ ∈ U′ = v′ ∈ R +n ′ ; ∑ C′ij v′j ≤ d′i , 1 ≤ i ≤ m′
j=1
n′
J′(u ′) = inf J′(v′), J′(v′) = ∑ a ′i v′i
v′∈U′
i =1
Trouver u ′′ tel que
n ′′
(PL3) u ∈ U = v ∈ R + ; ∑ C′′ij v′′j = d′′i , 1 ≤ i ≤ m′′
′′ ′′ ′′ n ′′
j=1
n ′′
J′′(u ′′) = inf J′′(v′′), J′′(v′′) = ∑ a ′′i v′′i
v′′∈U′′
i =1
L'équivalence est considérée ici au sens suivant: partant d'un problème posé sous l'une des
trois formes précédentes, on peut toujours lui faire correspondre un problème posé sous l'une
quelconque des deux autres formes, de telle façon que la connaissance de l'ensemble des
solutions (même si il est vide au cas où la solution n'existe pas) du problème initial entraîne
celle de l'ensemble des solutions du nouveau problème, et inversement.
La forme (PL2) s'appelle forme canonique standard du problème de programmation linéaire.
Le passage de (PL1) à (PL2) se fait en introduisant des variables positives de sorte que toute
variable pouvant prendre des valeurs négatives puisse être remplacée par la différence de deux
variables positives.
Le passage de (PL2) à (PL3) se fait en introduisant de nouvelles variables positives appelées
variables d'écart qui permettent d'écrire les inégalités sous forme d'égalités.
Dans la suite nous omettrons, afin d'alléger les notations, les primes et les secondes en se
référant à l'un des trois problèmes précédents.
51
4. Résolution numérique d’un programme mathématique
L’algorithme du simplex permet de résoudre les programmes linéaires.
La commande linprog de Matlab permet de résoudre tout programme linéaire.
La commande fmincon de Matlab permet elle de résoudre des programmes non linéaires.
5. Exercices
J(u) = inf
v∈U
J(v) , J(v) = v1 − 3v 2 + 2v3
52
CHAPITRE 7:
Equations différentielles aux dérivées partielles;
schémas aux différences finis
1. Introduction
Considérons les équations différentielles aux dérivées partielles linéaires de la forme
53
Le classement précédent des équations différentielles aux dérivées partielles de type (7.1)
permet d’envisager des méthodes de résolution numérique qui s’adaptent davantage à la
classe considérée. Ainsi, si le problème est hyperbolique, on peut recourir à la vieille méthode
des caractéristiques, chose que l’on ne peut pas faire dans le cas d’une équation parabolique
ou elliptique. Aussi, si des schémas aux différences finis explicites sont envisagés pour
intégrer les équations différentielles aux dérivées partielles, les restrictions sur le pas de temps
qui sont dues à la condition de stabilité sont en général plus sévères pour les problèmes
paraboliques que pour les problèmes hyperboliques qui soufrent eux davantage de
l’amortissement numérique. Dans la suite, seules les équations scalaires de la diffusion et de
la chaleur stationnaire sont étudiées.
Certains problèmes qui sont définis par la donnée d'une équation de type (7.1) et des
conditions aux limites peuvent être bien posés dans la mesure où il existe une unique solution
qui varie continûment avec les valeurs spécifiées aux limites du domaine. A titre d'exemple, si
l'on considère l'équation (7.1) avec f ≤ 0 , le problème de Dirichlet (7.2) est bien posé.
2. Equation de diffusion
L'équation de diffusion la plus simple s’écrit
u t = bu xx (7.3)
t > 0 . Dans le cas particulier de (7.3), une solution unique existe. Elle est donnée sous forme
analytique par
(x − y) 2
1 +∞ −
u(t, x) =
4πbt
∫−∞
e 4bt
u 0 (y) dy (7.4)
La relation (7.4) exprime u(t, x) comme une sorte moyenne pondérée de u 0 (x) .
54
par (t n , x m ) = (n∆t, m∆x) pour (n, m) entiers. Les valeurs d'une fonction v définie sur le
réseau seront notées v nm = v(t n , x m ) . L'ensemble des points du réseau pour n fixé est appelé
niveau n. L'idée de base des schémas aux différences finis consiste à remplacer les dérivées
partielles par des différences finies. On peut ainsi poser
ou bien
La validité des formules (7.5) et (7.6) est justifiée par le fait que
Dans le cas de l’équation de diffusion (7.3), on peut définir plusieurs schémas aux différences
finis. Un exemple de tels schémas est donné par
v nm+1 − v nm v n − 2v mn + v mn −1
= b m +1 (7.8)
∆t ∆x 2
∆t 1
On peut démontrer que la stabilité de ce schéma exige que b ≤ et que le schéma est
∆x 2
2
d’ordre 2. Il s’agit là d’une condition sévère qui dans la pratique exige d’utiliser des pas de
temps extrêmement petits afin d’assurer la convergence. En tant qu’alternative au schéma
(7.8), on peut considérer le schéma implicite
55
Le schéma saute – mouton défini par
v nm+1 − v mn −1 v n − 2v nm + v nm −1
= b m +1 (7.10)
2∆t ∆x 2
∆t
est quant à lui instable pour toutes les valeurs de .
∆x 2
Un schéma intéressant construit par modification du schéma précédent, est le schéma de Du
Fort – Frankel suivant
5. Equation de la chaleur
∆u = u xx + u yy = f (x, y) (7.12)
∆u = 0 (7.13)
Afin de résoudre (7.12) ou bien (7.13), il faut préciser les conditions aux limites qui peuvent
être de deux types
∂u
= un sur ∂Ω Newman (7.15)
∂n
56
Dans le cas où l’on impose la condition de Newman sur tout ∂Ω , la solution de (7.12)
n’existe que si la donnée u n vérifie
∫ Ω
f dV = ∫ u n dS
∂Ω
(7.16)
1
∆h u =
h2
{u m +1, + u m−1, + u m,+1 + u m,−1 − 4u m, } = f m, (7.18)
4. Exercices
v nm+1 − v mn v n − 2v mn + v mn −1
= b m +1
∆t ∆x 2
proposé pour résoudre l'équation de diffusion u t = bu xx où b > 0 est stable sous la condition
∆t 1
b ≤ .
∆x 2
2
57