Vous êtes sur la page 1sur 58

FACULTE DES SCIENCES DE TETOUAN

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

[1] D. M. Young, R. T. Gregory "A survey of numerical mathematics", Volume I,

Dover Publications, New York, 1988.

[ 2] D. M. Young, R. T. Gregory "A survey of numerical mathematics", Volume II,

Dover Publications, New York, 1988.

[3] P. G. Ciarlet " Introduction à l'analyse numérique matricielle et à

l'optimisation", Dunod, Paris, 1998.

[ 4] P. G. Ciarlet, B. Miara, J. M. Thomas "Exercices d'analyse numérique

matricielle et d'optimisation avec solutions", 2ième édition, Masson, Paris, 1986.

[ 5] A. Magnus "Analyse numérique 1a et 2", Cours Université Catholique de

Louvain, 2005.

[6] M. Crouzeix, A.L. Mignot "Analyse numérique des équations différentielles",


Masson, Paris, 1984.

[7] M. Minoux "Programmation mathématique: théorie et algorithmes - Tome 1",


CNET-ENST, Collection Technique et Scientifique des Télécommunications,
Dunod, paris, 1983.

[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

exp(−745) = 4.9407 × 10-324 )

(3) comment résoudre automatiquement l'équation du second degré ax 2 + bx + c = 0 ?

2. Précision numérique d'un algorithme


L'un des problèmes majeurs auxquels le numéricien est confronté est le contrôle de la
précision des résultats des calculs effectués. Il convient pour cela d'utiliser des algorithmes
numériques fiables et économiques.
Le numéricien ne peut pas ignorer l'aspect mathématique qui recouvre le choix d'un
algorithme numérique afin de résoudre un problème donné.
Considérons à titre d'exemple le problème de l'évaluation de la fonction f (x) = tan x − sin x
en x = 0.1250 . Supposons que nous souhaitions obtenir un résultat à 4 chiffres significatifs,
ce qui signifie une précision relative de 1/10000 . Deux méthodes aux moins peuvent être
envisagées.

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.

Méthode 2: Nous développons tan x et sin x en série de Taylor. On obtient ainsi


1 2 17 7 1 1 5 1
tan x = x + x 3 + x 5 + x + et sin x = x − x 3 + x − x 7 + ; d'où
3 15 315 6 120 5040
1 3 1 5 13 7
f (x) = x + x + x + ; si nous utilisons cette formulation tronquée aux trois
2 8 240
premiers termes, on obtient f (0.1250) = 0.0009804 et le résultat est précis à 4 chiffres
significatifs.

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

Supposons que ε = 10−10 . Le calcul analytique nous conduit à l'unique solution: x = 1 et


y = 0 . Si la perturbation ε est nulle, on obtient une infinité de solutions: x = 1 − k / 3 et

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

bien conditionné si D* proche de D entraîne F(D* ) proche de F(D).

Soit F* un algorithme numérique permettant de résoudre le problème de manière approchée.


Alors par définition F* est un algorithme stable s'il existe une perturbation D* de D telle que
F* (D) soit proche de F(D* ) .

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.

4. Problèmes types qui intéressent le numéricien


Tout d'abord un numéricien est un mathématicien qui développe, analyse et évalue des
algorithmes numériques destinés à obtenir des solutions numériques approchées aux
problèmes mathématiques. Beaucoup de ces problèmes apparaissent dans le domaine de la
physique et de l'ingénierie.
Le numéricien est souvent conduit à développer de nouveaux résultats mathématiques et les
adapter afin de les utiliser de manière effective dans le cadre de la programmation sur
ordinateur. L'évaluation des algorithmes est conduite par des approches mathématiques et fait
appel aussi à des essais numériques (par exemple évaluation de la durée de calcul).
L'évaluation des algorithmes est souvent effectuée par résolution de problèmes tests sur
ordinateur.
Parmi les problèmes types que recouvre le domaine de l'analyse numérique, on peut citer les
exemples suivants:
tan x − sin x
(1) évaluation des fonctions f (x) = ;
1 + x3
(2) résolution d'équation ln x + 2 − x = 0 ;
(3) interpolation d'une fonction; f(x) est définie par exemple pour x = 0, 0.1,1 , trouver une
approximation par exemple de f (0.175) ;
(4) problème de dérivation numérique;
(5) problème d'intégration numérique;
dy
(6) équation différentielle aux valeurs initiales = x + y 2 , y(0) = 1 , x ∈ [ 0, 2] ;
dx
(7) résolution des systèmes linéaires AX = B où A et B sont donnés;
(8) problème aux valeurs propres AX = λX où A est donné et λ est un scalaire;

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

on calcule les approximations successives jusqu'à l'ordre n: x1 , ..., x n , à l'aide d'un

algorithme dont la forme générale est x i +1 = ϕ(x i ) , i = 0,1,...


