Académique Documents
Professionnel Documents
Culture Documents
Analyse Numérique PDF
Analyse Numérique PDF
Analyse Numrique
Paola GOATIN
3 3 4
2 Systmes linaires.
5 5 6 7 9 10 10 11 12 13 13 14 15 15
2.2
2.3 3.1 3.2 3.3 3.4 3.5 3.6 3.7 4.1 4.2 4.3 4.4 4.5
17
17 17 17 18 18 18 19 21 22
4 Approximation polynmiale.
23
23 24 25 26 27
5 Intgration numrique.
5.1 5.2 6.1 6.2 6.3 6.4
Exemples. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Evaluation de l'erreur. Noyau de Peano. . . . . . . . . . . . . . . Drive numrique. . . . . . . . . . . . . . Mthodes d'Euler. . . . . . . . . . . . . . Etude gnrale des mthodes un pas. . . 6.3.1 Consistance, stabilit, convergence. Mthodes de Runge-Kutta d'ordre 2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
28
28 30
6 Equations direntielles.
31
31 32 33 33 34
Rfrences
Version provisoire. Merci de me signaler les erreurs !
36
m bp ,
o b est la base de numration, m la mantisse, et p l'exposant. (Les calculs sont gnralement eectus en base b = 2, les rsultats achs sont traduits en base 10.) La mantisse m est un nombre crit avec virgule xe et possdant un nombre maximum N de chires signicatifs (impos par la mmoire de l'ordinateur) :
N
m = 0, a1 a2 . . . aN =
k=1
ak bk ,
b1 m < 1.
La prcision relative dans l'approximation d'un nombre rel est donc donne par x m bN = 1 = b1N . x m b L' exposant p est compris entre deux nombres entiers, L p U , ce qui veut dire que les nombres rels qui peuvent tre reprsents en machine sont compris entre deux valeurs xmin et xmax :
Exemple. La mme criture peut reprsenter des nombre dirents dans des
x = 8, 22 = 0, 82210,
y = 0, 00317 = 0, 317102 ,
3
z = 0, 00432 = 0, 432102 .
x + y = 8, 22317 0, 822 10 (x + y) + z 8, 22432 0, 822 10 x + (y + z) donne : y + z = 0, 00749 0, 749 102 x + (y + z) = 8, 22749 0, 823 10
L'addition est donc non associative par suite des erreurs d'arrondi. En gnrale, dans une sommations de rels, l'erreur a la tendance tre minimis lorsqu'on somme en premier les termes ayant la plus petite valeur absolue.
On voit qu'on a une perte de 5 chires signicatifs sur x2 . Ici le remde est simple : il sut d'observer que x1 x2 = 2, d'o
x2 =
2 x1
1, 223991125 103 .
2 Systmes linaires.
On appelle systme linaire d'ordre n (n entier positif), une expression de la forme Ax = b, o A = (aij ), 1 i, j n, dsigne une matrice de taille n n de nombres rels ou complexes, b = (bi ), 1 i n, un vecteur colonne rel ou complexe et x = (xi ), 1 i n, est le vecteur des inconnues du systme. La relation prcdente quivaut aux quations
n
aij xj = bi ,
j=1
i = 1, . . . , n.
La matrice A est dite rgulire (ou non singulire ) si detA = 0 ; on a existence et unicit de la solution x (pour n'importe quel vecteur b donn) si et seulement si la matrice associe au systme linaire est rgulire. Thoriquement, si A est non singulire, la solution est donne par la formule de Cramer : det(Ai ) xi = , i = 1, . . . , n, det(A) o Ai est la matrice obtenue en replaant la i-me colonne de A par le vecteur b. Cependant l'application de cette formule est inacceptable pour la rsolution pratique des systmes, car son cot est de l'ordre de (n + 1)! oating-point operations (ops ). En fait, le calcul de chaque dterminant par la formule
n
det(A) =
(1)
() i=1
ai,(i)
(o la somme est tendue toutes les permutations sur n objets) requiert n! ops. Par example, sur un ordinateur eectuant 109 ops par seconde il faudrait 9, 6 1047 annes pour rsoudre un systme linaire de seulement 50 quations. Il faut donc dvelopper des algorithmes alternatives avec un cot raisonnable. Dans les sections suivantes plusieurs mthodes sont analyses. On appelle mthode de rsolution directe d'un systme linaire un algorithme qui, si l'ordinateur faisait des calculs exacts, donnerait la solution en un nombre ni d'oprations. Il existe aussi des mthodes itratives qui consistent construire une suite de vecteurs xn convergeant vers la solution x.
2.1.1
et triangulaire infrieure si
aij = 0
i, j : 1 i < j n.
Suivant ces cas, le systme rsoudre est dit systme triangulaire suprieur ou infrieur. Si la matrice A est rgulire et triangulaire alors, comme det(A) = aii , on en dduit que aii = 0, pour tout i = 1, . . . , n. Si A est triangulaire infrieure on a
x1 = b1 /a11 ,
et pour i = 2, 3, . . . , n
xn = bn /ann ,
et pour i = n 1, n 2, . . . , 2, 1
lik = aij
aik
(k)
akk
(k)
,
(k)
i = k + 1, . . . , n;
(k)
(k+1)
i = k + 1, . . . , n.
uij = aij ,
tandis que les lments de la matrice L sont les termes lij engendrs par l'algorithme de Gauss. Le cot de cette mthode de factorisation est de l'ordre de 2n3 /3 ops. En fait, pour passer de A(k) A(k+1) on modie touts les elements de A(k) sauf les premires k lignes et les premires k colonnes, qui ne changent 6
(i)
pas ; pour chaque lment de A(k+1) il faut faire une multiplication et une soustraction ; on a donc 2(n k)2 oprations faire. Au total, pour fabriquer A(n) il faut n1 n1 (n 1)n(2n 1) 2n3 2(n k)2 = 2 j2 = 2 . 6 3 j=1
k=1
les termes akk , qui correspondent aux termes diagonaux ukk de la matrice U et qu'on appelle pivots, soient non nuls.
Le fait que la matrice A ait entres non nulles ne prvient pas l'apparition de pivot nuls, comme on remarque dans l'exemple qui suit : 1 2 3 1 2 3 1 A= 2 4 5 A(2) = 0 0 7 8 9 0 6 12 Cependant on a :
Remarque. Pour que l'algorithme de Gauss puisse terminer, il faut que tous
(k) (k)
Proposition 2.1 La factorisation LU de la matrice carre A de taille n par la mthode de Gauss existe si et seulement si les sous-matrices principales Ai = (ahk ), h, k = 1, . . . , i sont non-singulires. Cette proprit est satisfaite en particulier dans les cas qui suivent : 1. A est une matrice symtrique dnie positive ; 2. A est une matrice diagonale dominante stricte par lignes, c'est--dire pour tout i = 1, . . . , n
n
|aii | >
j=1,j=i
|aij |.
3. A est une matrice diagonale dominante stricte par colonnes, c'est--dire pour tout j = 1, . . . , n
n
|ajj | >
i=1,j=i
|aij |.
ukk ,
puisque le determinant d'une matrice triangulaire est le produit des termes diagonaux. La commande MATLAB det(A) exploite ce procd.
2.1.3
Si au cours de l'algorithme d'limination de Gauss on trouve un pivot nul l'tape k , le procd s'arrte. On peut alors permuter la ligne k avec la ligne r > k . La matrice qui permute les lignes k et r d'une matrice quelconque est la 7
matrice qui a des lments gaux 1 partout sur la diagonale sauf prr = pkk = 0 et des lments gaux 0 partout ailleurs, sauf prk = pkr = 1 : 1 1 0 ... 0 0 . . . . . . . . . ... 0 ... 1 ... k . . . . . P (k,r) = . . . . ... 1 ... 0 ... r . . . . . . . . .
...
LU = P A,
o P est le produit de toutes les matrices de permutation (des lignes) qu'on a utilises. Supposons donc qu'on a trouv une factorisation du type P A = LU . Alors le vecteur x, solution du systme Ax = b, vrie galement P Ax = b, o b = P b. . Donc, comme auparavant, on rsout par Ce deuxime systme s'crit LU x = b Ly = b et U x = y. Si un pivot est trs petit, sans pour autant tre nul, le procd d'limination ne s'arrte pas, mais le rsultat peut tre entach d'erreurs considrables, comme on va le voir dans l'exemple ci-dessous. Soit un petit nombre rel et considrons le systme de deux quations deux inconnues
x+y x+y
= =
1, 2.
Par limination sans recherche de pivot, nous obtenons le systme quivalent suivant
x+y 1 1 y
= =
1, 1 2 .
y=
Par substitution, on obtient x :
12 1 1y
1.
x=
0.
Essayons maintenant l'limination aprs avoir chang les lignes dans le systme :
x+y x+y
8
= =
2, 1.
x+y (1 )y
qui devient, en ottants,
= 2, = 12 ,
x+y y
= 2, = 1.
x = 1 et y = 1.
L'erreur qu'on faisait avec la premire limination venait de ce qu'on divisait un nombre par le petit pivot , ce qui amplie considrablement les erreurs. L'algorithme de dcomposition de Gauss avec pivotation par lignes permute deux lignes de la matrice A(k) chaque pas de la dcomposition an que l'l(k) ment diagonale akk de la matrice permute soit maximal (en valeur absolue). Prcisment, au pas k de la dcomposition on trouve l'index r, avec r k , tel que (k) (k) |ark | = max |ask |
sk
et on change les lignes r et k entre elles. Le logiciel MATLAB implmente ce dernier algorithme dans la commande lu.
2.1.4
Matrices tridiagonales.
On considre le cas particulier o la matrice A est non singulire et tridiagonale, donne par a1 c1 0 b2 a2 . . . . .. . cn1 0 bn an Dans ce cas, les matrices L et U de la factorisation LU de A sont des matrices bidiagonales de la forme : 1 c1 0 1 0 . 2 1 2 . . . L= U = , .. .. .. . . . cn1 0 n 1 0 n Les coecients i et i peuvent tre calculs par les relations :
1 = a1 , 2 1 = b2 2 =
b2 , 2 c1 + 2 = a2 2 = a2 2 c1 , . . . 1
9
Donc, on a
1 = a1 , i =
bi , i = ai i ci1 , i1
i = 2, . . . , n.
Cet algorithme est connu sous le nom de algorithme de Thomas, et le nombre d'oprations eectues est de l'ordre de n. Avec l'algorithme de Thomas, rsoudre un systme tridiagonal Ax = f revient rsoudre 2 systmes bidiagonaux Ly = f et U x = y avec
Ly = f Ux = y
y1 = f1 , yi = fi i yi1 , yn yi ci xi+1 xn = , xi = , n i
i = 2, . . . , n, i = n 1, . . . , 1.
Le cot de calcul ici est de 3(n 1) oprations pour la factorisation et de 5n 4 oprations pour la substitution, pour une totale de 8n 7 oprations.
Av(k) = e(k) ,
1 k n,
(1)
o e(k) est le vecteur colonne ayant tous les qui est 1, 0 . . . (k) e = 1 . . . 0
k . . . . n
1 . . .
Une fois connues les matrices L et U qui factorisent la matrice A, rsoudre les n systmes (1) gouverns par la mme matrice A, cote n3 oprations. Si la matrice A est triangulaire, la solution brute de ce systme s'avre inecient puisque A1 a beaucoup d'entres nulles. En eet, le systme precedent quivaut A(j) vj = 1j , o A(j) est la sous-matrice principale d'ordre j , vj = (v1j , . . . , vjj )T et 1j = (0, 0, . . . , 0, 1)T sont des vecteurs de longueur j .
2.1.6 Considration sur la prcision des mthodes directes pour les systmes linaires.
Il y a des cas o les mthodes qu'on vient de voir ne marchent pas trop bien.
Dnition. On dnit le conditionnement d'une matrice M symtrique dnie positive comme le rapport entre la valeur maximale et la valeur minimale de ses valeurs propres, i.e.
K2 (M ) = max (M ) . min (M )
10
On peut montrer que plus le conditionnement de la matrice est grand, plus la solution du systme linaire obtenue par une mthode directe peut tre mauvaise. Par exemple, considrons un systme linaire
Ax = b.
Si on rsout ce systme avec un ordinateur, cause des erreurs d'arrondis on ne trouve pas la solution exacte mais une solution approche x. On s'attend, alors, ce que la solution x soir trs proche de x. Toutefois, on peut montrer la relation suivante : r xx K2 (A) x b o r est le rsidu r = b A ; on a not la norme euclidienne d'un vecteur. x On remarque que, si le conditionnement de A est grande, la distance x x entre la solution exacte et celle calcule numriquement peut tre trs grande mme si le rsidu est trs petit. Avec MATLAB on peut calculer le conditionnement d'une matrice avec la commande cond.
x = lim x(k) .
k
L'intrt des mthodes itratives, compares aux mthodes directes, est d'tre simples programmer et de ncessiter moins de place en mmoire. En revanche le temps de calcul est souvent plus long. Une stratgie est de considrer la relation de rcurrence linaire
x(k+1) = Bx(k) + g,
(2)
o B est la matrice d'itration de la mthode itrative (dpendant de A) et g est un vecteur (dpendant de b), tels que
x = Bx + g.
tant x = A1 b, on obtient g = (I B)A1 b ; la mthode itrative (2) est donc compltement dnie par la matrice B . En dnissant l'erreur au pas k comme
e(k) = x x(k) ,
on obtient la relation de rcurrence
et i (B) sont les valeur propres de la matrice B . Une technique gnrale pour construire des mthodes itratives est base sur une dcomposition (splitting ) de la matrice A sous la forme A = P N , o P et N sont des matrices dterminer avec P non singulire. La matrice P est appele matrice de prconditionnement. Plus prcisment, x(0) tant donn, on peut calculer x(k) , pour k 1, en rsolvant le systme
P x(k+1) = N x(k) + b,
k 0.
(3)
Clairement, la solution exacte x satisfait P x = N x + b et donc Ax = b. Le systme (3) peut tre crit galement sous la forme (2), avec B = P 1 N , et g = P 1 b. Une relation de rcurrence quivalente (3) est la suivante :
k 0,
(4)
o r(k) = b Ax(k) est le rsidu l'itration k . On peut gnraliser la relation prcdente comme
k 0,
(5)
o on a introduit un paramtre k (qui peut tre dirent chaque itration k ) an d'acclrer la convergence. Cette mthode est dite de Richardson. Les relations (3), (4) et (5) montrent qu'on doit rsoudre un systme linaire de matrice P chaque itration ; donc P doit tre telle que la rsolution du systme ait un cot raisonnable. Par exemple, on pourra choisir P diagonale ou triangulaire.
Pour une donne initiale x(0) choisie, on calcule x(k+1) par n 1 (k+1) (k) xi = bi aij xj , i = 1, . . . , n. aii
j=1,j=i
A D E F
= : : :
DEF diagonale de A
triangulaire infrieure avec des 0 sur la diagonale triangulaire suprieure avec des 0 sur la diagonale
BJ = D1 (E + F ) = I D1 A.
L'algorithme de Jacobi ncessite le stockage des deux vecteurs xj 12
(k)
et xj
(k+1)
2.2.2
La mthode de Gauss-Seidel.
Pour cette mthode on a i1 n 1 (k+1) (k+1) (k) xi = bi aij xj aij xj , aii j=1 j=i+1 Il s'crit aussi
i = 1, . . . , n.
P = D E,
et la matrice d'itration associe est
N = F,
BGS = (D E)1 U.
L'algorithme de Gauss-Seidel ne ncessite qu'un vecteur de stockage, x(k) tant remplac par x(k+1) au cours de l'itration. Il est en gnral plus rapide que l'algorithme de Jacobi, donc prfrable.
2.2.3
On a les rsultats suivants Si A est une matrice diagonale dominante stricte par lignes, alors les mthodes de Jacobi et de Gauss-Seidel sont convergentes.
xi =
1 aii
aik xk xk
k=i
(n)
donc
max xi
i (n+1)
xi
1 aii
|aik | max xk xk
k=i (n) k
(n)
car A est diagonale strictement dominante. De plus maxi |yi | = y norme sur RN . On a ainsi montr que
x(n+1) x
est une
K x(n) x
ce qui prouve la convergence.2 Remarque : en pratique la stricte dominance n'est pas indispensable. L'ingalit large sut pour la plupart des matrices inversibles.
Si A est une matrice symtrique dnie positive, alors la mthode de GaussSeidel converge (la mthode de Jacobi pas forcment). 13
k =
k 0,
o z(k) = P 1 r(k) . Cette mthode est appele du gradient prconditionn (du gradient lorsque P = I ). On a not par x, y le produit scalaire entre les vecteurs x et y.
= =
Ainsi, en notant avec A la norme vectorielle issue du produit scalaire x, y Ax, y , c'est--dire x A = Ax, x 1/2 on tire que
e(k+1)
2 A
= =
Ae(k+1) , e(k+1) = r(k+1) , e(k+1) r(k) , e(k) r(k) , P 1 Ae(k) + Az(k) , e(k)
A,
+ 2 Az(k) , P 1 Ae(k) .
c'est--dire
= 0.
On obtient donc
k =
2
On peut dmontrer que la suite x(k) converge vers x lorsque k , et donne par la mthode du gradient
k
x(k+1) x
K2 (P 1 A) 1 K2 (P 1 A) + 1
x(0) x
A,
k 0,
(6)
K2 (P 1 A) << K2 (A).
En consquence,
2.2.5
Une mthode encore plus rapide dans le cas o P et A sont symtriques dnies positives est celle du gradient conjugu prconditionn. On pose cette fois-ci
k 0,
avec p(k) = z(k) k p(k1) . Soit x(0) une donne initiale ; on calcule r(0) = b Ax(0) , z(0) = P 1 r(0) , p(0) = z(0) , puis pour k 0,
k =
x(k+1) = x(k) + k p(k) r(k+1) = r(k) k Ap(k) z(k+1) = P 1 r(k+1) Ap(k) , z(k+1) k+1 = Ap(k) , p(k) p(k+1) = z(k+1) k p(k) .
Dans ce cas la formule (6) devient
(k+1)
K2 (P 1 A) 1 K2 (P 1 A) + 1
x(0) x
A,
k 0.
2.3 Exercices.
Exercice 1. On veut rsoudre le systme linaire Ax = b o
1 A= 2 4 1 2 6 1 5 8
et
1 b= 2 5
par la mthode d'limination de Gauss. a) Vrier que l'algorithme de Gauss sans pivoting ne peut pas tre excut jusqu'au bout. b) Trouver une matrice de permutation P telle que la matrice P A soit factorisable. c) Calculer la factorisation LU de la matrice P A. d) Rsoudre le systme linaire Ax = b en remplaant P A par LU et en utilisant les algorithmes de substitution progressive et rtrograde.
1 a A= a 1 a a
a a 1
4) crire la matrice J de l'itration de Jacobi. 5) Pour quelles valeurs de a la mthode de Jacobi converge-t-elle ? 6) crire la matrice G de l'itration de Gauss-Seidel. 7) Calculer (G). Pour quelles valeurs de a cette mthode converge-t-elle plus vite que celle de Jacobi ?
D E
F .. .
D E x(k+1) =
1 D+F
x(k) + b R .
a) Vrier que si la mthode converge, elle converge vers une solution de Ax = b. b) Donner la matrice d'itration L de cette mthode. c) Calculer det(L ) d) En dduire que (L ) |1 |. Conclusion ?
0 1 3
On se donne galement un vecteur b de R3 . On note x l'unique solution du systme Ax = b. a) Montrer que la mthode de Jacobi pour rsoudre le systme linaire Ax = b est ici convergente. b) Soit xn le nime itr de la mthode de Jacobi en partant de x0 = 0. Dterminer la matrice d'itration M de la mthode de Jacobi (c'est la matrice qui vrie xn+1 x = M (xn x)). c) Calculer les valeurs propres de A. En dduire les valeurs propres de M. Dterminer s le module de la plus petite valeur propre en module de A, et S le module de la plus grande valeur propre en module de M. (Vrier que S < 1 !) d) Montrer que |x| 1 |b| o |u| dsigne la norme euclidienne usuelle du vecteur s u dans R3 . n e) Montrer que |xn x| Ss |b|.
16
an = an1 ,
si f (xn1 ) f (bn1 ) < 0, on pose
bn = xn1 ;
an = xn1 ,
bn = bn1 ;
xn+1 = xn
f (xn ) , f (xn )
n 0.
(7)
= () ssi f () = 0.
x, y, E,
Thorme. Soit : E E une application contractante d'un espace mtrique complet dans lui-mme. Alors admet un point xe unique E . De plus, pour tout point initial x0 E la suite itre {xn } dnie par xn+1 = (xn ) converge vers .
Dmonstration.
1. Unicit : soient x1 et x2 , deux solutions. On a :
d(x1 x2 ) Kd(x1 x2 )
donc
d(xn+1 xn ) K n d(x1 x0 )
p
(8)
d(xp xn )
k=n+1
K k1 d(x1 x0 ) K n d(x1 x0 )
k=0
Kk
18
La suite {xn } est donc de Cauchy dans E , donc convergente dans E . De plus, soit la limite de cette suite ; par continuit de , () = , d'o l'existence du point xe.2
Il est important de disposer d'un critre pratique assurant qu'une fonction est K -Lipschitzienne, avec K < 1.
pour tout x dans [a, b], alors est K -Lipschitzienne sur [a, b]. Dmonstration. Soient x et y dans [a, b]. Puisque le segment [x, y] est inclus dans
1
(y) (x) =
donc
(y) (x)
(x + t(x y))(x y) dt
0 1
(x + t(x y)) K xy .
(x y) dt
3.5.2
Soit [a, b] R et : [a, b] [a, b] une application de classe C 1 . Soit [a, b] un point xe de . On peut distinguer trois cas : 1. | ()| < 1. Soit K tel que | ()| < K < 1. Par continuit de , il existe un intervalle E = [ h, + h] sur lequel | | K , donc est contractante de rapport K sur E ; on a ncessairement (E) E et par consquent
x0 E,
n+
lim xn = .
On dit que est un point xe attractif. Dans ce cas la convergence de la suite {xn } est au moins exponentiellement rapide : |xn | K n |x0 |. Cas particulier : | ()| = 0. Supposons de plus que C 2 et que | | M sur E . La formule de Taylor donne
(x)
= () + (x ) () + = 1 + (c)(x )2 , 2
(x )2 (c) 2! c ], x[,
1 2 M |x
| .
1 M |xn | 2 |xn |
19
1 M |x0 | 2 2 M
2n
,
2n
1 M |x0 | 2
La convergence est donc ici extraordinairement rapide. Ce phnomne est appel convergence quadratique, et est alors appel parfois point xe superattractif. 2. | ()| > 1. Il existe alors un voisinage [ h, + h] tel que
x [ h, + h] \ {},
|(x) | > |x |.
On dit alors que est un point xe rpulsif. Dans ce cas, est de signe constant au voisinage de , donc il existe h > 0 tel que la restriction |[h,+h] admette une application rciproque 1 dnie sur ([ h, + h]), qui est un intervalle contenant () = . L'quation (x) = x peut se rcrire x = 1 (x) au voisinage de , et comme (1 ) () = 1/ (), le point est un point xe attractif pour 1 . 3. | ()| = 1. On est ici dans un cas douteux, comme le montrent les deux exemples suivants dans lesquels = 0, () = 1 :
Exemple 1. (x) = sin x, x [0, /2]. On a ici sin x < x pour tout x ]0, /2]. Pour tout x0 ]0, /2] la suite {xn } est strictement dcroissante minore, donc convergente vers l = sin l, d'o l = 0. Exemple 2. (x) = sinh x, x [0, +]. Comme sinh x > x pour tout
x > 0, on voit que le point xe 0 est rpulsif.
En gnral, la mthode du point xe, quand elle converge, est une mthode d'ordre 1. C'est dire que, en gros, chaque itration l'erreur est multiplie par un coecient (plus petit que un). Voici un nonc plus prcis.
(x) = x
f (x) . f (x)
|x0 | , la suite dnie dans (7) converge vers . De plus, la convergence est quadratique : xn+1 f () lim . = n (xn )2 2f ()
et
f (p) () = 0.
Remarque. Si f () = 0, la convergence de la mthode de Newton est seulement linaire. On considre alors la mthode de Newton modie :
xn+1 = xn p
avec p la multiplicit de .
f (xn ) , f (xn )
n0
Quand faut-il terminer les itrations de l'algorithme de Newton ? Un bon critre d'arrt est le contrle de l'incrment : les itrations s'achvent ds que
|xn+1 xn | <
(9)
en xn+1 xn .
L'erreur qu'on commet lorsque l'on adopte le critre (9) est donc plus petite que la tolrance xe. 21
f1 (x1 , x2 ) = 0, f2 (x1 , x2 ) = 0.
Ce systme peut s'crire sous la forme f = 0, o f = (f1 , f2 ). On veut gnraliser la mthode de Newton ce cas. Pour cela on dnit la matrice Jacobienne du vecteur f :
Df (x = (x1 , x2 )) =
f1 x1 f2 x1
f1 x2 f2 x2
Alors la mthode de Newton pour systmes non linaires s'crit : tant donn (0) (0) x(0) = (x1 , x2 ), on calcule pour n 0 :
22
4 Approximation polynmiale.
Les fonctions les plus faciles valuer numriquement sont les polynmes. Il est donc important de savoir approximer une fonction arbitraire par des polynmes. Dans la suite, on dsignera par Pn l'espace vectoriel des fonctions polynmes sur R coecients rels, de degr infrieur ou gal n. On a donc dimPn = n + 1. Soit f C 0 ([a, b]) et x0 , x1 , . . . , xn [a, b] n + 1 points distincts (n 0 est un nombre entier). On cherche un polynme p de degr n tel que
p(xi ) = f (xi ),
0 i n.
i (xj ) = ij ,
i, j = 0, . . . , n,
o ij = 1 si i = j et ij = 0 si i = j . Explicitement on a
i (x) =
i=j
(x xj ) , (xi xj )
0 i n.
pn (x) =
i=0
f (xi )(x).
(10)
On montre maintenant que pn est le seul polynme de degr n interpolant f aux points xi . Soit, en eet, qn (x) un autre polynme d'interpolation. Alors on a qn (xi ) pn (xi ) = 0, i = 0, . . . , n. Donc qn pn est un polynme de degr n qui s'annule un n + 1 points distincts ; il en suit que qn = pn , d'o l'unicit du polynme interpolant. En conclusion, on a le thorme suivant.
xN
xn n
an
f (xn )
La matrice de ce systme linaire est une matrice de Vandermonde de dterminant i<j (xi xj ) = 0 car les points xi sont distincts. La rsolution de ce 23
systme conduit bien sur l'unique polynme d'interpolation de f . Cependant si l'on tente de rsoudre ce systme numriquement grce la mthode LU (avec ou sans pivotage), les rsultats obtenus n'ont rien voir avec la solution exacte. L'erreur peut atteindre, suivant la machine avec laquelle on travaille, plusieurs centaines de milliers ! Le systme de Vandermonde appartient la catgorie (heureusement plutt rare) des systmes linaires mal conditionns. On appelle ainsi un systme pour lequel une petite erreur sur les coecients ou le second membre entrane une erreur importante sur la solution du systme. Il est possible de savoir si un systme Ax = b est bien ou mal conditionn en connaissant sont conditionnement, dni par
cond(A) = A
A1
o est une norme matricielle quelconque. On a toujours cond(A) 1, et plus ce nombre est grand plus la rsolution du systme est dicile. Si par exemple i xi = 2 0, i = 0, . . . , 20, on a cond(A) = 356551625901350880. Par ailleurs, cond(A) = 1 ssi A est une matrice orthogonale (A1 = AT ). Les systmes linaires les mieux conditionns sont donc ceux dans lesquels intervient une matrice orthogonale.
pn (x) = f (x0 ) +
k=1
(11)
Pour valuer les coecients f [x0 , x1 , . . . , xk ] on utilise une recurrence sur le nombre k de points xi , en observant que f [x0 ] = f (x0 ). Pour k 1 on a
f [x0 , x1 , . . . , xk ] =
(12)
x1 , x2 , . . . , xk , on a
Algorithme pratique. On range les valeurs de f (xi ) dans un tableau TAB, puis on modie ce tableau en n tapes successives, en procdant par indices
24
dcroissantes : Tableau Etape 0 TAB[n] f (xn ) TAB[n 1] f (xn1 ) TAB[n 2] f (xn2 ) . . . . . . TAB[2] f (x2 ) TAB[1] f (x1 ) f (x0 ) TAB[0] Etape 1 Etape 2 f [xn1 , xn ] f [xn2 , xn1 , xn ] f [xn2 , xn1 ] . . . f [x1 , x2 ] f [x0 , x1 ] . . . f [x0 , x1 , x2 ]
... ...
Etape n f [x0 , . . . , xn ]
A l'issue de la n-me tape, la case TAB[k] contient le coecient f [x0 , . . . , xk ], et on peut utiliser la formule (11). On construit pn par rcurrence descendante (rgle de Hrner)
un uk
o n+1 (x) =
i (x
xi ), [a, b].
des points xi , soit pn+1 (t) le polynme d'interpolation de f aux points x, x0 , . . . , xn+1 . Par construction f (x) pn (x) = pn+1 (x) pn (x). Or le polynme pn+1 pn est de degr n + 1 et s'annule aux n + 1 points x0 , . . . , xn+1 . On a donc
pn+1 (t) pn (t) = cn+1 (t), c R.
Considrons la fonction
g(t) = f (t) pn+1 (t) = f (t) pn (t) cn+1 (t).
Cette fonction s'annule en n + 2 points, donc d'aprs une extension du thorme de Rolle il existe tel que g (n+1) () = 0. Or
p(n+1) = 0, n n+1
(n+1)
= (n + 1)!
En prenant la borne suprieure de la valeur absolue des deux membres dans la formule d'erreur, on obtient en particulier :
f pn
1 n+1 (n + 1)!
25
f (n+1) .
Cela montre que la taille de l'erreur d'interpolation f (x) pn (x) dpend la fois de la quantit f (n+1) , qui peut tre grande si f oscille trop vite, et de la quantit n+1 , qui est lie la repartition des points xi dans l'intervalle [a, b]. Dans le cas particulier o les ndus sont quirepartis on a le rsultat suivant
f pn
1 4(n + 1)
ba n
n+1
f (n+1) .
Dmonstration. On peut montrer que le maximum de |n+1 (x)| est atteint toujours dans un de deux intervalles extrmes [x0 , x1 ] ou [xn1 , xn ]. On prend alors x [x0 , x1 ] (l'autre cas est similaire) ; on a
|(x x0 )(x x1 )| (x1 x0 )2 h2 = 4 4
Donc
x[a,b]
max
|(x xi )|
i
h2 n! 2h3h . . . nh = 4 4
ba n
n+1
d'o la conclusion. 2
=0
n'implique pas que f pn tend vers zro quand n (voir le phnomne de Runge ). Remdes : 1- Interpolation avec points qui ne sont pas quirepartis (interpolation de Tchebychev). 2- Interpolation par intervalles.
x [1, 1].
cos(n),
t0 (x) = 1,
t1 (x) = x,
Il en rsulte que tn est un polynme de degr n, dont le coecient directeur est 2n1 si n 1. Les n racines de tn sont donnes par
xi = cos
2i + 1 ] 1, 1[, 2n
0 i n 1.
Les points xi sont rpartis symtriquement autour de 0 (xni = i ) de faon x plus dense au voisinage de 1 et 1. Pour se ramener un intervalle [a, b] quelconque, on utilisera le changement de variable suivant a+b ba + xi . xi = 2 2 Le polynme n+1 est donn par
n
n+1 (x) =
n
(x xi ) =
i=0
ba 2
(n+1) n
( xi ) x
i=0
o i=0 ( xi ) = 1/2n tn+1 est le polynme n+1 () correspondant [1, 1]. x x Donc on a ici (n+1) ba n+1 = 2 . 4 Cette valeur est plus petite que l'estimation n+1 n! b a 2 e 4 n 4 n
ba e
n+1
(13)
obtenue pour n+1 avec des points xi quidistants, surtout lorsque n est assez grand : le rapport entre les deux est de l'ordre O( n (e/4)n+1 ), qui tend vers 0 quand n . L'approximation (13) repose sur la formule de Stirling n! 2n (n/e)n .
H=
ba . N
Sur chaque sous-intervalle Ij on interpole f|Ij par un polynme de degr n. Le polynme par morceaux qu'on obtient est not pH . n
27
5 Intgration numrique.
On souhaite disposer d'un moyen d'valuer numriquement I(f ) = a f (t)dt o f est une fonction continue sur un intervalle [a, b] avec a < b. En eet, dans de nombreuses applications, cette intgrale ne se ramne pas des fonctions simples, et mme si c'est le cas, on cherche une mthode simple et utilisable dans le cas gnral. Pour cela, nous chercherons une approximation de I(f ), note J(f ) sous la forme
n b
J(f ) = (b a)
i=0
i f (i )
n
o les points i sont dans l'intervalle [a, b] et i=0 i = 1. Les i sont appels les points d'intgration et les coecients i les poids d'intgration.
Denition. On dit qu'un mthode de quadrature est d'ordre N si la formule approche est exacte pour tout f PN et inexacte pour au moins un f PN +1 .
On observera que les formules sont toujours exactes pour f (x) = 1 cause de n l'hypothse i=0 i = 1. Par linarit, elles sont donc exactes au moins pour f P0 .
5.1 Exemples.
(a) Un seul point. On choisit un seul point [a, b] et on remplace f sur [a, b] par le polynme de degr 0 : p0 (x) = f (). On a alors
b
f (x)dx
a
(b a)f ().
Voici les choix plus courants : = a : mthode des rectangles gauche (ordre 0) ; = b : mthode des rectangles droite (ordre 0) ; = a+b : mthode du point milieu (ordre 1) ; 2 (b) Interpolation linaire. On choisit 0 = a et 1 = b et on remplace f sur [a, b] par la fonction linaire p1 qui interpole f aux points a, b :
p1 (x) =
f (x)dx
a
(b a)
f (a) + f (b) . 2
i = a + i
28
ba . n
Pour dterminer la formule de quadrature lmentaire, on se ramne par chan2 gement de variable l'intervalle [1, 1], subdivis par les points i = 1 + i n . Le polynme d'interpolation d'une fonction f C([1, 1]) est donn par
n
pn (x) =
i=0
f (i )i (x), x j . On a donc i j
f (x)dx
1 1
pl (x)dx = 2
i=0
i f (i )
avec i = a
1 2
1 1
Aprs changement de variable, les coecients i sont inchangs, donc on obtient la formule
b n
f (x)dx
a
(b a)
i=0
i f (i ).
Si f Pn , alors pn = f , donc la mthode de Newton-Cotes de rang n est d'ordre n. De plus, lorsque f C([1, 1]) est un polynme impair, on a
1 n
f (x)dx = 0 = 2
1 i=0
i f (i ).
Si n est pair, les formules sont donc encore exactes pour f (x) = xn+1 , et plus gnralement pour f Pn+1 par linarit. On dmontre en fait le rsultat suivant que nous admettrons :
0 = 1 =
n = 2 mthode de Simpson (ordre 3)
1 2
0 = 2 =
1 , 6
1 =
2 3
0 = 4 =
7 , 90
1 = 3 =
29
16 , 45
2 =
2 15
0 = 6 =
41 , 840
1 = 5 =
9 , 35
2 = 4 =
9 , 280
3 =
34 . 105
Pour n 8 il apparat des coecients i < 0, ce qui a pour eet de rendre les formules beaucoup plus sensibles aux erreurs d'arrondis. Les mthodes de Newton-Cotes ne sont donc utilises en pratique que dans les 4 cas ci-dessus.
E(f ) =
a
f (x)dx (b a)
i=0
i f (xi ) =
1 N!
b a
o KN est une fonction sur [a, b], appele noyau de Peano associ la mthode, dnie par KN (t) = E x (x t)N , t [a, b]. +
Dmonstration. On observe d'abord que si g : (x, t) g(x, t) est une fonction integrable sur [a, b] I , le thorme de Fubini implique par ailleurs
E x
I
g(x, t)dt
=
I
f (x) = pN (x) +
a
E(f )
= =
E x
a b
E x
a b
=
a
1 N!
2
On dduit la majoration
E(f )
1 f (N +1) N!
|KN (t)|dt.
30
6 Equations direntielles.
On considre une fonction continue f : R+ R R. Pour y0 R donn, on cherche y : t R+ y(t) R qui satisfait le problme suivant, appel problme de Cauchy : y (t) = f (t, y(t)) si t > 0 (14) y(0) = y0 .
alors le problme de Cauchy (14) admet une solution globale (c'est--dire pour tout t > 0) et elle est unique.
y (ti )
= = =
y(ti + h) y(ti ) , h0+ h y(ti ) y(ti h) lim , h0+ h y(ti + h) y(ti h) lim . h0+ 2h lim
Soit maintenant (Dy)i une approximation de y (ti ). On appelle dirence nie progressive l'approximation
(Dy)P = i
y(ti+1 ) y(ti ) , h
i = 0, . . . , n 1;
(Dy)R = i
y(ti ) y(ti1 ) , h
i = 1, . . . , n;
(Dy)C = i
y(ti+1 ) y(ti1 ) , 2h
i = 1, . . . , n 1.
Si y C 2 (R), pour tout t R, il existe un entre ti et t tel que l'on a le dveloppement de Taylor
y () (t ti )2 . 2
(Dy)P = y (ti ) + i
31
h y (), 2
(Dy)R = y (ti ) i
ce qui conduit une estimation du type
h y (), 2
y(ti+1 ) y(ti1 )
on obtient
Denition. La dirence |y (ti ) (Dy)P | (et celles correspondantes aux autres i dirences nies) est appele erreur de troncature au point ti .
L'erreur de troncature est d'ordre 1 pour les formules progressive et retrograde et d'ordre 2 pour la formule centre.
= f (tn , yn ) pour n = 0, 1, 2, . . .
= f (tn+1 , yn+1 )
pour n = 0, 1, 2, . . .
32
yn+1 = yn + hn (tn , yn , hn ),
o est une fonction qu'on supposera continue.
0 n < N,
6.3.1
l'erreur
On dit que la mthode est consistante si pour toute solution exacte y la somme des erreurs de consistance relatives y , soit n |en |, tend vers 0 quand hmax tend vers 0.
Une autre notion fondamentale est la notion de stabilit. dans la pratique, le calcul rcurrent des points yn est entach d'erreurs d'arrondis n . Pour que les calculs soient signicatifs, il est indispensable que la propagation de ces erreurs reste contrlable.
Denition. On dit que la mthode est stable s'il existe une constante S 0
telle que pour toutes suites (yn ), (n ) dnies par y
yn+1 = yn + hn (tn , yn , hn ), yn+1 = yn + hn (tn , yn , hn ) + n , 0 n < N, 0 n < N,
on ait
max |n yn | S y
n
|0 y0 | + y
n
|n |
yn+1 = yn + hn (tn , yn , hn ) + en .
Si la mthode est stable, de constante S , l'erreur globale est donc
|y0 y(0)| +
n
|en | .
33
Thorme (CS de stabilit). Pour que la mthode soit stable, il sut que la
fonction soit Lipschitzienne en y , de constante :
|(t, y1 , h) (t, y2 , h)| |y1 y2 |,
pour tout t [0, T ], tout (y1 , y2 ) R2 , tout h R. Alors on peut prendre pour constante de stabilit S = eT
On termine ce paragraphe avec une denition.
Denition. On dit qu'un mthode 1 pas est d'ordre p si pour toute solution
exacte y d'une quation direntielle
y = f (t, y) o f est de classe C p ,
y(tn+1 ) y(tn ) =
tn
f (t, y(t))dt.
En utilisant la formule des trapzes, on trouve le schma implicite suivant, appel schma de Crank-Nicolson ou du trapze :
yn+1 yn =
n 0.
Ce schma est implicite. En le modiant an de le rendre explicite, on identie la mthode de Heun :
yn+1 yn =
Ce deux mthode son d'ordre 2 par rapport h. Si on utilise la mthode du point milieu on trouve
1 yn+ 1 = yn + f (tn , yn ), 2 2
on trouve la mthode d'Euler modie :
yn+1 yn = hf
1 tn+ 1 , yn + f (tn , yn ) . 2 2
Les mthodes de Heun et d'Euler modie sont des cas particuliers dans la famille des mthodes de Runge-Kutta d'ordre 2. Il existe d'autres mthodes plus compliques, comme par exemple la mthode de Runge-Kutta d'ordre 4 suivante, qui est obtenue en considrant la mthode d'intgration de Simpson.
yn+1 = yn +
K1 K2 K3 K4
= = = =
35
Rfrences
[1] J.P. Demailly, Analyse numrique et quations direntielles, Presses universitaires de Grenoble. [2] Quarteroni, Sacco, Saleri, Numerical Mathematics, Sprigler. [3] M. Schatzman, Analyse numrique, Masson.
36