Professional Documents
Culture Documents
Licences de Physique
Faculte des Sciences de Luminy
Introduction 4
II Methodes numeriques 23
2
TABLE DES MATIERES 3
6 Interpolation 36
6.1 Interpolation lineaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
6.2 Interpolation quadratique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
6.3 Generalisation a lordre n . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
6.3.1 Du bon usage de linterpolation . . . . . . . . . . . . . . . . . . . . . . . . 40
7 Integration de fonctions 41
7.1 Integration par la methode des rectanges . . . . . . . . . . . . . . . . . . . . . . . 41
7.1.1 Incertitude de la methode . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
7.2 Integration par la methode des trapezes . . . . . . . . . . . . . . . . . . . . . . . 43
7.2.1 Incertitude de la methode . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
7.3 Integration par la methode de Simpson . . . . . . . . . . . . . . . . . . . . . . . . 44
7.3.1 Incertitude de la methode . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
7.4 Methode de Romberg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
7.5 Determination dun pas optimal dintegration . . . . . . . . . . . . . . . . . . . . 46
8 Derivation numerique 48
8.1 Formule dEuler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
8.1.1 Erreur intrinseque . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
8.2 Derivation au demi-pas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
8.2.1 Stabilite numerique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
Ce document na pas pour but detre un cours dinformatique, encore moins un cours dana-
lyse numerique. Lidee en est plutot dutiliser la puissance de calcul dun ordinateur pour traiter
des problemes physique tres varies. Pourquoi utiliser un ordinateur ? Pour gagner du temps par
exemple lors dun calcul fastidieux que lon pourrait realiser a la main, mais aussi dans des cas
ou le probleme ne peut pas etre traite avec un crayon et une feuille de papier (certaines equations
nont par exemple pas de solutions analytiques).
Nous aborderons au cours de ce cours les methodes classiques de calcul numerique qui
nous permettrons dintegrer des fonctions, de calculer leurs racines, dintegrer des systemes
dequations differentielles. . .Dans une deuxieme partie nous aborderons lusage dun ordinateur
pour traiter des donnees. Cet aspect statistique du calcul numerique est particulierement utilise
par les experimentateur, notamment en physique ou les volumes de donnees peuvent etre parti-
culierement important et les calculs repetitifs. Lutilisation dun ordinateur permet dans ces cas
de gagner beaucoup de temps.
Les calculs numeriques sont apparus bien avant lapparition des ordinateurs. Au XVII siecle
par exemple, John Napier (1550-1616) introduisit les logarithmes (Mirifici logarithmorum canoni
descriptio, Edimbourg,1614). Les multiplications pouvait etre transformee en addition, un calcul
de racine carree en division par deux. Cetait deja un gain de temps appreciable . . .De nombreux
contemporains de Napier realiserent des prouesses en calculs numeriques (calculs des orbites
planetaires par exemple), et tout ceci a la main. Outre le temps requis par de tels calculs, les
erreurs etaient monnaie courante.
Aussi, lidee dautomatiser ces calculs fastidieux apparut rapidement. Le baron Gaspard de
Prony etait charge pendant le premier empire de mettre en place des tables pour le calcul des
impots fonciers (dont les regles etaient deja complexes a lepoque). Il eut lidee de fractionner ce
travail enorme en plusieurs partie. Des mathematiciens decomposerent tous les calculs necessaires
en operations elementaires, des gestionnaires organiserent le travail et collecterent les resultats.
Enfin, les calculs elementaires furent assures par des operateurs pour lesquels la qualification
requise etait de savoir faire des additions. Cette approche est exactement celle dun programmeur
devant resoudre un probleme a laide dun ordinateur : sa tache est decrire un algorithme, cest
a dire de decomposer un probleme en une serie de taches elementaires comprehensibles par un
ordinateur (additions, comparaisons . . .), et de definir lordre dexecution de ces taches. Dans ce
cas, les operateurs humains sont remplaces par un calculateur beaucoup plus rapide.
La mecanisation du calcul suivit, notamment grace a un anglais, Charles Babbage au debut
du XIX siecle. Il eut lidee dassocier cette idee de decomposition dun probleme en taches
simples a une machine a calculer mecanique ressemblant a la machine de Pascal et a un systeme
4
TABLE DES MATIERES 5
de lecture de cartes perforees utilisees sur les metiers a tisser Jacquard. Sa machine a differences
etait lanalogue mecanique de nos calculateurs electroniques. Cependant, son idee naboutit pas,
car il se heurta a de tres importantes difficultes techniques. Mais lidee etait lancee . . .
Cette idee fut concretisee en 1890 par Herman Hollerith qui repondit a un appel doffre du
gouvernement americain pour traiter les donnees du recensement national. Le traitement des
donnees du recensement precedent avait necessite sept ans de travail. Hollerith proposa une
machine qui lisait les donnees sur des cartes perforees, et le resultat fut obtenu en six semaines.
Un gain de temps appreciable. Hollerith fonda alors une societe, la Tabulating Machine Company
qui devint en 1924 la International Business Machines, plus connue sous le sigle IBM . . .
Au cours de la deuxieme guerre mondiale, les efforts de recherche dans ce domaine se sont
intensifies : les armees avaient besoin de gros volumes de calcul (etablissement de tables de
portee de tir pour lartillerie, decryptage des communications ennemies . . .).
Les premiers calculateurs electroniques ont vu le jour tres peu de temps apres la guerre
(lENIAC en 1946 aux Etats-Unis). Linvention du transistor en 1951 par John Bardeen, William
Shockley et Walter Brattain a ensuite ouvert la voie aux calculateurs electroniques modernes.
Leurs performances nont depuis jamais cesse de crotre.
Dans la memoire dun ordinateur, les nombres ont une representation binaire, cest a dire
une suite de 0 et de 1. Aisi pour les nombres entiers on obtient la correspondance suivante entre
representation decimale (premiere ligne) et binaire (deuxieme ligne)
0 1 2 3 4 5 6 7 8 9 10 ...
0 1 10 11 100 101 110 111 1000 1001 1010 . . .
Une case contenant em memoire un 0 ou un 1, est appelee un bit. Dans la majorite des
ordinateurs, ces bits sont regroupes par 8, les octets ou bytes. Ces octets constituent alors un
emplacement correspondant a une adresse dans la memoire. Le tableau precedent secrirait en
fait
0 1 2 3 4 5 ...
00000000 00000001 00000010 00000011 00000100 00000101 . . .
Avec un octet on peut representer les nombres entiers 0 . . . 28 1, cst a dire de 0 a 255.
Afin davoir une dynamique de representation plus importante, on groupe des octets en
mots, la taille de ces mots dependant du nombre de bits quun ordinateur sait manipuler en
une operation. Sur les ordinateurs personnels actuels, la taille de ces mots est de 32 bits soit 4
octets. Dans un mot de quatre octets, on peut coder les entiers allant de 0 a 232 1 soit de 0 a
4 294 967 296.
Pour pouvoir representer les nombres negatifs, on change de convention de codage : un
nombre negatif est le complement a deux de sa valeur positive. Par exemple 00000001 = 1
et 11111110=-1 (au lieu de 254). Aisi de 00000000=0 a 01111111=127 on code des nombres
positifs, et de 11111110=-1 a 11111111=-128 des nombres negatifs. Sur 32 bits, on peut coder
des nombres entiers signes allant de 231 a 231 1
6
TABLE DES MATIERES 7
Consequences
La consequence de ces representations, est que les calculs se feront toujours avec une certaine
precision intrinseque (par exemple 7 chiffres significatifs). Imaginons que nous voulions realiser
le calcul suivant avec des nombres reels codes sur 4 octets
si+1 = si + 109
avec s0 = 1, si lon repete le calcul 109 fois, le resultat donnera 1... La raison en est que pour
realiser laddition la machine dispose dune precision de 107 , donc 1+109 = 1. Le meme calcul
conduit en double precision donnerait un resultat correct (la precision est alors de 15 chiffres).
Il faut donc extremement prudent lorsque lon realise des operations entre des nombres qui
peuvent prendre des valeurs tres differentes. Il est aussi prudent de se rappeler que lorsque
lon fait des calculs iteratifs (ce qui est tres frequent en calcul numerique), les erreurs peuvent
sajouter les unes aux autres pour finalement conduire a des resultats dont lerreur nest pas
negligeable, voire a des resultats aberrants.
Un deuxieme cas classqiue derreur est le suivant : on compare un nombre reel if(a == 0.0)
then .... Le resultat dune telle comparaison est aleatoire a cause des arrondis ! Imaginons que
a soit le resultat dun long calcul, va-t-il valoir 0 ou 0, 1234567.1035 ? Il est prudent de remplacer
la comparaison precedente par if(|a| < ), qui se traduirait par : si |a| est inferieur a la precision
alors . . .
Il faut cependant se poser la question de la precision adaptee a un calcul : si lon est capable
representer un nombre avec une precision de 107 , cela ne represente pas une precision absolue
mais relative. On pourra par exemple par exemple representer x 1 avec cette precision, mais
x 1020 sera represente avec une precision de 107 1020 = 1013 . . .
9
Chapitre 1
Ce chapitre na a priori pas grand chose a voir avec le calcul numerique, cest cependant une
etape necessaire et prealable a des manipulations plus sophistiquees ( par exemple des calculs
statistiques) . Cest de plus un domaine ou de tres nombreux algorithmes ont ete proposes, et
nous allons en detailler quelques uns. Un peu dalgorithmique ne peut pas faire de mal . . .
Pour effectuer un tri, nous allons placer les donnees dans un tableau, nous supposerons dans
la suite que ce tableau comport N elements. Le but sera de reduire au minimum le nombre
doperations pour trier ces N elements. Cette optimisation est souvent indispensable, lorsque le
nombre de donnees est important, ou lorsquon est amene a repeter le tri un grand nombre de
fois. Le nombre doperations necessaires pour trier un tableau de N elements, n op est variable
en fonction des algorithmes :
N log2 N n op N 2
10
CHAPITRE 1. ALGORITHMES DE TRI DE DONNEES 11
Le principe du tri a bulle est des plus simples : supposons que lon souhaite classer un
tableau de nombres entiers par ordre croissant, on va alors parcourir le tableau contenant les N
nombres. Le plus petit nombre sera range dans la preiere case du tableau. Il ne reste plus qua
trier N 1 elements pour lesquels on repete la meme operation. Une illustration de lalgorithme
1 est donnee dans la figure 1.1
Fig. 1.2 Tri dun tableau par la methode du tri par insertion.
i1 = 1, ik+1 = 3ik + 1, k = 1, 2, . . .
Il a ete demontre quen utilisant cette serie dincrements, lalgorithme necessite N 1.5 operations
dans le pire des cas. Lalgorithme 3 est illustre par la figure 1.3.
Algorithme 4 Tri dun tableau par la methode du tri rapide. Dans cet algorithme, le pivot est
le dernier element du tableau.
Requiert: un tableau tab[N] de N elements, initialement debut = 1, f in = N 1
Fournit: le tableau trie par ordre croissant
si debut < f in alors
pivot tab[N 1]
i debut 1
j f in
repeter
repeter
i i+1
tant que tab[i] < pivot
repeter
j j1
tant que tab[j] pivot
tampon tab[i]
tab[i] = tab[j]
tab[j] tampon le pivot est maintenant dans tab[i]
tant que i < j
appel recursif 1 : debut, f in = i 1
appel recursif 2 : debut = i + 1, f in
fin si
renvoyer tab[]
Fig. 1.4 Tri dun tableau par la methode du tri rapide. En haut : on a choisi le pivot 28,
premier tri du tableau. En bas : Visualisation des operations de tris succesives.
Ce chapitre ne se veut pas exhaustif, nous allons simplement aborder le calcul des grandeurs
statistiques les plus couramment utilisees par les physiciens, comme la moyenne. Nous verrons
notamment que, si certains calculs sont tres simples a realiser, ils peuvent neanmoins receler
certains pieges.
Quand un distribution de donnees a tendance a etre groupe autour dune valeur particuliere,
il peut alors etre utile de le caracteriser par des nombres relies a ses moments, c.a.d. la somme
de puissances entieres de ses valeurs.
2.1 Moyenne
Le calcul dune valeur moyenne x est certainement la maniere la plus simple de caracteriser
une distribution de N donnees xi
n
1 X
x= xi
N i=1
linformation obtenue est assez pauvre : on sait maintenant que les donnees sont reparties
plus ou moins regulierement autour de la valeur moyenne x.
Le calcul est elementaire a realiser a laide dun ordinateur, mais il peut poser des problemes
assez serieux. Il convient bien sur de sassurer que le type de representation des nombres est
compatibles avec les donnees utilisees. Lors du calcul de la moyenne, il faut realiser la somme
de toutes les donnees. Ceci peut rapidement conduire a un depassement de capacite. La solution
peut etre de faire la division par n pour chaque element avant de realiser la somme. Mais, outre
le rallongement du temps de calcul, cela peut conduire a des erreurs darrondis, du fait du
nombre doperations realisees. Il ne faudra donc pas oublier de tester les depassements
de capacite lors de ce calcul.
Lutilisation dune valeur moyenne pour estimer une distribution de donnees nest pas forcement
judicieux : imaginons une distribution tres dispersee de valeurs, dans ce cas la valeur moyenne
ne sera pas representative. Il peut alors etre plus judicieux dutiliser le median (voir 2.3)
17
CHAPITRE 2. CACUL DE QUELQUES GRANDEURS STATISTIQUES USUELLES 18
La variance est une estimation de lecart moyen (au carre) entre les valeurs xi et la moyenne
x
2.3 Median
Le median dune distribution de probabilite p(x) est la valeur xmed pour laquelle les valeurs
superieures ou inferieures de x sont equiprobables
Z xmed Z
1
p(x)dx = = p(x)dx
2 xmed
1
xmed = (xN/2 + x(N/2)+1 ), N impair
2
Pour trouver un median, on peut classer toutes les valeurs dune distribution par ordre
croissant ou decroissant, et dutiliser ensuite lequation ci-dessus. Dans le cas ou une distribution
est dispersee, le median peut etre une meilleure estimation que la moyenne.
Nous allons maintenant nous interesser un probleme qui se pose souvent aux experimentateurs.
A lissue dune experience, un experimentateur a souvent enregistre des donnees relatives par
exemple a lobservation dun phenomene physique. Ces donnees sont toujours entachees de bruit
(le plus souvent du aux instruments utilises). Lexperimentateur souhaite neanmoins comparer
ses donnees a un modele. Nous ne nous interesserons ici quau cas ou le modele est connu.
Lexperimentateur souhaite donc uniquement sassurer que le phenomene observe suit bien la
loi ou le modele quil connat. Il souhaitera egalement determiner les valeurs numeriques des
parametres intervenant dans ce modele, et qui ne sont pas connues a priori.
3.2 Implementation
19
CHAPITRE 3. REGRESSION LINEAIRE PAR LA METHODE DES MOINDRES CARRES
20
alors, en posant X xi y i
Sxy = , S = S11
i2
= SSxx (Sx )2 )
on obtient
SSxy Sx Sy
a=
Sxx Sy Sx Sxy
b=
ce sont a nouveau les parametres qui fournissent le meilleur accord entre donnees et modele
en tenant compte des erreurs de mesures. Et lon peut maintenant calculer lerreur sur ces
parametres
S
a =
Sxx
b =
Les statistiques nous permettent egalement de calculer un facteur de confiance sur loperation
qui vient detre realisee : le facteur de confiance pondere (wheighted en anglais ? ? ?)
v
u
u 2
Rw = t P f (xi ,{pj })
i2
par exemple Rw = 0.1 signifie que f est eloignee des donnees de 10 % en unites de .
Dans lexemple de la figure 3.1, est represente un ensemble de donnees qui suivent visiblement
un modele lineaire. Lapplication de la regression lineaire non ponderee donne les resultats
suivants :
a = 1.25
b = 0.5
le trace de cette fonction sur la meme figure, montre que laccord entre donnees experimentales
et regression est excellent. Lapplication de la regression ponderee donne les resultats suivants :
a = 1.25, a = 0.19
b = 0.5, b = 0.42
Rw est quant a lui tres proche de zero.
on voit donc que si la regression est tout a fait pertinente sur cet ensemble de donnees, lincer-
titude sur le parametre b est loin detre negligeable.
Methodes numeriques
23
Chapitre 4
Nous nous interessons ici a un des problemes les plus basiques : resoudre numeriquement une
equation du type
f (x) = 0
Dans le cadre de ce document, nous nallons nous interesser quau cas ou il y a une seule variable
independante x, cest a dire au probleme a une dimension. Excepte le cas des problemes lineaires,
la recherche des racines de la fonction f (x) va se faire par iterations. Il faut pour cela partir dune
solution approchee, meme grossiere, et batir un algorithme qui va ameliorer la solution jusqua
satisfaire un critere de convergence. Nous allons nous interesser a deux types dalgorithmes :
methode dichotomique
methode utilisant la derivee
Mais avant daborder ces algorithmes, nous allons etudier des algorithmes simples denca-
drement permettant de definir des solutions approchees de f (x) = 0.
4.1 Encadrement
On dira quune racine dune fonction f (x) est encadree par lintervalle (a, b) si f (a) et f (b)
ont des signes opposes. Si la fonction est continue, alors il existe au moins une racine de f dans
cet intervalle (theoreme de la valeur intermediaire). Si la fonction nest pas continue, on peut a
la place dune racine, trouver une discontinuite qui traverse le zero dans lintervalle (a, b).
Dun point de vue numerique, cela va etre equivalent a une racine car le comportement va
etre le meme, c.a.d. que lon va traverser le zero entre deux nombres flottants de la representation
en precision finie de la machine. Seules les fonctions du type
1
f (x) =
xc
vont presenter des singularites mais pas de racines. Dans ce cas, certains algorithmes pourront
converger vers c, mais dans ce cas il ny a (heureusement) pas de confusion possible avec une
racine, puisquune evaluation de |f (x)| va donner un resultat tres grand plutot que proche de
zero. Il est donc important davoir une idee de la variation de f (x) dans lintervalle etudie pour
24
CHAPITRE 4. RECHERCHE DES RACINES DUNE FONCTION 25
choisir un algorithme adapte, dou la necessite davoir des algorithmes simples permettant de
determiner les intervalles contenant une racine pour une fonction quelconque.
Lalgorithme 5 permet, partant dun intervalle de depart (x1 , x2 ), de lelargir jusqua ce quil
contienne une racine, les valeurs renvoyees sont alors le nouvel intervalle (x1 , x2 ) contenant une
racine. Ce type de procedure est une bonne maniere de commencer une recherche de racine, et a
de bonnes chances de fonctionner si la fonction etudiee a des signes opposes a la limite x .
A laide de ces algorithmes, nous sommes maintenant capables de trouver des intervalles
contenant les racines dune fonction, cest un pre-requis pour estimer plus precisemment la
valeur dune racine particuliere dune fonction.
4.2 Dichotomie
Le principe est extremement simple, il est schematise sur la figure 4.1. On choisit un intervalle
(a, b) encadrant une racine de la fonction f etudiee. On divise cet intervalle en 2 par un point c.
On evalue f (a).f (c), si f (a).f (c) < 0, alors le nouvel intervalle devient (a, c), sinon (c, b). Et lon
recommence ainsi jusqua ce que lintervalle satisfasse le critere de convergence. Cette methode a
de bonnes chances de fonctionner si la fonction etudiee a des signes opposes a la limite x .
Lalgorithme 4.2 est un algorithme simple permettant de determiner une valeur approchee
de la racine dune fonction dans le cas ou f (x) traverse le zero dans lintervalle (x1 , x2 ) etudie.
Fig. 4.1 principe de la methode de recherche de racines par dichotomie. Lintervalle initial (
1
,
2 ) est divise en 2 par
3 , puis lintervalle devient (
1 ,
3)
la question de ce que represente une tolerance raisonnable lorsque la racine est proche de zero.
Fig. 4.3 Cas particulier ou lon trouve un extremum local. Dans ce cas la methode de Newton-
Raphson diverge
f (x + ) f (x) + f (x) + . . .
f (xi ) f (xi )
xi+1 = xi
i+1 = i
f (xi ) f (xi )
Quand une solution approchee xi differe de la solution vraie par une quantite i = xi , on
a
f (xi )
f () = f (xi + i ) = f (xi ) + i f (xi ) + 2i + ...
2
f (xi )
f () = 0 f (xi + i ) = f (xi ) + ( xi )f (xi ) + 2i + ... = 0
2
donc
f (xi )
2 f (xi )
x i + + i 0
f (xi ) 2f (xi )
| {z }
=xi+1
dou
f (xi )
i+1 = xi+1 2i
2f (xi )
on voit donc que la convergence est quadratique, la methode est plus efficace que la dichotomie
ou la convergence nest que lineaire. Ceci suppose bien sur que lon sache evaluer f (x) en tout
point, et que f () 6= 0.
Si la forme analytique de f (x) nest pas connue, il faut calculer numeriquement cette quantite
par
f (x + dx) f (x)
f (x)
dx
ondoit donc evaluer f (x) 2 fois a chaque iteration, lordre de convergence va donc passer de 2
a 2. De plus, si lintervalle dx est trop petit, il y a un risque que les erreurs darrondi fassent
diverger le calcul. A loppose, si lintervalle dx est grand, la convergence ne sera que lineaire.
En conclusion on peut donc dire que la methode de Newton-Raphson nest pas une methode
interessante si lon ne peut determiner de forme analytique de f (x).
Le probleme peut-etre pose simplement : considerons une fonction f dependant dune ou plu-
sieurs variables independantes. Nous voulons trouver les valeurs de ces variables pour lesquelles
f prend une valeur maximale ou minimale. La recherche dun maximum ou dun minimum
peuvent etre realisee par un programme identique en travaillant simplement sur f ou 1/f .
Un extremum dune fonction peut etre soit local (minimum dans un intervalle donne)soit
global (minimum reel) comme on le voit sur la figure 5.1
Fig. 5.1 Les extremums dune fonction peuvent etre locaux ou globaux
Cest une des raisons pour lesquelles la recherche dun extremum est souvent une tache
delicate. Ce chapitre va etre extremement succint, puisque nous naborderons quune methode
de minimisation dune fonction presentant une variable independante (probleme 1D).
31
CHAPITRE 5. MINIMISATION OU MAXIMISATION DUNE FONCTION 32
caracteriser un minimum. Nous aurons besoins dans ce cas de trois points (a, b, c). Un intervalle
tel que a < b < c et f (b) < f (a), f (b) < f (c) caracterise un minimum dans lintervalle (a, c). En
dautres termes pour encadrer un minimum nous avons besoin dun triplet de point tel que le
point central presente une valeur de f inferieure a celles des bornes de lintervalle.
5.1.1 Principe
Le principe de cette recherche est resume sur la figure 5.2. Le minimum est encadre a lorigine
par (
1 ,
3 ,
2 ). La fonction est evaluee en
4 , qui remplace
2 . Ensuite en
5 qui remplace
1 puis
en
6 qui remplace
4 . La regle est de garder un point central pour lequel la valeur de f est
inferieure a celles des bornes. Apres cette serie diterations, le minimum est alors encadre par
(
5 ,
3 ,
6 ). Le principe est analogue a celui utilise lors dune recherche de racine par dichotomie
(cf. chapitre 4.2)
Fig. 5.2 Encadrements succesif dun minimum dune fonction f . Le minimum est encadre a
lorigine par (
1 ,
3 ,
2 ). Apres 3 evaluations de f le minimum est finalement encadre par (
5 ,
3
,
6 ).
Le seul point delicat, est de definir une methode pour choisir un nouveau point dencadrement
dans lintervalle (a, b, c) initial. Supposons que b soit une fraction du segment [ac], alors
ba cb
= =1
ca ca
Si lon choisit un nouveau point x eloigne dune fraction z par rapport a b
xb
=z
ca
le nouveau segment dencadrement aura alors une longueur + z par rapport au segment initial,
ou de longueur 1 . Si nous voulons minimiser le pire cas (attitude plutot saine...) nous allons
choisir z pour que ces deux longueurs soient equivalentes.
1 = + z z = 1 2
On montre alors simplement que le nouveau point x est le symetrique de b dans son intervalle
dorigine, c.a.d. que |b a| = |x c|. Cela signifie que le point x se trouve dans le plus grand des
segments [ab], [bc]. Reste maintenant a definir la position du point x a linterieur de ce segment.
La valeur provient dune etape precedente de calcul, et si lon suppose quelle est optimale,
alors z doit etre choisie de la meme maniere. Cette similarite dechelle implique que x doit etre
situe a la meme fraction du segment [bc] (si [bc] est le segment le plus long) que b letait du
segment [ac]. Cela conduit a la relation
z
=
1
En dautres termes, ce resultat signifie que lintervalle dencadrement (a, b, c) a son point central
b est situe a une distance telle que
ba
= 0.38197
ca
ou
cb
= 1 0.61803
ca
ces fractions sont celles de la moyenne dor ou de la section dor supposees avoir certaines
proprietes esthetiques par les pythagoriciens du monde antique. Cest la raison pour laquelle
cette methode optimale de determination du minimum dune fonction est appelee recherche par
section dor (golden search section). Lalgorithme 9 decrit une impementation de cette methode.
5.1.2 Convergence
Cette methode garantit que chaque nouvelle evaluation de la fonction va encadrer le minimum
dans un intervalle qui vaut 0.61803 fois le precedent, en dautres termes
i+1 = 0.61803i
Cela signifie donc que la convergence est lineaire, mais moins rapide que dans le cas de la methode
de recherche de racines par dichotomie ou le nouvel intervalle valait la moitie du precedent.
La methode abordee dans ce chapitre nest bien evidemment pas la seule. Il existe des
methodes pouvant etre plus performantes, ou mieux adaptees a des cas particuliers, et egalement
un tres vaste champ dinvestigation concernant les problemes a N dimensions que nous navons
pas abordes. Je ne saurais trop vous conseiller la lecture du chapitre 10 des Numerical Recipes
1 pour vous cultiver sur ce sujet. . .
1
Numerical Recipes in C, W.H. Press et al., Cambridge University Press,2002. Le meme livre existe pour
dautres language de programmation : Fortran et C++.
Interpolation
si lon suppose que f a une derivee seconde, lecart entre f et Pi (et donc lerreur commise lors
dune interpolation peut-etre estimee par
(xi+1 xi )2
max |f (x) Pi (x)| max |f (x)|
2
36
CHAPITRE 6. INTERPOLATION 37
pour xi xi+1 . Si lecart entre deux evaluations successives de la fonction (le pas dechantillongage)
vaut xi+1 xi = h alors lerreur sexprime
h2
max |f (x) Pi (x)| max |f (x)|
2
Fig. 6.1 La fonction f est definie aux points xi , entre ces points, il est possible de linterpoler
par un polynome dordre 1 passant par deux points consecutifs.
exemple : soit la fonction f (x) = sin(x) evaluee (tabulee) en n + 1 points dans lintervalle
[0; 2 ] avec une precision desiree de 10m . Dans ce cas le pas dechantillonage h = /2n, et lon
souhaite 2
m 1 d2 sin(x)
max |f (x) P (x)| 10 max | | 10m
2n 2 dx2
d2 sin(x)
= sin(x)
dx2
donc 2
d2 sin(x) 1
max | |=1 10m
dx2 2n 2
dou
2 m 8n2 m 2 2 m
10 10 n .10
8n2 2 8
ce qui conduit finalement a
n .10m/2
2 2
Concretement, cela signifie que si lon souhaite pouvoir interpoler un point de la fonction f avec
une precision de 10m , il va etre necessaire devaluer la fonction f en n points. Le tableau 6.1
resume ceci pour quelques valeurs de m. Ceci vous montre quaugmenter la precision peut couter
extremement cher en temps de calcul.
Il pourrait etre astucieux de faire varier le pas dechantillonage h de la fonction f , de facon
a suivre le rayon de courbure local de la fonction : la ou il est grand choisir h na pas besoin
detre grand, et inversement. On pourrait construire un algorithme realisant cette operation en
precision n
103 35
106 1000
108 11000
Tab. 6.1 Nombre devaluations n necessaires pour parvenir a une precision donnee dans le cas
dune interpolation lineaire.
evaluant la derivee seconde de la fonction en chaque point. Neanmoins, le calcul dune derivee
seconde nest pas toujours facile a realiser, il vaut donc mieux utiliser une methode plus precise,
c.a.d. utiliser un polynome dordre plus eleve.
Fig. 6.2 La fonction f est definie aux points xi , entre ces points, il est possible de linterpoler
par un polynome dordre 2 passant par trois points consecutifs.
Cette expression est simple lorsque le pas dechantillonage est constant. Si ce pas vaut h
alors x = xi+1 + u.h. Si u = 1 x = xi , si u = 0 x = xi+1 et si u = 1 x = xi+2 . Lequation
precedente peut alors secrire plus simplement
fi+2 fi fi+2 2fi+1 + fi 2
Pi+1 (u) = fi+1 + u+ u
2 2
Lerreur est maintenant majoree par le terme dordre 3 du developpement en serie de Taylor de
f (x) au point xi+1 :
h3 (3)
max |f (x) Pi+1 (x)| |f (x)| max
6
Exemple : Si lon reprend lexemple precedent de f (x) = sin(x) evaluee en n + 1 points,
avec une precision de 10m , on obtient linegalite
n .10m/3
236
Le tableau 6.2 presente le nombre devaluations necessaires de la fonction pour une precision
donnee. Il est clair que cette methode est plus performante dans le cas de la fonction etudiee
que linterpolation dordre 1.
precision n
103 9
106 90
108 400
Tab. 6.2 Nombre devaluations n necessaires pour parvenir a une precision donnee dans le cas
dune interpolation quadratique.
ou plus simplement
n
X
Pn (x) = Li (x)f (xi )
i=0
avec
n
Y (x xj )
Li (x) =
j=0
(xi xj )
j6=i
(xn x0 )n+1
max |f (x) Pn (x)| max |f (n+1) (x)|.
(n + 1)!
Ceci suppose que la derivee dordre (n + 1) de f existe et est continue. Lalgorithme 10 permet
de calculer la valeur dun polynome de Lagrange dordre n en un point, connaissant la fonction
f en n + 1 points.
Exemple : si lon reprend lexemple de la fonction f (x) = sin(x) definie en n + 1 points sur
lintervalle [0; /2], et que lon veuille interpoler une valeur avec une precision de 10m alors
n+1
m 1
10 .
2n (n + 1)!
Integration de fonctions
Dans ce chapitre, nous nallons pas aborder la determination des primitives des fonctions
(ceci concerne le calcul formel, et des logiciels comme MAPLE, MATHEMATHICA...), mais le
calcul numerique dune integrale
Z b
f (x)dx
a
qui revient a calculer laire sous la courbe f (x) entre a et b. Nous allons aborder 3 methodes :
integration par la methode des rectanges
integration par la methode des trapezes
integration par la methode de Simpson
ces methodes sont basees sur linterpolation dordre 0,1,2 respectivement. Ces methodes sont
generalisables a lordre n. Nous terminerons ce chapitre par une discussion sur la recherche dun
pas optimal dintegration.
Pour cela, nous allons tabuler f (x) en n + 1 points f0 , f1 . . . fn dans lintervalle dintegration
[x0 , xn ]. On peut approximer laire sous la courbe f (x) par une serie de rectangles comme
represente sur la figure 7.1, ce qui mathematiquement correspond a linterpolation de f par un
polynome dordre 0 (une constante). Si la distribution des points est uniforme, ce qui revient a
xi+1 xi = h, lintegration revient a calculer
n1
X
I=h fi
i=0
41
CHAPITRE 7. INTEGRATION DE FONCTIONS 42
Fig. 7.1 Decoupage de laire sous la courbe f par une serie de rectangle.
Il y a cependant 2 possibilites pour realiser ce calcul , comme cela est montre a la figure 7.2.
On peut en effet majorer ou minorer la fonction selon que lon calcule respectivement
n1
X
I=h fi+1
i=0
ou
n1
X
I=h fi
i=0
Fig. 7.2 Il y a deux manieres de delimiter laire sous la courbe par une serie de rectangle :
fi (xi+1 xi ) (minoration) ou fi+1 (xi+1 xi ) (majoration)
Fig. 7.3 Decoupage de laire sous la courbe f par une serie de trapezes.
si lechantillonage des points est regulier, c.a.d. si xi+1 xi = h alors lintegrale sexprimera
n1
h X
I= (f0 + fn ) + h. fi
2 i=1
en effet chaque trapeze aura chacun de ces cotes en commun avec les trapezes adjacents, a
lexception du premier et du dernier qui nont quun cote en commun.
h2
|f (x)|max
2
donc pour chaque intervalle h dintegration
h3
|f (x)|max
4
Lincertitude totale pour n pas dintegration sera donc
h3
n. |f (x)|max
4
La precision est superieure a celle de lintegration par rectangles, le terme derreur etant main-
tenant le terme du deuxieme ordre du developpement de f en serie de Taylor.
1
R(0, 0) = 2 (b a)(f (a) + f (b))
1 P2n1
R(n, 0) = 2 R(n 1, 0) + h k=1 f (a + (2k 1)h)
1 m
R(n, m) = 4m 1 (4 R(n, m 1) R(n 1, m 1))
avec h = (b a)/2n , n 1, m 1.
On utilise alors les termes diagonaux R(n, n) comme estimation de lintegrale avec une erreur
en O(h2n+1 . Si vous developpez a la main les equations precedentes, vous constaterez que les
valeurs de R situees dans la premiere colonne, correspondent a la methode des trapezes pour
nu intervalle divise en 2 puis en 3 . . .. La deuxieme colonne correspond aux memes calculs avec
la methode de Simpson, et ainsi de suite. Generalement, pour implementer cette methode, on
poursuit le calcul jusqua ce que (critere de convergence) la difference entre 2 valeurs successives
dune ligne soit inferieure a une precision souhaitee. Les premiers termes R(n, 0) sont calcules
par la methode des trapezes, avec un nombre de pas qui augmentent a chaque iteration, les
termes suivants sont estimes a partir des calculs precedents.
Les valeurs numeriques suivantes correspondent a lestimation de
Z 1.25
cos(x2 )dx = 0.9774
0
le calcul a ete arrete lorsque m = 5. Vous voyez cependant que lon est encore loin dune
estimation correcte : la valeur exacte est 0.9774 soit une erreur de = 1.02e 1.
quel est le pas optimal h = xi+1 xi permettant de calculer In avec une precision donnee. Nous
avons jusqua present considere le pas h comme une constante. Reprenons le cas de lintegration
par trapeze. Si lon souhaite determiner In a la precision , il suffit de choisir un pas h0 , de
calculer I0 , puis de diminuer le pas en h1 , calculer I1 ... Ceci tant que |In+1 In | . La
methode est simple, mais les calculs sont repetitifs et potentiellement longs. Il existe un moyen
de reduire le temps de calcul en introduisant une relation de recurrence permettant dexprimer
In+1 en fonction de In . Nous allons detailler ce calcul, toujours dans le cas dune integration par
trapezes.
1 On pose h0 = b a, et on calcule
h0
I0 = [f (a) + f (b)]
2
2 On pose h1 = h0 /2 et on calcule
I0
2
z }| {
h1 h1
I1 = [f (a) + f (a + h1 ) + f (a + h1 ) + f (b)] = [f (a) + f (b)] +h1 f (a + h1 )
2 2
1
= I0 + h1 f (a + h1 )
2
1
= [I0 + h0 (f (a + h1 ))]
2
3 On pose h2 = h1 /2 = h0 /4 et on calcule
h2
I2 = [f (a) + f (a + h2 ) + f (a + h2 ) + f (a + 2h2 ) + f (a + 2h2 ) + f (a + 3h2 ) + f (a + 3h2 ) + f (b)]
2
h2
= [f (a) + f (b)] +h2 [f (a + h2 ) + f (a + 2h2 ) +f (a + 3h2 )]
|2 {z } | {z }
h1 f (a+h1 )
4
[f (a)+f (b)]
| {z }
I1
2
1
= I1 + h2 [f (a + h2 ) + f (a + 3h2 )]
2
1
= {I1 + h1 [f (a + h2 ) + f (a + 3h2 )]}
2
4 On pose h3 = h2 /2 = h0 /8
h3
I3 = [f (a) + f (b) + 2f (a + h3 ) + 2f (a + 2h3 ) + 2f (a + 3h3 ) + 2f (a + 4h3 )
2
+2f (a + 5h3 ) + 2f (a + 6h3 ) + 2f (a + 7h3 )]
1
= I2 + h3 [f (a + h3 ) + f (a + 3h3 ) + f (a + 5h3 ) + f (a + 7h3 )]
2
1
= {I2 + h2 [. . .]}
2
Derivation numerique
Nous allons nous interesser dans ce chapitre au calcul de la derivee dune fonction echantillonee,
c.a.d dune fonction dont seulement certaines valeurs sont connues. La definition mathematique
de la derivee f (x) dune fonction f (x) definie sur un intervalle I avec x I est
lim f (x + ) f (x)
f (x) = 0
ou
lim f (x) f (x )
f (x) = 0
selon que lon realise une estimation a droite ou a gauche respectivement. Comme lon calcule
la limite pour 0, les deux expressions sont strictement equivalentes.
48
CHAPITRE 8. DERIVATION NUMERIQUE 49
presente une erreur correspondant au terme dordre 2 du devellopement de Taylor, cette erreur
est un terme h2 .|f (x)|. On voit donc que cette methode nest pas tres precise, elle donne de
plus des resultats differents suivant que lon realise une estimation a gauche ou a droite. Pour
ces raisons, cette methode est peu employee. Nous allons maintenant voir quil est possible de
lameliorer a peu de frais.
h2 h3
f (x + h) = f (x) + h.f (x) + .f (x) + f (3) + . . .
2 6
h2 h3
f (x h) = f (x) h.f (x) + .f (x) f (3) + . . .
2 6
on en deduit que
h3 (3)
f (x + h) f (x h) = 2h.f (x) + 2 f + ...
6
et il apparat alors que
f (x + h) f (x h)
f (x)
2h
2
avec une erreur correspondant au terme h3 |f (3) (x)|. Nous sommes maintenant en possession
dune methode symetrique, avec un terme derreur a lordre 2.
|f (x + h)| + |f (x h)|
Inumerique = = |f (x)|
2h h
Lincertitude totale comprenant lerreur intrinseque au calcul de la derivee sexprime
h2
Itotal = |f (x)| + |f (3) (x)|
h 3
Cest un probleme tres frequent en physique (phenomenes transitoires dans un circuit RLC
par exemple), chimie (cinetique des reactions chimiques), astronomie . . .Le probleme a lordre 1
peut-etre resolu par les methodes dintegration du chapitre 7
Z
dy
= r(x) y(x) = r(x)dx
dx
Dans ce chapitre, nous considererons 3 types de bases dequations differentielles respective-
ment decroissantes, croissantes ou oscillantes :
dy
+ y y = y0 exp(x)
dx
dy
y y = y0 exp(x)
dx
dy
iy y = y0 exp(ix)
dx
et nous aborderons plusieurs methodes numeriques de resolution de ce type dequation, en met-
tant laccent sur le fait que toutes les methodes ne sont pas adaptees a tous les types dequation.
Les problemes physiques sont souvent dordre superieur, comme dans lequation
d2 y dy
+ = r(x)
dx dx
on peut facilement se ramener au probleme a lordre 1 en reecrivant lequation du deuxieme
ordre precedente comme un systeme dequation du premier ordre
dy
= z(x)
dx
dz
= r(x) z(x)
dx
51
CHAPITRE 9. RESOLUTION DEQUATIONS DIFFERENTIELLES LINEAIRES 52
systeme que nous pouvons resoudre par integration. On peut generaliser a une equation differentielle
dordre N , que lon recrit comme un systeme de N equations fi dordre 1
dyi (x)
= f (x, y1 . . . yN )
dx
ou les fonctions fi sont connues. Pour resoudre le systeme, il suffit dintegrer les fonctions fi .
Pour resoudre numeriquement ce systeme, on part dun point donne (x0 , y0 ) representant les
conditions initiales du probleme. On choisit ensuite un pas dintegration fini h = x comme
pour les methodes du chapitre 7, et lon integre pas a pas avec
xn = xn1 + h
yn = yn1 + y
dans ce chapitre, nous allons detailler differentes methodes pour evaluer les pas finis y.
yi+1 = yi + hf (xi , yi )
Fig. 9.1 Methode dEuler. Dans cette methode dintegration dune equation differentielle, la
derivee au point de depart xn de chaque intervalle est extrapolee pour trouver la valeur suivante
en xi+1 de la fonction.
Nous voyons donc que le terme en h est correctement exprime dans lapproximation de la
methode dEuler, mais que le terme dordre superieur est faux. Ceci nous permet de decrire
la methode dEuler comme une methode du premier ordre.
Le terme derreur parfois appele erreur darrondi est ici le terme en h2 , on peut reecrire
lequation de la maniere suivante
y(x + h) = y(x) + hy(x) + O(h2 )
le terme O(h2 ) etant le terme derreur (a lordre 2)
Nous venons de voir que la methode dEuler est une methode du premier ordre. Il reste a se
poser une question importante : quelle est sa stabilite ? Supposons qua un moment du calcul,
la solution numerique differe de la vraie solution dune quantite y. Nous ecrivons
f
yi+1 + yi+1 = yi + yi h f (yi , xi ) + yi
y i
ou le terme entre crochets est le developpement de f en serie de taylor, en soustrayant ceci a
lexpression de yi+1 , on obtient
f
yi+1 = 1h yi = gyi
y i
f
1 1 h 1
y
h etant positif par definition, la deuxieme inegalite impose donc que la derivee de f par rapport
a y soit elle aussi positive. La premiere inegalite introduit une restriction sur x
f
h 2/
y
Si cette derivee est complexe, il faut faire attention au calcul de |g|. Dans ces cas il peut etre
plus facile de rechercher des solutions a la condition |g2 | 1.
Dans le cas dune equation doscillation du type
dy
iy = 0 y = yo exp(ix)
dx
cette inegalite conduira a
1 + h2 2 1
qui est impossible a satisfaire pour des et h reels. De meme pour une equation du type
dy
y = 0 y = yo exp(x)
dx
cette analyse na pas de sens. Dans ce cas il serait plus judicieux de sinteresser a lerreur relative,
et imposer que cette erreur dans la solution naugmente pas.
dN dN
+ k.N = 0 = k.N = f (t)
dt dt
dt = 1 ms dt=30ms
-100*t 4 dt=1ms
e
0,8
0,6
2
N / N0
N /N0
0,4
0,2
0 -2
0 0,05 0,1 0
Temps (s) Temps (s)
Un simple examen de ce graphe permet de comprendre quil est important de choisir un pas
dintegration satisfaisant le critere de stabilite de la methode, sous peine de voir le calcul diverger
rapidement . . .On voit donc quune methode peut donner de bons resultats dans certains cas, et
pas dans dautres. Il convient donc de se poser ces questions avant de se lancer dans des calculs
complexes. . .
9.2.1 Stabilite
Si lon tient le meme raisonnement que pour la methode dEuler, on peut exprimer la variation
de la solution par rapport a la solution vraie pour une equation decroissante :
f
yi+1 = yi1 2h yi
y
Une variante de cet algorithme, que nous detaillons ici est lalgorithme Verlet vitesses, base sur
le meme principe pais dans lequel on inclue explicitement la vitesse :
1
x(t + h) = x(t) + v(t).h + a(t).h2
2
a(t) + a(t + h)
v(t + h) = v(t) + .h
2
on peut montrer que lerreur est du meme ordre que pour lalgorithme du Verlet. On limplemente
generalement de la maniere suivante :
1. on calcule
1
x(t + h) = x(t) + v(t).h + a(t).h2
2
2. on calcule
v(t + h/2) = v(t) + a(t).h/2
Cet algorithme suppose que lacceleration a(t + h) ne depend que de x(t + h), et pas de v(t + h).
Fig. 9.3 Methode de Runge Kutta dordre 2. Dans cette methode dintegration dune equation
differentielle, on obtient une precision au deuxieme ordre en utilisant la derivee au point de
depart xi pour trouver un point intermediaire. On utilise ensuite la derivee en ce point pour
trouver la valeur suivante de la fonction.
Exemple dapplication
Reprenons lexemple presente pour la methode dEuler,
dN dN
+ k.N = 0 = k.N = f (t)
dt dt
Nous allons resoudre numeriquement cette equation avec k = 100s1 en utilisant la methode
RK2.
Nous avons montre precedemment que cette methode etait stable si le pas dintegration h
(ici un temps) respectait le critere h 2/, dans ce cas precis = k. Il est donc necessaire
dans ce cas de choisir un pas h 2.102 s pour satisfaire le critere de stabilite. La figure 9.4
represente les resultats de la simulation pour des pas dintegration inferieurs ou superieurs a ce
critere, ainsi que la solution exacte en trait plein.
A nouveau,un simple examen du graphe permet de comprendre quil est important de choisir
un pas dintegration satisfaisant le critere de stabilite de la methode, sous peine de voir le calcul
diverger rapidement. On notera cependant que le comportement est different de celui observe
avec la methode dEuler.
-2
pas de temps : 2,1.10 s
-3
pas de temps 10 s
N / N0
0
0 0,1 0,2
Temps (s)
Fig. 9.4 Application de la methode Runge Kutta dordre 2 : simulation de levolution tem-
porelle du nombre de noyaux dune source radioactive (constante de decroissance radioactive
100s1 . Le critere de stabilite de la methode impose un pas dintegration inferieur a 0.02 s.
Lorsque ce critere nest pas respecte, le resultat diverge par rapport a la solution exacte tracee
en trait plein.
Fig. 9.5 Methode Runge Kutta dordre 4. Dans cette methode dintegration dune equation
differentielle, on obtient une precision au quatrieme ordre en evaluant 4 fois la derivee : une fois
au point de depart, deux fois au milieu de lintervalle, et une fois en un point final estime.
h k2
k3 = h.f (xi + ), yi + )
2 2
k4 = h.f (xi + h, yi + k3 )
et lon calcule alors la valeur de y au point xn+1 en sommant ces quatres termes
k1 k2 k3 k4
yi+1 = yi + + + + + O(h5 )
6 3 3 6
le terme derreur est alors dordre 5. Cette methode peut paraitre ressembler a un bricolage,
mais cest une des methodes les plus utilisees en physique : elle est en effet stable et efficace dans
beaucoup de cas. Pour des raisons de lourdeur des calculs, nous ne detaillerons pas les criteres
de stabilite de cette methode, qui est cependant la plus robuste de toute celles que nous venons
daborder.
References bibliographiques et
informatiques
La litterature couvrant ce domaine est importante, je ne citerai ici que quelques references
qui mont servi a la realisation de ce document. Libre a vous den utiliser dautres.
1. Numerical Recipes in C, second edition, Cambridge University Press, 1992
W.H. Press, S.A. Teukolski, W.T. Vetterling, B.P. Flannery
La bible pour lutilisateur ! Le livre peut etre telecharge au format PDF a ladresse http ://lib-
www..lanl.gov/numerical/bookcpdf.html
2. Physique numerique, Ed. Vuibert, 1998
P. Depondt
Malheureusement epuise
3. Methodes de calcul numerique, Ed. Hermes, 2001
J.P. Nougier
Vous trouverez ici quelques references doutils informatiques libres. Cela signifie que ces outils
sont gratuits, et que vous disposez de leurs codes sources. Libre a vous de les utiliser, de lire les
sources pour les comprendre . . .Ces outils developpes sur platte-forme UNIX, fonctionnent aussi
sous Windows (sauf Linux bien sur).
1. Un systeme dexploitation stable, fonctionnant sur architecture PC : Linux. Voir par
exemple le site de la distribution Mandrake
http ://www.linux-mandrake.com
ou
http ://www.linux.org
2. La reference des compilateurs C : gcc, il compile aussi le C++, lObjC . . .
http ://www.gnu.org/software/gcc
3. Besoin dune librairie de calcul numerique ? Pensez a la GNU Scientific Library
http ://www.gnu.org/software/gsl
4. Un logiciel de trace de courbe tres complet : Gnuplot, il fonctionne meme sous Windows
http ://www.gnuplot.info
62
List of Algorithmes
63