Le rôle du numéricien qui travaille dans le domaine des méthodes itératives est d'étudier la
convergence, de déterminer le taux de convergence et d'établir des critères afin de dire quand
est-ce qu'il faut s'arrêter d'itérer pour obtenir une approximation suffisante de la solution.
En tant qu'exemple, considérons le problème de l'extraction de la racine carrée d'un réel
N > 0 . L'algorithme (habituel) étant décrit par les deux relations

 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.

6. L'origine des arrondis numériques

6.1 Arrondis dus au mode de représentation des nombres


Les ordinateurs utilisent la représentation des réels sous forme binaire discrète. Le mode le
plus utilisé s'appelle représentation en virgule flottante (floating-point). Il s'ensuit que le
nombre de représentations possibles est fini (même s'il est en général grand). Donc tous les
réels ne sont pas représentés et lorsqu'ils sont représentables, ils le sont avec des erreurs
d'arrondis (exemple 1/3). Ce genre d'erreurs se trouvent en bas de l'échelle des erreurs qui
accompagnent tout calcul numérique. Elles sont liées directement à la technologie de la
machine, à sa capacité et au mode de représentation ainsi qu'au nombre de digits retenus dans
cette représentation.
Pour fixer les idées, nous considérons la représentation en base binaire des réels x non nuls
sous la forme suivante x = a.2 b où a et b sont des entiers écrits en base binaire. La
représentation de 0 est obtenue avec a = b = 0 . Cette représentation est analogue à l'écriture
d'un réel avec des puissances de 10.
Si nous considérons le cas de la machine (fictive) appelée C muni de la représentation en
virgule flottante pour laquelle 48 digits sont retenus pour a, 10 digits pour b et deux autres
digits pour les signes de a et de b (nous utilisons donc au total 48 + 10 + 2 = 60 digits), les
représentations binaires de a et b sont:

a = s1a 47 .....a1a 0 s1 = 0 si a > 0 et s1 = 1 si a < 0

b = s 2 b9 .....b1b 0 s 2 = 1 si b > 0 et s 2 = 0 si b < 0

a 47 .....a1a 0 s'appelle la mantisse et s1s 2 b9 .....b1b 0 s'appelle l'exposant.

8
Le mot de longueur égale à 60 qui représente x s'écrit:

s1s 2 b9 .....b1b 0 a 47 .....a1a 0


  
10 bits 48 bits

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 .

Si x > 0 , 2 47 ≤ a ≤ 248 − 1 et −1023 ≤ b ≤ 1023 ( 1023 = 210 − 1 ). Donc le nombre possible de


représentations normalisées en mode virgule flottante correspond à:
2−1023.2 47 ≤ x ≤ 21023 (248 − 1) . Le domaine couvert, en base décimale, par cette représentation

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

la règle du complémentaire sous la forme: 110000101100


  01011....1
  . La représentation
10 bits 48 bits

binaire de φ2 (1/10) est infinie et périodique. Pour la trouver il suffit de pratiquer la division

en binaire de 1 par 1010. On trouve alors: φ2 (1/10) = 0.0001100110011001100... Des arrondis

numériques sont nécessaires afin de se contenter de la représentation de φ2 (1/10) et on écrit


−51
φ2 (1/10) ≅ 11001100....12
   . Comme φ2 (−51) = 0111001100 , le mot qui représente 1/10 est:
48 bits

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é.

6.2 Arrondis dus aux opérations arithmétiques élémentaires


On analyse ici seulement l'opération d'addition telle qu'elle peut être réalisée avec un
ordinateur adoptant le mode de représentation en virgule flottante. Les autres opérations
élémentaires peuvent être traitées de manière identique. Soient deux nombres: x1 = a1.2b1 et

x 2 = a 2 .2b2 avec 247 ≤ a i ≤ 248 − 1 et bi ≤ 210 − 1 . Le résultat de l'addition peut ne pas

appartenir au domaine couvert par la représentation. Dans ce cas on a un "dépassement" par le


haut ou par le bas (overflow ou underlow). Pour que le résultat de l'addition soit représentable,
il suffit que x1 et x 2 soient dans l'intervalle 10 −279 ,10279  . Pour montrer comment l’addition

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;

- a 2 est ensuite décalé de ( b1 − b 2 ) vers la droite;

- 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

Le résultat de l'addition est sujet à un arrondi numérique systématique. Si l'on note


(x1 + x 2 ) machine l'opération d'addition effectuée par la machine (résultat de l'algorithme

précédent), on a: (x1 + x 2 ) machine = (x1 + x 2 )(1 + εS ) avec εS < 2−48 . L'erreur absolue peut être

importante comme par exemple si x1 = 247 et x 2 = −2 −1 (248 − 1) .


En tant qu'exemple de l'effet des arrondis sur le résultat considérons l'évaluation de
l'expression suivante P(x) = a 0 x 2 + a1x + a 2 . La procédure de calcul optimale est celle qui
consiste à procéder de manière récursive:

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 .

6.3 Les arrondis dus aux troncatures des fonctions élémentaires


Vu les arrondis précédents, il convient toujours d’essayer d’obtenir les fonctions élémentaires
avec un minimum d'opérations. On cherchera à approcher souvent la fonction par un
polynôme ou une fraction rationnelle.
Ainsi pour évaluer la fonction arct an x , on peut utiliser la série de Taylor-Maclaurin:

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 .

(1.5) Ecrire un programme permettant de calculer de manière récursive:


P(x) = a 0 x n + a1x n −1 + ... + a n

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 +* ;

- a n x n + a n −1x n −1 + ... + a1x + a 0 = 0 x ∈ R, a i =0,1,...,n réels donnés ;

 x − 3xy + 1 = 0
3 2

- 2 (x, y) ∈ R 2 .
3x y − y = 0
3

La forme générale de ces équations est:

F(X) = 0 (2.1)

où F est une fonction vectorielle, non linéaire en général, du vecteur X ∈ R n . n est la


dimension de l'espace qui contient les inconnues du problème. Nous supposons que l'espace
vectoriel qui contient F(X) est également de dimension n. Le problème est donc dans le cas
général un système de n équations non linéaires à n inconnues et la relation (2.1) se réécrit

f1 (x1 ,..., x n ) = 0



F(X) = 0 ⇔  (2.2)
f (x ,..., x ) = 0
n 1 n

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

en x * , alors la multiplicité de x * est au moins m si et seulement si

f (x * ) = f ′(x * ) = f ′′(x * ) = .... = f (m −1) (x * ) = 0 .

La démonstration de ce résultat s'appuie sur le théorème de Taylor.

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

3.1 Principe de la méthode


Soit f une fonction continue vérifiant pour a et b donnés avec a < b : f (a)f (b) < 0 . D'après le

théorème de la valeur intermédiaire, il existe x* ∈ [ a, b] tel que: f (x * ) = 0 . On cherche à

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

calculons la première estimation de x * par z 0 = (a + b) / 2 .

Si f (z 0 ) = 0 , le processus s'arrête et x * = z 0 . Sinon, posons

r1 = r0 , s1 = z 0 si f (z 0 )f (r0 ) < 0


 (2.5)
r1 = z 0 , s1 = s 0 si f (z 0 )f (r0 ) > 0

En général, étant donnés rn et s n tels que f (rn )f (s n ) < 0 , on pose z n = (rn + s n ) / 2 . Si

f (z n ) = 0 , le processus s'arrête et x * = z n . Sinon, soit

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.

3.2 Convergence de la méthode


Pour établir la convergence de la méthode de dichotomie, on utilise le théorème des
"gendarmes". On vérifie alors que rn < z n < s n , rn ↑ , s n ↓ et lim rn − s n = 0 . Puisque par
n →+∞

ailleurs on a: z n − x * = (b − a) / 2 n +1 , on peut estimer le nombre d'itérations nécessaires pour

atteindre la précision à ε près. On obtient ainsi

 b−a 
ln  
ε 
n≥  −1 (2.7)
ln 2

Pour f (x) = x 3 − 2 , a = 1 , b = 2 et ε = 10−6 , on trouve n ≥ 19 .

4. La méthode de la position fausse


Cette méthode est similaire à la méthode de dichotomie à l'exception du fait qu'à chaque
itération on pose

rn f (s n ) − s n f (rn )
zn = (2.8)
f (s n ) − f (rn )

La formule précédente résulte de la linéarisation de f sur l'intervalle [ rn ,s n ] qui fournit

l'estimation de x * par z n . La linéarisation permet de définir la fonction f n (x) sur [ rn ,s n ] par

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 ,

alors le théorème de Taylor permet d'écrire pour x 0 appartenant au voisinage de x *

f (x * ) = f (x 0 ) + (x * − x 0 )f ′(x 0 ) + ... (2.11)

Ce qui donne l'approximation au premier ordre

f (x* ) ≅ f (x* ) = f (x 0 ) + (x * − x 0 )f ′(x 0 ) (2.13)

En posant f (x * ) = 0 et en supposant que f ′(x 0 ) ≠ 0 , il vient une estimation de x * définie par

f (x 0 )
x1 = x 0 − (2.14)
f ′(x 0 )

D'où le schéma itératif de Newton pour n ≥ 1

f (x n )
x n +1 = x n − (2.15)
f ′(x n )

On peut établir rapidement la convergence lorsque f est de classe C2 au voisinage de la


f (x)
solution x * lorsqu'elle est unique. On pose ainsi ϕ(x) = x − , ce qui donne
f ′(x)
f (x)f ′′(x)
ϕ′(x) = . On peut trouver alors un voisinage de x * tel que: f ′(x) ≥ ε ,
[ f ′(x)]
2

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

f1 (x1 , x 2 ,..., x n ) = 0


f (x , x ,..., x ) = 0
2 1 2 n
 (2.16)

f n (x1 , x 2 ,..., x n ) = 0

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.

7. La méthode de Newton généralisée

Pour x n et y n donnés, on détermine x n +1 et y n +1 de sorte qu'au premier ordre en

∆ n x = x n +1 − x n et ∆ n y = y n +1 − y n , on ait: g(x n +1 , y n +1 ) = h(x n +1 , y n +1 ) = 0 . Ainsi la formule de


Taylor permet d’écrire

g(x n +1 , y n +1 ) = g(x n , y n ) + ∆ n x g ,x (x n , y n ) + ∆ n y g ,y (x n , y n ) + ...

h(x n +1 , y n +1 ) = h(x n , y n ) + ∆ n x h ,x (x n , y n ) + ∆ n y h ,y (x n , y n ) + ... (2.18)

En négligeant les termes d’ordre supérieur, x n +1 et y n +1 s’obtiennent sous la forme

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 ) 

le jacobien des fonctions f et g.

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

f1 (x1(k +1) , x (k


2 ,..., x n ) = 0
) (k )
→ x1(k +1)
 (k +1) (k +1)
f 2 (x1 , x 2 ,..., x n ) = 0 → x 2
(k ) (k )

 (2.20)

f (x (k ) , x (k ) ,..., x (k +1) ) = 0 → x (k +1)
n 1 2 n n

On montre que cette méthode converge si l'initialisation x1(0) , x (0) (0)


2 ,..., x n est choisie au
voisinage de la solution et si le rayon spectral de la matrice jacobienne est inférieur à l'unité.

9. Méthode de Gauss Seidel

f1 (x1(k +1) , x (k


2 ,..., x n ) = 0
) (k )
→ x1(k +1)
 (k +1) (k +1) +1)
f 2 (x1 , x 2 ,..., x n ) = 0 → x (k
(k )
2
 (2.21)

f (x (k +1) , x (k +1) ,..., 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)

Cette méthode permet d'accélérer la convergence par un choix commode de ω .

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 ;

x 5 − 6x 4 + 15x 3 − 20x 2 + 14x − 4 = 0 x 0 = 0.8 .

(2.6) Appliquer la méthode de Newton pour résoudre l'équation complexe:


f (z) = sin z − z + 2 = 0 ; z 0 = −1 + i . On se rappellera des deux formules:

sin(x + iy) = sin x ch y + i cos x sh y


cos(x + iy) = cos x ch y − isin x sh y

(2.7) Trouver les racines complexes de z 3 − 2z + 2 = 0 en posant z = x + iy et en résolvant par la


méthode de Newton, le système:

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

fonction linéaire F(x) telle que: f (a) = F(a) et f (b) = F(b) .

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

par exemple de classe C2 . On démontre ainsi en utilisant le théorème de Taylor que

(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

f (x) − FN (x) = w dk (x) [ f (x) − f (x k )] + w gk +1 (x) [ f (x) − f (x k +1 )]

On montre alors puisque f est uniformément continue sur [ a, b] que lim FN (x) = f (x)
N →+∞

uniformément sur [ a, b ] , c'est-à-dire que lim  max f (x) − FN (x)  = 0 .


N →+∞  [ a,b ] 

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

existe un unique polynôme P de degré ≤ n tel que: P(x i ) = yi 0≤i≤n.


Pour la démonstration de ce résultat, il suffit de considérer le polynôme

 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

x 0 , x1 ,..., x n , il existe un unique polynôme de degré ≤ n tel que: Fn (x i ) = f (x i ) 0 ≤ i ≤ n .

Le polynôme Fn (x) s'appelle interpolation de Lagrange de f (x) sur [ a, b ]

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

Si f ∈ Cn +1 [ x 0 , x n ] et si x 0 , x1 ,..., x n sont des réels distincts, uniformément répartis, c’est-à-

dire vérifiant : x1 − x 0 = x 2 − x1 = ... = x n − x n −1 = h (h est le pas de la subdivision), on


démontre en utilisant la formule de Taylor et l'unicité du polynôme de Lagrange que

(x − x 0 )(x − x1 )...(x − x n ) (n +1)


∀x ∈ [ x 0 , x n ] : f (x) − Fn (x) = f (c) où c ∈ [ x 0 , x n ]
(n + 1)!

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.

4. Interpolation avec des intervalles de longueur uniforme


Lorsque les points d'interpolations sont équidistants, le processus de calcul manuel de
l'interpolation de Lagrange peut être conduit de manière très efficace en utilisant la notion de
table des différences.

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))

Lorsque par exemple n = 4 on peut construire la table suivante:

x f (x) ∆f (x) ∆ 2 f (x) ∆ 3f (x) ∆ 4 f (x)


x0 f (x 0 )
∆f (x 0 )
x1 f (x1 ) ∆ 2 f (x 0 )
∆f (x1 ) ∆ 3f (x 0 )
x2 f (x 2 ) ∆ 2 f (x1 ) ∆ 4 f (x 0 )
∆f (x 2 ) ∆ 3f (x1 )
x3 f (x 3 ) ∆ 2 f (x 2 )
∆f (x 3 )
x4 f (x 4 )

A titre d’exemple si f (x) = x 3 et x 0 = 0 , x1 = 1 , x 2 = 2 , x 3 = 3 , x 4 = 4 , on obtient

x f (x) ∆f (x) ∆ 2 f (x) ∆ 3f (x) ∆ 4 f (x)


x0 0
1
x1 1 6
7 6
x2 8 12 0
19 6
x3 27 18
37
x4 64

L'opérateur des différences admet les deux propriétés remarquables suivantes:


* ∆ est linéaire;

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:

Fn (x) = f (x 0 ) + Q1 (u)∆f (x 0 ) + Q2 (u)∆ 2 f (x 0 ) + ... + Q n (u)∆ n f (x 0 )

avec

x − x0 u(u − 1)...(u − j + 1)
u= et Q j (u) =
h j!

Pour la démonstration de ce théorème, il suffit de remarquer que les polynômes


Q j (u) 0 ≤ j ≤ n avec Q0 (x) = 1 forment une base. La projection de Fn sur cette base est les

propriétés de l'opérateur ∆ permettent de trouver le résultat.


Le calcul numérique de Fn (x) se fait par la formule récursive

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

D'autres variantes de la formule de Gregory Newton existent: formule de Stirling, formule de


Bessel. Ces formules s'expriment en fonction de l'opérateur de différence centré

 h  h
δf (x) = f  x +  − f  x − 
 2  2

et de ses itérés successifs.

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

f (x) en certains points d'interpolation. En l’absence de formules générales comme dans le


cas de l’interpolation de Lagrange, le calcul direct est souvent nécessaire. La procédure
appelée méthode des coefficients indéterminés est décrite à travers l'exemple suivant où il faut

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

6. Quelques insuffisances de l'interpolation polynomiale; interpolation spline


Pour certaines fonctions f (x) les interpolations polynomiales de type Lagrange ne sont pas
satisfaisantes comme le montre l'exemple suivant:

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 →+∞

Runge. Il rappelle le phénomène de Gibbs avec les séries de Fourier.


Dans le cas précédent, on démontre que le processus d'interpolation converge sur l'intervalle
x ∈ [ −3.63,3.63] et diverge sur [ −α, α ] si α > 3.63 .

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)

Notons M k = Fk′′(x k− ) = Fk′′+1 (x k+ ) et posons: h k = x k − x k −1 et y k = f (x k ) , alors (3.2) permet de


montrer que

 (x k − x) (x k − x)2 − h 2k    (x − x k −1 ) (x − x k −1 ) 2 − h 2k  


Fk (x) = M k −1     + Mk   
 6h k   6h k 
1 1
+ y k −1 (x k − x) + y k (x − x k −1 )
hk hk

En différentiant cette quantité et en exprimant Fk′ (x k− ) = Fk′+1 (x k+ ) , on obtient le système

matriciel tridiagonal d'ordre (n − 1)

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.

7. Approximation polynomiale au sens des moindres carrés


On considère les deux problèmes suivants:

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

où Qn est un polynôme de degré ≤ n. De plus Pn est caractérisé par:

f − Pn , Q n − Pn ≤ 0 ∀Qn polynôme de degré ≤ n , et f − Pn , Q n = 0 ∀Q n polynôme de

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

Soit sous forme matricielle

ΦC=F (3.3)

où Φ ij = ϕi , ϕ j est une matrice dite de Gram.

Φ 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

La matrice Φ ainsi obtenue est diagonale ou quasi-diagonale (à cause des arrondis


numériques). On vérifie alors que les ϕk sont proportionnels aux polynômes de Legendre.

8. Approximation par une fraction rationnelle


Souvent dans la pratique, l'approximation polynomiale n'est pas satisfaisante. Une meilleure
précision est obtenue lorsqu'on considère l'approximation par une fraction rationnelle.
L'approximation de ce type consiste à trouver une fraction

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!

où l’on aura posé le terme constant de Qk (x) égal à 1.

En tant qu'exemple considérons f (x) = e x , α=0 et m = k = 1 , on trouve alors:


P1 (x) = a 0 x + a1 et Q1 (x) = b 0 x + 1 . D'où

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:

x 0.4 0.5 0.6


f(x) -0.91629 -0.69315 -0.51083

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 .

(3.5) Trouver le polynôme de degré ≤ 2 qui constitue la meilleure approximation de e x sur

[ 0,1] au sens de la norme L2.

(3.6) Construire la fonction approximante rationnelle de Padé de la fonction: f (x) = e x , avec


m = k = 2 et α = 0 .

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

où A est la matrice des coefficients du système, matrice carrée d'ordre n × n et B la matrice


(vecteur) second membre d'ordre n × 1 .
On appelle matrice augmentée du système la matrice d'ordre n × (n + 1) , obtenue en
adjoignant à A la colonne B, soit en notation explicite

 a11  a1n b1 
    
[ A, B] =    
 
a n1  a nn bn 

On s'intéresse seulement au cas où la solution est unique. Dans ce cas rg(A) = rg [ A, B] = n et

∆ = det(A) ≠ 0 , et la matrice est régulière(non singulière).


L'unique solution du système est donnée par la règle de Cramer qui est un théorème. Ainsi si
l'on note

 a11  a1, j−1 b1 a1, j+1  a1n 


a  a 2, j−1 b2 a 2, j+1  a 2n 
∆ j = det 
21
j = 1, 2,..., n
      
 
a n1  a n, j−1 bn a n, j+1  a nn 

où la jème colonne de A a été remplacée par B, on obtient

∆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 .

2. Méthodes pratiques pour résoudre les systèmes d'équations linéaires


On s'intéresse ici aux méthodes pratiques pour résoudre les systèmes linéaires. La solution qui
correspond à l'application de la règle de Cramer n'est pas pratique. Dans cette règle, il faut
calculer (n + 1) déterminants d'ordre n. Le calcul d'un déterminant exige en général un
nombre de multiplications qui est égal à

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.

2.1 Procédure d'élimination de Gauss dite aussi triangularisation du système


Si a11 ≠ 0 , on appelle la première équation du système équation pivot et le terme a11 est le
pivot. On peut alors procéder au premier pas de la méthode de Gauss en éliminant l'inconnue
x1 de la deuxième jusqu'à la nième équation en effectuant les opérations suivantes:

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

Dans ces expressions, a ij(1) = a ij et bi(1) = bi pour tout i, j ∈ {1, 2,..., n} .

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 

où I n −1 est l'identité d'ordre (n − 1) .

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) .

rr ≠ 0 , on peut pratique directement l'élimination de Gauss à l'ordre r de la façon suivante


Si a (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

A (n ) = MA (1) = M (n −1) M (n − 2) ...M (2) M (1) A (1) et B(n ) = MB(1)

Les deux systèmes admettent donc la même solution est le même déterminant:

det A (1) = det A (n ) = a11


(1) (2)
a 22 ...a (n
nn
)

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.

En fin de compte, la méthode de Gauss nécessite de l'ordre de 2n 3 / 3 additions et


multiplications et n 2 / 2 divisions. On peut se rendre compte alors de l'avantage procuré par
cette méthode si on la compare avec la règle de Cramer.

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

Le calcul de l’inverse de la matrice de Hilbert H ne permet pas d’inverser HX = B avec une


précision suffisante, en effet le calcul de l’erreur commise, c'est-à-dire HX − B donne :

HX-B=[0.0321 0.0327 0.0328 0.0326 0.0322 0.0317 0.0311 0.0305 0.0298


0.0292 0.0285 0.0278 0.0272 0.0265 0.0259 0.0253 0.0247 0.0242
0.0236 0.0231]t

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 ;

B → B + ε B , alors la solution X est perturbée et devient X + ε X . Le système perturbé s'écrit


alors

(A + ε A )(X + ε X ) = B + ε B

4.1 Norme matricielle


Définissons la norme suivante sur l'espace des matrices carrées d'ordre n × n

α 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

spectrale de A, S(A) , est donc borné par toute norme matricielle de A.

4.2 Analyse des perturbations


On démontre le théorème suivant:

α α
ε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

1.00 0.99   x1  1.99 


0.99 0.98   x  = 1.97 
  2  

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)  .

Il est possible de montrer que

 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 

En posant: M −1 = L (lower) et A (n ) = U (upper), le résultat précédent montre que A = LU


avec L une matrice triangulaire inférieure et U une triangulaire supérieure.
On montre par ailleurs que cette décomposition est unique si l'on fixe la diagonale de L ou
celle de U.
Si A est réelle symétrique et définie positive, alors U = Lt et A = U t U , c'est la décomposition
de Cholesky.

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.

5.2 La factorisation de Cholesky


On démontre que si A est symétrique définie positive, il existe au moins une matrice
triangulaire supérieure B telle que A = Bt B (par exemple B = U d'après la factorisation LU).
De plus, on peut imposer que les éléments diagonaux de la matrice B soient >0, et la
factorisation A = Bt B associée est alors unique.
La construction de B se fait par l'algorithme suivant qui se justifie par le fait que:
n min(i, j)
a ij = (Bt B)ij = ∑ b ki b kj = ∑ b ki b kj , 1 ≤ i, j ≤ n . D'où
k =1 k =1

- calcul de la première ligne

b11 = a11 , b12 = a12 / b11 ,..., b1n = a1n / b11 ;

- calcul de la ième ligne

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

Le décompte des opérations avec la méthode de Cholesky conduit à n 3 / 3 opérations. Ce qui


présente un avantage par rapport à la méthode de Gauss.

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.

La matrice des itérations C = M −1 N = I − M −1A est telle que (I − C) soit inversible.


α
La convergence de la méthode itérative est établie si C α
< 1 pour au moins une norme

matricielle, ce qui est équivalent à ρ(C) < 1 où ρ désigne le rayon spectral.

6.1 Méthode de Jacobi


Supposons que a ii ≠ 0 , 1 ≤ i ≤ n . Considérons la décomposition par points de la matrice A:

A = D − E − F avec Dij = a ijδij , E ij = −a ij si i > j , 0 autrement, Fij = −a ij si i < j , 0 autrement.

La matrice de cette méthode itérative X k +1 = JX k + D −1B est J = C = D −1 (E + F) = I − D −1A et


s'appelle la matrice de Jacobi par points.

6.2 Méthode de Gauss Seidel


Avec la décomposition précédente (Jacobi) de la matrice A, la matrice de la méthode itérative
de Gauss Seidel est: GS = C = (D − E) −1 F . D − E est bien inversible car a ii ≠ 0 i ∈ [1, n ] . Les

itérations s'écrivent: X k +1 = GSX k + (D − E)−1 B . La mise en oeuvre numérique de cette

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.

6.3 Méthode de relaxation


Il s'agit d'une généralisation de Gauss Seidel où l'on introduit un paramètre de relaxation
ω ≠ 0 . La matrice itérative s'écrit dans ce cas: R ω = (D − ωE)−1 {(1 − ω)D + ωF} , ce qui est

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:

a11x1k +1 = a11x1k − ω ( a11x1k + a12 x k2 + ... + a1n x kn − b1 )



a 22 x 2k +1 = a 22 x 2k − ω ( a 21x1k +1 + a 22 x 2k + ... + a 2n x nk − b 2 )



a nn x n = a nn x n − ω ( a n1x1 + ... + a n,n −1x n −1 + a nn x n − b n )
k +1 k k +1 k +1 k

7. Exercices

(4.1) Calculer les solutions des systèmes linéaires

 240 −319.5  x   3   240 −319   x + ∆x   3 


 −179.5 =  −179 240   y + ∆y  =  4 
 240   y   4      

et faire l'analyse numérique des résultats.

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.

(4.3) En utilisant la commande chol de Matlab, effectuer la factorisation de Cholesky de la


matrice

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 .

Partant de A1 = A , la méthode de Jacobi consiste à construire une suite (Pk ) k ≥1 de matrices


orthogonales élémentaires en s'arrangeant pour que la suite de matrices (encore symétriques)
A k +1 = Pkt A k Pk = (P1P2 ...Pk ) t A(P1P2 ...Pk ) , k ≥ 1 , converge vers la matrice diagonale D(λ i ) , à
une permutation des indices près.
Le principe de chaque transformation A k +1 = Pkt A k Pk k ≥ 1 est d'annuler deux éléments hors

diagonaux en position symétrique, soit (A k )pq et (A k )qp de la matrice A k . Posons

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

biq = bqi si i ≠ p,q

b pp = a pp cos 2 θ + a qq sin 2 θ − a pq sin(2θ)

bqq = a pp sin 2 θ + a qq cos 2 θ + a pq sin(2θ)

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

On distingue trois stratégies pour le choix du couple (p, q) :

(1) Méthode de Jacobi classique


On choisit l'un des couples pour lesquels a kpq = max a ijk . A cette opération est associé un
i≠ j

coût de calcul qui n'est pas négligeable.

(2) Méthode de Jacobi cyclique


On balaye systématiquement tous les couples hors diagonaux (p, q) dans l'ordre suivant:
(1, 2) ; (1,3) ; ...; (1, n) ; (2,3) ;...; (2, n) ;... (n − 1, n) . Naturellement si l'un des éléments balayés
est déjà nul, on passe au suivant. Ceci équivaut au choix θk = 0 et Pk = I .

(3) Méthode de Jacobi avec seuil


On procède comme dans Jacobi cyclique mais on saute les éléments hors diagonaux de
module inférieur à un certain seuil, qui diminue avec chaque balayage.

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

Trouver u tel que



(P)  u ∈ U = {v ∈ R n ; ϕi (v) ≤ 0 , 1 ≤ i ≤ m}

 J(u) = inf
v∈U
J(v)

Le vecteur u ∈ R n admet pour composantes u1 , u 2 ,..., u n qui représentent les inconnues du


problème. La fonction J est appelée la fonction objectif (on dit aussi parfois: fonction coût) et
l'ensemble des conditions ϕi (v) ≤ 0 {i = 1, 2,..., m} sont les contraintes du problème.

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.

2. Principales classes de problèmes en programmation mathématique

2.1 Programmation linéaire


Un problème de programmation linéaire consiste à minimiser une fonction linéaire sous des
contraintes linéaires; il s'agit donc d'un programme mathématique de la forme

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.

2.2 Programmes convexes


On dit qu'un problème de programmation mathématique est convexe s'il consiste à minimiser
une fonction convexe sur un domaine convexe. Ceci revient à supposer que J et
ϕi , {i = 1,..., n} sont toutes des fonctions convexes.

On démontre dans ce cas en particulier que tout optimum local est un optimum global.

2.3 Programmes non linéaires


C'est le cas général qui comprend en particulier le cas intéressant où la fonctionnelle J est
quadratique.

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.

3.1 Formes canoniques d'un problème de programmation linéaire


On démontre que les trois formes suivantes du problème de programmation linéaire sont
équivalentes.

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

(6.1) Résoudre en utilisant le simplexe le programme de programmation linéaire suivant:


Trouver u tel que

u ∈ U = {v ∈ R + ; 3v1 − v 2 + 2v3 ≤ 7, − 2v1 + 4v 2 ≤ 12, − 4v1 + 3v 2 + 8v3 ≤ 10}
3


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

L(u) = au xx + 2bu xy + cu yy + du x + eu y + fu = g (7.1)

où l'indice représente la différentiation par rapport à la variable considérée et a, b, c, d, e, f et g


sont des fonctions données supposées continues sur un domaine Ω du plan (x, y) .
Le problème aux limites type qui peut être défini avec (7.1) peut se formuler sous la forme du
problème de Dirichlet suivant

Trouver u ∈ C2 (Ω) tel que



L(u) = g sur Ω (7.2)
u(x, y) = u (x, y) sur ∂Ω
 d

où u d est une fonction donnée et ∂Ω la frontière du domaine Ω .


Les équations différentielles aux dérivées partielles linéaires (7.1) peuvent être classées de
type elliptique, hyperbolique ou parabolique selon le comportement des coefficients a, b et c.
L'équation est dite:
- elliptique si b 2 − ac < 0 dans Ω
- hyperbolique si b 2 − ac > 0 dans Ω
- parabolique si b 2 − ac = 0 dans Ω
Si le discriminant b 2 − ac change de signe sur Ω , on dit que l'équation est mixte. Des
exemples simples d'équations de type (7.1) sont donnés par:
u xx + u yy = 0 équation de Laplace (elliptique)

u xx − u yy = 0 équation d'ondes (hyperbolique)

u xx − u y = 0 équation de diffusion (parabolique)

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)

où b est une constante positive.


On considère le problème de Cauchy où u(0, x) = u 0 (x) et on désire calculer u(t, x) pour

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) .

3. Schémas aux différences finis


On considère dans la suite le cas scalaire défini par l'équation (7.3). On se donne un réseau de
point dans le plan espace - temps (t, x) . Soit ∆t et ∆x des nombres positifs, le réseau défini

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

∂u u ( (n + 1)∆t, m∆x ) − u ( n∆t, m∆x )


(n∆t, m∆x) ≅ (7.5)
∂t ∆t

ou bien

∂u u ( (n + 1)∆t, m∆x ) − u ( (n − 1)∆t, m∆x )


(n∆t, m∆x) ≅ (7.6)
∂t 2∆t

La validité des formules (7.5) et (7.6) est justifiée par le fait que

∂u u(t + ε, x) − u(t, x) u(t + ε, x) − u(t − ε, x)


(t, x) = lim = lim (7.7)
∂t ε→ 0 ε ε→ 0 2ε

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

v nm+1 − v mn v n +1 − 2v nm+1 + v mn +−11


= b m +1 (7.9)
∆t ∆x 2

qui est inconditionnellement stable.

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

v nm+1 − v mn −1 v n − (v nm+1 + v nm−1 ) + v nm −1


= b m +1 (7.11)
2∆t ∆x 2

Ce schéma d’ordre 2 est inconditionnellement stable.

5. Equation de la chaleur

L’équation de la chaleur stationnaire (équation qui modélise la distribution stationnaire de la


température) s’écrit

∆u = u xx + u yy = f (x, y) (7.12)

où f (x, y) est le terme source


Un cas particulier de cette équation est l’équation de Laplace

∆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 = ud sur ∂Ω Dirichlet (7.14)

∂u
= un sur ∂Ω Newman (7.15)
∂n

où ∂Ω est la frontière du domaine Ω .

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)

qui définit la condition d’intégrabilité (conservation de la quantité de chaleur dans le


domaine).
L’intégration numérique de l'équation de la chaleur stationnaire peut être envisagée grâce au
schéma aux différences finies défini par

u m +1, − 2u m, + u m −1, u m, +1 − 2u m, + u m, −1


+ = f m, (7.17)
∆x 2
∆y 2

Ce schéma est de second ordre.


Si de plus on choisit ∆y = ∆x = h sur un domaine rectangulaire Ω , l'équation (7.17) se réécrit

1
∆h u =
h2
{u m +1, + u m−1, + u m,+1 + u m,−1 − 4u m, } = f m, (7.18)

4. Exercices

(7.1) Démontrer que le schéma

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

Vous aimerez peut-être aussi