M´ethodes d’analyse num´erique

Cours commun au DEA“Mod´elisation Dynamique et
Statistique des Syst`emes Complexes” et au DESS
“Interfaces, G´enie des milieux divis´es”
Pascal Viot
Laboratoire de Physique Th´eorique des Liquides, Boˆıte 121,
4, Place Jussieu, 75252 Paris Cedex 05
Email : viot@lptl.jussieu.fr
25 novembre 2003
Ce cours est une introduction aux m´ethodes d’analyse num´erique tr`es lar-
gement utilis´ees en physique afin de r´esoudre les ´equations alg´ebriques ou dif-
f´erentielles que l’on rencontre dans la mod´elisation de ph´enom`enes physiques,
chimiques ou biologiques.
Ce domaine particuli`erement vaste n´ecessite simultan´ement des connais-
sances math´ematiques, informatiques et physiques. De larges classes de pro-
bl`emes num´eriques sont abord´ees dans ces notes et montrent la n´ecessit´e de
bien caract´eriser les propri´et´es math´ematiques du probl`eme consid´er´e afin de
choisir la m´ethode num´erique la mieux adapt´ee pour le traitement num´erique.
2
Chapitre 1
Int´egration et sommes
discr`etes
Contenu
1.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . 3
1.2 Les m´ethodes de Cˆ otes . . . . . . . . . . . . . . . . . 4
1.2.1 Trap`eze . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.2.2 Simpson . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.3 M´ethode de Romberg . . . . . . . . . . . . . . . . . . 7
1.4 M´ethodes de Gauss . . . . . . . . . . . . . . . . . . . 7
1.5 M´ethode de Gauss-Kronrod et m´ethodes adaptatives 9
1.6 Int´egrales multiples . . . . . . . . . . . . . . . . . . . 11
1.1 Introduction
Les sciences physiques se fixent l’objectif de pr´edire les ph´enom`enes ` a partir
de la connaissance d’un nombre fini de grandeurs microscopiques intervenant
dans la mod´elisation. Celle-ci doit, dans un premier temps, d´ecrire les faits
exp´erimentaux observ´es et, dans un second temps, permettre d’en pr´edire de
nouveaux. La description des ph´enom`enes peut ˆetre soit microscopique, soit
ph´enom´enologique.
La mod´elisation se divise naturellement en trois ´etapes : une premi`ere ´etape
consiste ` a d´eterminer les param`etres microscopiques essentiels qui interviennent
pour d´ecrire le ph´enom`ene puis ` a choisir le mod`ele adapt´e pour d´ecrire le ph´e-
nom`ene. La second ´etape consiste ` a ´etablir les ´equations (tr`es souvent diff´eren-
tielles) qui d´ecrivent le ph´enom`ene. La troisi`eme ´etape consiste ` a r´esoudre les
´equations pr´ec´edemment ´etablies afin de donner des r´eponses quantitatives. Ces
r´eponses permettent de valider ou d’invalider le mod`ele, soit en comparant les
pr´edictions avec l’exp´erience, soit en analysant la coh´erence interne du mod`ele
` a travers ses pr´edictions.
Dans la situation la plus optimiste o` u il a ´et´e possible de r´ealiser les trois
´etapes pr´ec´edentes, l’obtention d’un r´esultat num´erique n´ecessite au moins le
calcul d’une int´egrale simple. Pour r´ealiser ce ’simple’ travail, il existe bien
3
Int´egration et sommes discr`etes
souvent plusieurs m´ethodes et la tˆ ache principale consiste ` a s´electionner celle
qui est la mieux adapt´ee pour satisfaire l’objectif. Ce principe est tr`es g´en´eral
et s’applique ` a l’ensemble des probl`emes num´eriques que nous allons aborder
tout au long de ce cours. Ce cours a donc pour objectifs de pr´esenter quelques
algorithmes associ´es ` a chacun des probl`emes rencontr´es. Il existe des logiciels
gratuits ou payants qui utilisent les m´ethodes num´eriques que nous allons ren-
contrer dans ce cours ; la connaissance de ces m´ethodes est donc un pr´ealable
pour choisir la mani`ere de r´esoudre un probl`eme num´erique donn´e le plus effi-
cacement possible.
Le cas typique d’une int´egrale d´efinie ` a ´evaluer est
I =

b
a
f(x)dx. (1.1)
Comme l’´evaluation de la fonction f pour une infinit´e de points est impossible,
l’int´egration num´erique consiste ` a remplacer l’int´egrale Eq. (1.1) par une somme
discr`ete sur un nombre fini de points.
I
N
=
N
¸
i=1
a
i
f(x
i
) (1.2)
o` u a
i
et x
i
sont des variables que nous allons pr´eciser dans la suite. Pour que
l’´evaluation num´erique soit correcte, il est n´ecessaire d’imposer que toute m´e-
thode v´erifie que
lim
N→∞
I
N
= I (1.3)
Au del` a de la v´erification de ce crit`ere Eq. (1.3), la qualit´e d’une m´ethode
sera ´evalu´ee par la mani`ere dont la convergence vers le r´esultat exact s’effectue.
Dans la suite nous allons consid´erer des fonctions de classe C
1
1
(continˆ ument
d´erivable) sur le support [a, b]
2
. La derni`ere restriction impos´ee ` a la fonction est
que
[f

(x)[ < K ∀x ∈ [a, b] (1.4)
o` u K est une constante finie. Cela revient ` a supposer que la d´eriv´ee de la
fonction f n’est jamais singuli`ere sur le support [a, b].
1.2 Les m´ethodes de Cˆ otes
Math´ematicien anglais, contemporain et collaborateur de Newton, Roger
Cˆ otes s’est int´eress´e ` a des m´ethodes de calculs num´eriques et exacts pour l’in-
t´egration et explique que les m´ethodes suivantes portent son nom.
1
On peut calculer l’int´egrale d’une fonction plus g´en´erale ` a condition que cette fonction ait
la mˆeme mesure (mesure d´efinie au sens de Lebesgue) qu’une fonction de classe C1, c’est-` a-dire
que les fonctions ne diff`erent que sur un ensemble de mesure nulle. Comme exemple simple
d’ensemble de mesure nulle, citons les ensembles d´enombrables.
2
Si la fonction est continˆ ument d´erivable par morceaux sur un nombre fini d’intervalles sur
l’intervalle [a, b], on peut se ramener au cas pr´ec´edent sur chaque intervalle, et donc ´evaluer
l’int´egrale sur l’ensemble de l’intervalle [a, b].
4
1.2 Les m´ethodes de Cˆ otes
0 0.5 1 1.5 2 2.5 3
x
1
1.5
2
2.5
y
Fig. 1.1 – Illustration de la m´ethode des trap`ezes : la partie gris´ee correspond
` a l’aire calcul´ee par l’´equation (1.7)
Les m´ethodes les plus simples que l’on peut utiliser pour calculer une int´e-
grale simple sont celles o` u les abscisses sont choisies de mani`ere r´eguli`erement
espac´ees. Si on a N +1 abscisses, on rep`ere celles-ci simplement par la relation
x
i
= x
0
+ih (1.5)
avec x
0
= a, x
N
= b, i est un entier allant de 0 ` a N et h est appel´e le pas de
l’int´egration. Pour simplifier les notations, on pose
f
i
= f(x
i
) (1.6)
1.2.1 Trap`eze
La m´ethode des trap`ezes consiste ` a approximer la fonction entre deux abs-
cisses successives par une droite (voir Fig. (1.1)), ce qui donne.

x
i+1
x
i
f(x)dx =
h
2
(f
i
+f
i+1
) +O(h
3
f

). (1.7)
Le terme d’erreur indique la qualit´e de l’´evaluation de l’int´egration et d´epend de
mani`ere cubique du pas d’int´egration; f

se r´ef`ere ` a un point situ´e ` a l’int´erieur
5
Int´egration et sommes discr`etes
de l’intervalle. Pour que cette m´ethode converge rapidement il est n´ecessaire de
choisir un pas h inf´erieur ` a f

. A noter que cette formule devient exacte quand
la fonction est un polynˆ ome de degr´e 1 sur l’intervalle [x
1
, x
2
].
Sur l’intervalle [a, b], on a

b
a
f(x) = h
N−1
¸
i=1
f
i
+
h
2
(f
0
+f
N
) +O

(b −a)
3
f

N
2

(1.8)
o` u on a utilis´e que h = (b −a)/N
1.2.2 Simpson
La m´ethode de Simpson consiste ` a remplacer la fonction par un polynˆ ome
de degr´e 2 sur un intervalle constitu´e de trois abscisses cons´ecutives

x
i+2
x
i
f(x)dx = h

1
3
f
i
+
4
3
f
i+1
+
1
3
f
i+2

+O(h
5
f
(4)
). (1.9)
Il se trouve que cette formule est exacte jusqu’` a des polynˆ omes de degr´e 3 ce
qui implique que l’erreur d´epende de h ` a la puissance 5.
On peut aussi d´eterminer la formule ` a 4 points qui est aussi exacte pour les
polynˆ omes de degr´e 3. Cette formule s’appelle aussi Simpson 3/8 ` a cause des
coefficients du d´eveloppement

x
i+3
x
i
f(x)dx = h

3
8
f
i
+
9
8
f
i+1
+
9
8
f
i+2
+
3
8
f
i+3

+O(h
5
f
(4)
). (1.10)
Sur un intervalle complet, en choisissant N pair, la m´ethode de Simpson
donne une estimation de l´int´egrale sur l´intervalle [a, b].

b
a
f(x) =
h
3

f
0
+f
N
+ 2
N/2−1
¸
i=1
(2f
2i−1
+f
2i
)
¸
¸
+O

1
N
4

(1.11)
La m´ethode de Simpson est donc de deux ordres de grandeur plus efficace
que la m´ethode des trap`ezes. Mais il est possible de mieux utiliser la m´ethode
des trap`ezes. Sachant que cette derni`ere m´ethode converge en 1/N
2
, on peut
´evaluer l’int´egrale deux fois sur le mˆeme intervalle par la m´ethode des trap`ezes ;
la premi`ere fois avec N points et la seconde avec 2N points, pui en combinant
les deux r´esultats de la mani`ere suivante
S =
4
3
S
2N

1
3
S
N
(1.12)
Sachant que le d´eveloppement asymptotique de la m´ethode des trap`ezes est une
fonction paire de 1/N
2
, on en d´eduit que la formule (1.12) donne une estimation
de l’int´egrale en 1/N
4
, et ce r´esultat redonne une ´evaluation analogue ` a la
m´ethode de Simpson.
6
1.3 M´ethode de Romberg
1.3 M´ethode de Romberg
L’id´ee de la m´ethode de Romberg s’inspire directement de la remarque faite
au paragraphe pr´ec´edent. Si on calcule successivement par la m´ethode des tra-
p`ezes les int´egrales avec un nombres de points N/2
k
, N/2
k−1
, . . . , N, on peut
rapidement avoir une estimation de l’int´egrale avec une erreur en O(1/N
2k
) o` u
k est le nombre de fois que l’on a calcul´e l’int´egrale. La formule it´erative utilis´ee
est la suivante
S
k+1
(h) = S
k
(h) +
(S
k
(h) −S
k
(2h))
(4
k
−1)
(1.13)
Le tableau 1.1 r´esume la proc´edure r´ecursive employ´ee dans la m´ethode de
Romberg.
Pas Trap`ezes Simpson Boole troisi`eme am´elioration
h S
1
(h) S
2
(h) S
3
(h) S
4
(h)
2h S
1
(2h) S
2
(2h) S
3
(2h)
4h S
1
(4h) S
2
(4h)
8h S
1
(8h)
Tab. 1.1 – Table de Romberg
1.4 M´ethodes de Gauss
Dans les m´ethodes pr´ec´edentes, nous avons vu qu’en changeant les coeffi-
cients de pond´eration des valeurs de la fonction ` a int´egrer aux abscisses r´e-
guli`erement espac´ees, on pouvait grandement am´eliorer la convergence de la
m´ethode. Les m´ethodes de Gauss ajoutent aux m´ethodes pr´ec´edentes de pou-
voir utiliser des abscisses non r´eguli`erement espac´ees.
Soit W(x) une fonction strictement positive sur l´intervalle [a, b], appel´ee
fonction de poids, on choisit une suite de points x
i
telle que l’int´egrale soit
approch´ee par une somme discr`ete de la forme

b
a
W(x)f(x)dx =
N
¸
i=1
w
i
f
i
(1.14)
Quand les abscisses sont r´eguli`erement espac´ees, les coefficients inconnus
sont les poids w
i
; cela implique que pour N points d´int´egration, on peut
obtenir une ´evaluation exacte de l´int´egrale jusqu’` a un polynˆ ome de degr´e N−1
si N est pair (trap`ezes) et N si N est impair (Simpson). Les m´ethodes de Gauss
utilise le fait si les abscisses et les poids sont des inconnues ` a d´eterminer ; la
formule d´int´egration de Gauss ` a N points devient exacte jusqu’` a des polynˆ omes
de degr´e 2N − 1, ce qui augmente la pr´ecision de l´´evaluation sans qu’il soit
n´ecessaire d´augmenter le nombre de points ` a calculer.
Pour d´eterminer ces 2N param`etres, on s´appuie sur la construction de
polynˆ omes orthogonaux. Le principe de cette construction remonte ` a Gauss et
7
Int´egration et sommes discr`etes
Jacobi et a ´et´e largement d´evelopp´e par Christoffel. Soit un intervalle (a, b), on
introduit le produit scalaire de deux fonctions f et g avec la fonction de poids
W par :
< f[g >≡

b
a
W(x)f(x)g(x)dx (1.15)
Les fonctions sont dites orthogonales si leur produit scalaire est nul. La fonc-
tion est normalis´ee quand < f[f >= 1. Un ensemble orthonorm´e de fonctions
est un ensemble de fonctions toutes normalis´ees et orthogonales deux ` a deux.
On peut construire de mani`ere syst´ematique une suite de polynˆ omes telle
que le coefficient du monˆ ome de degr´e le plus ´elev´e soit ´egal ` a un et telle qu’ils
soient tous orthogonaux.
La relation de r´ecurrence est la suivante.
p
−1
(x) = 0 (1.16)
p
0
(x) = 1 (1.17)
p
i+1
(x) = (x −a
i
)p
i
(x) −b
i
p
i−1
(x) (1.18)
avec les coefficients a
i
et b
i
d´etermin´es de la mani`ere suivante
a
i
=
< xp
i
[p
i
>
< p
i
[p
i
>
(1.19)
b
i
=
< xp
i
[p
i−1
>
< p
i−1
[p
i−1
>
(1.20)
(1.21)
Si l’on divise chaque polynˆ ome par < p
i
[p
i
>
1/2
, on obtient alors des polynˆ omes
normalis´es.
Une propri´et´e fondamentale de ces polynˆ omes ainsi construits est la sui-
vante : Le polynˆ ome p
i
a exactement j racines distinctes plac´ees sur l’intervalle
[a, b]. Chaque racine du polynˆ ome p
i
se trouve entre deux racines cons´ecutives
du polynˆ ome p
i+1
.
Les N racines du polynˆ ome p
N
sont choisies comme abscisses dans l’´evalua-
tion de l’int´egrale de Gauss et les poids w
i
sont calcul´es ` a partir de la formule
w
i
=
< p
N−1
[
1
x−x
i
[p
N−1
>
p
N−1
(x
i
)p

N
(x
i
)
(1.22)
=
d
N
d
N−1
< p
N−1
[p
N−1
>
p
N−1
(x
i
)p

N
(x
i
)
(1.23)
o` u le symbole prime d´esigne la d´eriv´ee du polynˆ ome et d
n
le coefficient du
monˆ ome le plus ´elev´e du polynˆ ome p
N
3
.
Avec ce choix, on peut montrer en utilisant la relation de r´ecurrence, Eq. (1.18),
que < p
i
[p
1
>= 0.
A titre d’exemples voici les fonctions de poids classiques que l’on utilise pour
calculer une int´egrale par la m´ethode de Gauss
3
Attention, la formule 4.5.9 de la r´ef´erence[1] est incorrecte et doit ˆetre remlac´ee par l’´equa-
tion (1.22)
8
1.5 M´ethode de Gauss-Kronrod et m´ethodes adaptatives
– Gauss-Legendre
La fonction de poids est W = 1 sur l’intervalle [−1, 1]. La relation de
r´ecurrence pour les polynˆ omes de Legendre est
(i + 1)P
i+1
= (2i + 1)xP
i
−iP
i−1
(1.24)
– Gauss-Hermite
La fonction de poids est W = exp(−x
2
) sur la droite r´eelle. La relation
de r´ecurrence pour les polynˆ omes d’Hermite est
H
i+1
= 2xH
i
−2iH
i−1
(1.25)
– Gauss-Laguerre
La fonction de poids est W = x
α
e
−x
sur l’intervalle [0, +∞[. La relation
de r´ecurrence pour les polynˆ omes de Laguerre est
(i + 1)L
α
i+1
= (−x + 2i +α + 1)L
α
i
−(i +α)L
α
i−1
(1.26)
– Gauss-Jacobi
La fonction de poids est W = (1 −x)
α
(1 +x)
β
sur l’intervalle ] −1, 1[. La
relation de r´ecurrence pour les polynˆ omes de Jacobi est
c
i
P
(α,β)
i+1
= (d
i
+e
i
x)P
(α,β)
i
−f
i
P
(α,β)
i−1
(1.27)
o` u les coefficients c
i
, d
i
, e
i
et f
i
sont donn´es par les relations
c
i
= 2(i + 1)(i +α +β + 1)(2i +α +β) (1.28)
d
i
= (2i +α +β + 1)(α
2
−β
2
) (1.29)
e
i
= (2i +α +β)(2i +α +β + 1)(2i +α +β + 2) (1.30)
f
i
= 2(i +α)(i +β)(2i +α +β + 2) (1.31)
On peut utiliser des fonctions de poids qui sont int´egrables sur l´intervalle,
sans ˆetre n´ecessairement born´ees.
– Gauss-Chebyshev
4
La fonction de poids est W = (1 −x
2
)
−1/2
sur l’inter-
valle [−1, 1]. La relation de r´ecurrence pour les polynˆ omes de Chebyshev.
T
i+1
= 2xT
i
−T
i−1
(1.32)
1.5 M´ethode de Gauss-Kronrod et m´ethodes adap-
tatives
Pour d´eterminer la pr´ecision num´erique d’une int´egrale, il est n´ecessaire de
faire deux ´evaluations diff´erentes et d’utiliser la formule de Romberg pour obte-
nir une estimation de la pr´ecision. Avec une m´ethode de Cˆ otes, dans lesquelles
4
Pafnuty Lvovich Chebyshev (1821-1894) a un nom dont l´orthographe varie un peu selon
les langues, puisqu´il s’agit d´une traduction phon´etique. En Fran¸ cais, son nom est g´en´erale-
ment orthographi´e Tchebytchev.
9
Int´egration et sommes discr`etes
les abscisses sont r´eguli`erement espac´es, on peut sans effort de calcul suppl´e-
mentaire (essentiellement le coˆ ut provient de l’´evaluation de la fonction aux
diff´erentes abscisses) obtenir une ´evaluation de l’int´egrale en utilisant un point
sur deux, ce qui donne une estimation pour un pas double. Dans une m´ethode
de Gauss, les z´eros de d’un polynˆ ome de Gauss ne coˆıncident jamais avec ceux
d’un polynˆ ome de degr´e plus ´el´ev´e. Kronrod, math´ematicien russe a montr´e que
l’on peut choisir un polynˆ ome de n +p dont n racines sont les racines du poly-
nˆ ome de Gauss. Notons G(p +n, x) le polynˆ ome de degr´e p +n dont les racines
correspondent aux n +p abscisses de la formule d’int´egration. Un polynˆ ome de
degr´e n + 2p −1 peut s’exprimer sous la forme
f(x) = G(n +p)h(x) +g(x) (1.33)
o` u
g(x) =
n+p−1
¸
k=0
a
k
x
k
(1.34)
et
h(x) =
p−1
¸
k=0
b
k
x
k
(1.35)
On impose les poids pour la nouvelle formule telle que g(x) soit int´egr´ee exac-
tement. Cette condition s’exprime de la mani`ere suivante

1
−1
G(n +p, x)h(x)dx = 0 (1.36)
Comme tout polynˆ ome de degr´e p −1 peut s’exprimer comme une combinaison
lin´eaire de Polynˆ ome de Legendre de degr´e p −1, on le syst`eme d’´equation

1
−1
G(n +p, x)P(k, x)dx = 0 (1.37)
avec k = 0, 1, ....p −1
Si p = n + 1, on note G(2n + 1, x) = K(n + 1, x)P(n, x). La condition
Eq (2.1) est alors donn´ee par

1
−1
K(n + 1, x)P(n, x)P(k, x)dx = 0 (1.38)
avec k = 0, 1, ....p −1. Consid´erant le cas o` u n est impair, on a K(n +1, x) qui
est une fonction paire et se d´ecompose sur les polynˆ omes de Legendre comme
K(n + 1, x) =
n+3
2
¸
i=1
a
i
P(2i −2, x) (1.39)
Les coefficients a
i
sont calcul´es par les relations
n+3
2
¸
i=1
a
i

1
−1
P(2i −2, x)P(n, x)P(k, x)dx (1.40)
10
1.6 Int´egrales multiples
pour k = 1, . . . , n (on choisit a
0
= 1). Pour k pair, ces ´equations sont automati-
quement satisfaites, les ´equations restantes permettent d’´evaluer les coefficients
a
i
(cette m´ethode s’appelle m´ethode de Patterson).
Les m´ethodes adaptatives partent du principe que l’erreur commise dans
le calcul de l’int´egrale d´epend souvent de la portion du segment o` u les ´evalua-
tions de fonctions sont faites. Si la fonction varie rapidement dans un intervalle
restreint de l’ensemble du domaine d’int´egration, il est pr´ef´erable d’augmenter
la pr´ecision du calcul dans cette r´egion que sur la totalit´e de l’intervalle. Les
m´ethodes adaptatives consistent donc ` a couper le segment en deux et ´evaluer
chaque partie, on compare l’estimation de l’erreur par rappport ` a la tol´erance
oppos´ee et de proc´eder ` a une nouvelle division de l’intervalle dans les r´egions
les plus difficiles.
1.6 Int´egrales multiples
Le probl`eme de l’´evaluation des int´egrales multiples est ´etroitement li´e ` a la
difficult´e de l’´evaluation num´erique d’un tr`es grand nombre de points pour la
fonction consid´er´ee. Par exemple dans un espace ` a trois dimensions, si on utilise
30 points dans chacune des directions, il est n´ecessaire de calculer la fonction
pour 30
3
points. La situation s’aggrave tr`es rapidement quand la dimension de
l’espace augmente ! Le calcul des int´egrales multiples est n´eanmoins possible
dans un certain nombre de cas. Si la fonction poss`ede une sym´etrie importante,
par exemple la sym´etrie sph´erique dans un espace de dimension d, on peut se
ramener de mani`ere analytique ` a une int´egrale ` a une dimension (Voir appendice
A). De mani`ere g´en´erale, en utilisant une sym´etrie de la fonction, on peut rame-
ner le calcul de l’int´egrale de dimension n ` a celui d´une int´egrale de dimension
n

<< n o` u les m´ethodes pr´ec´edentes peuvent encore s’appliquer.
Dans le cas o` u il n’existe pas de sym´etrie, la m´ethode la plus efficace est la
m´ethode dite de Monte Carlo dont le principe est d´ecrit dans le cours Simulation
num´erique en Physique Statistique.(http ://pascal.viot.com)
11
Int´egration et sommes discr`etes
12
Chapitre 2
Fonctions sp´eciales et
´evaluation de fonctions
Contenu
2.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . 13
2.2 Fonctions transcendantes simples . . . . . . . . . . . 14
2.3 Fonction Gamma . . . . . . . . . . . . . . . . . . . . . 14
2.3.1 D´efinition et propri´et´es . . . . . . . . . . . . . . . . . 14
2.3.2 Fonctions reli´ees : Ψ, B . . . . . . . . . . . . . . . . . 16
2.4 Fonctions de Bessel . . . . . . . . . . . . . . . . . . . 18
2.5 Fonctions Hyperg´eom´etriques . . . . . . . . . . . . . 20
2.5.1 Fonction Hyperg´eom´etrique Gaussienne . . . . . . . . 20
2.5.2 Fonctions Hyperg´eom´etriques g´en´eralis´ees . . . . . . . 20
2.6 Fonction erreur, exponentielle int´egrale . . . . . . . 21
2.7 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . 22
2.1 Introduction
Les fonctions sp´eciales sont d´efinies de mani`ere assez impr´ecise, puisqu’elles
regroupent les fonctions que l’usage (ou la fr´equence d’utilisation) a fini par as-
socier ` a un nom. Parmi ces fonctions, on trouve un grand nombre de fonctions
qui sont des solutions d’´equations diff´erentielles du second ordre, sans que cette
propri´et´e soit exclusive. Ces fonctions sont toutefois tr`es utiles, car elles appa-
raissent tr`es souvent, d`es que l’on cherche ` a r´esoudre des ´equations diff´erentielles
du second ordre dont les coefficients ne sont pas constants. Les fonctions sp´e-
ciales sont disponibles en programmation sous la forme de biblioth`eques. Elles
sont aussi d´efinies pour un grand nombre d’entre elles dans les logiciels de cal-
cul symbolique (Maple, Mathematica,...). Dans la suite de ce cours, nous allons
d´efinir une partie d’entre elles et d´ecrire les m´ethodes num´eriques utilis´ees dans
les biblioth`eques de programmes pour le calcul de ces fonctions.
13
Fonctions sp´eciales et ´evaluation de fonctions
-4 -3 -2 -1 0 1 2 3 4
-20
-15
-10
-5
0
5
10
15
20
Γ
(
x
)
Fig. 2.1 – La fonction Γ(x) en fonction de x.
2.2 Fonctions transcendantes simples
Les fonctions les plus simples que l’on rencontre lors de l’apprentissage des
math´ematiques sont tout d’abord les monˆ omes, puis les polynˆ omes, et enfin les
fractions rationnelles. Le calcul de la valeur de la fonction pour un argument
r´eel ou complexe n´ecessite un nombre fini des quatre op´erations ´el´ementaires
que sont l’addition, la soustraction, la multiplication et la division.
Les premi`eres fonctions transcendantes que l’on rencontre sont alors les fonc-
tions trigonom´etriques (sin, cos,tan, arccos, arcsin) ainsi que leurs fonctions in-
verses. Les fonctions exp et log repr´esentent g´en´eralement le reste de l’arsenal
des fonctions transcendantes d´efinies dans un cursus de premier, voire de second
cycle universitaire.
2.3 Fonction Gamma
2.3.1 D´efinition et propri´et´es
La fonction Gamma est g´en´eralement d´efinie par l’int´egrale suivante
Γ(z) =


0
t
z−1
e
−t
dt (2.1)
quand la partie r´eelle de z est strictement positive, Re(z) > 0).
14
2.3 Fonction Gamma
La formule d’Euler donne une expression de la fonction Γ pour toute valeur
de z complexe hormis les valeurs de z enti`eres n´egatives o` u la fonction poss`ede
des pˆ oles :
Γ(z) = lim
n→∞
n!n
z
z(z + 1) . . . (z +n)
(2.2)
En int´egrant par parties l’´equation (2.1), on peut facilement montrer que
Γ(z + 1) = zΓ(z) (2.3)
En v´erifiant que Γ(1) = 1, on obtient par r´ecurrence que
Γ(n + 1) = n! (2.4)
Avec cette d´efinition, la fonction Γ apparaˆıt comme un prolongement analytique
de la fonction factorielle d´efinie sur N. D’apr`es l’´equation (2.2), la fonction Γ a
un pˆ ole en 0 et pour toutes les valeurs enti`eres n´egatives (voir Fig. (2.1)).
La formule suivante permet de relier la fonction entre les valeurs situ´ees
dans le demi-plan complexe o` u Re(z) > 1 et celui o` u Re(z) < 1 :
Γ(1 −z) =
π
Γ(z) sin(πz)
(2.5)
Pour calculer num´eriquement la fonction Γ pour une valeur de z en dehors des
pˆ oles, il est n´ecessaire de d´evelopper cette fonction sur la base des polynˆ omes et
des exponentielles. La formule la plus pr´ecise est celle de Lancz` os. Ce d´evelop-
pement est sp´ecifique ` a la fonction Γ. La formule qui s’inspire de la formule de
Stirling bien connue pour la fonction factorielle n’est valable que pour Re(z) > 0
et est donn´ee par
Γ(z + 1) =

z +γ +
1
2

z+
1
2
e
−(z+γ+
1
2
)



¸
c
0
+
c
1
z + 1
+
c
2
z + 2
+. . . +
c
N
z +N
+

(2.6)
o` u est le param`etre estimant l’erreur. Pour le choix particulier γ = 5, N = 6
et c
0
tr`es voisin de 1, on a [[ < 2.10
−10
.
Il est difficile de calculer la fonction Γ pour des valeurs de z un peu im-
portantes. Cela r´esulte de la croissance tr`es rapide de la fonction Γ. On peut
montrer que la fonction Γ croˆıt plus vite que toute exponentielle, comme de ma-
ni`ere analogue on montre que l’exponentielle croˆıt plus vite que tout polynˆ ome.
On dit parfois que la fonction Γ a une croissance super-exponentielle.
Dans de nombreuses formules, la fonction Γ apparaˆıt ` a la fois au num´erateur
et au d´enominateur d’une expression. Chacun des termes peut ˆetre tr`es impor-
tant, mais le rapport est souvent un nombre relativement modeste. Pour calculer
num´eriquement ce type d’expression, il est pr´ef´erable de calculer ln(Γ(z)) (voir
Fig. 2.2). Ainsi la fraction est alors l’exponentielle de la diff´erence de deux
logarithmes. Tous les nombres qui interviennent dans ce calcul sont exponen-
tiellement plus petits que ceux qui apparaissent dans un calcul direct, on ´evite
ainsi le d´epassement de capacit´e de l’ordinateur.
15
Fonctions sp´eciales et ´evaluation de fonctions
0 2 4 6 8 10
x
0
5
10
15
20
l
n
(
Γ
(
x
)
Fig. 2.2 – La fonction ln(Γ(x)) en fonction de x.
On d´efinit la fonction γ incompl`ete
1
comme
γ(a, x) =

x
0
t
a−1
e
−t
dt (2.7)
La fonction normalis´ee suivante P(a, x)
P(a, x) =
γ(a, x)
Γ(a)
(2.8)
est parfois appel´ee aussi fonction Gamma incompl`ete. On peut montrer que
P(a, x) est monotone croissante avec x. La fonction est tr`es proche de 0 quand
x est inf´erieur ` a a − 1 et proche de 1 quand x est tr`es sup´erieur. La variation
entre ces deux valeurs apparaˆıt autour de l’abscisse a −1 et sur une largeur de
l’ordre de

a (voir figure 2.3).
2.3.2 Fonctions reli´ees : Ψ, B
A partir de la fonction Γ, on d´efinit des fonctions d´eriv´ees. En raison de
leur grande fr´equence d’utilisation, elles ont “re¸ cu” un nom. Ainsi, la fonction
Ψ, appel´ee aussi fonction Digamma est d´efinie comme la d´eriv´ee logarithmique
1
Noter que dans le logiciel Maple, la fonction Gamma et les fonctions Gamma incompl`etes
sont les seules fonctions d´efinies avec des lettres capitales.
16
2.3 Fonction Gamma
0 2 4 6 8 10 12 14
x
0
0.2
0.4
0.6
0.8
1
P
(
a
,
x
)
a=10
a=3
a=1
Fig. 2.3 – La fonction P(a, x) en fonction de x pour trois valeurs de a (a =
1, 3, 10).
de la fonction Gamma
2
:
Ψ(x) =
d ln(Γ(x))
dx
(2.10)
Parmi les propri´et´es remarquables de la fonction Ψ, notons que, pour des
valeurs enti`eres, on a
Ψ(n) = −γ +
n−1
¸
i=1
1
i
(2.11)
o` u γ = 0.577 . . . est la constante d´Euler.
Les fonctions Beta qui sont not´ees paradoxalement avec un B sont d´efinies
par la relation :
B(z, w) =
Γ(z)Γ(w)
Γ(z +w)
(2.12)
2
On d´efinit aussi les fonctions polygamma comme une g´en´eralisation de la fonction Di-
gamma
Ψ(n, x) =
d
n
Ψ(x)
dx
n
(2.9)
17
Fonctions sp´eciales et ´evaluation de fonctions
0 2 4 6 8 10
x
-2
-1.5
-1
-0.5
0
0.5
1
Y
ν
(
x
)
,
J
ν
(
x
)
J0
J1
J2
J3
Y0
Y1
Y2
Y3
Fig. 2.4 – Les quatre premi`eres fonctions de Bessel enti`eres de premi`ere es-
p`ece et de deuxi`eme esp`ece. Ces fonctions sont pr´esentes dans toutes les biblio-
th`eques math´ematiques de programmation, dans les logiciels de calcul symbo-
lique comme Maple et dans un logiciel graphique comme xmgrace.
2.4 Fonctions de Bessel
Les fonctions de Bessel sont d´efinies de la mani`ere suivante : consid´erons
l’´equation diff´erentielle du second ordre
x
2
y

+xy

+ (x
2
−ν
2
)y = 0 (2.13)
Les solutions de cette ´equation sont appel´ees fonctions de Bessel de premi`ere
et de deuxi`eme esp`ece : La solution finie ` a l’origine et not´ee J
ν
(x) est appel´ee
fonction de Bessel de premi`ere esp`ece et la seconde solution not´ee Y
ν
(x) est
appel´ee fonction de Bessel de deuxi`eme esp`ece. Si ν n’est pas un entier, ces
fonctions sont reli´ees par la relation suivante :
Y
ν
(x) =
J
ν
(x) cos(νπ) −J
−ν
(x)
sin(νπ)
(2.14)
La figure 2.4 repr´esente graphiquement les fonctions de Bessel de premi`ere
et de seconde esp`eces pour les quatre premi`eres valeurs enti`eres de ν
Le comportement asymptotique des fonctions de Bessel de premi`ere et de
18
2.4 Fonctions de Bessel
0 2 4
x
0
0.5
1
1.5
2
2.5
3
3.5
4
K
ν
(
x
)
,
I
ν
(
x
)
I0
I1
I2
I3
K0
K1
K2
K3
Fig. 2.5 – Les quatre premi`eres fonctions de Bessel enti`eres modifi´ees de pre-
mi`ere et de deuxi`eme esp`ece. Ces fonctions sont pr´esentes dans toutes les bi-
blioth`eques math´ematiques de programmation, dans les logiciels de calcul sym-
bolique comme Maple et dans un logiciel graphique comme xmgrace.
seconde esp`ece est le suivant
J
ν
(x) ·

2
πx
(cos(x −νπ/2 −π/4)) (2.15)
Y
ν
(x) ·

2
πx
(sin(x −νπ/2 −π/4)) (2.16)
Soit l’´equation diff´erentielle du second ordre
x
2
y

+xy

−(x
2
−ν
2
)y = 0 (2.17)
Les solutions de cette ´equation sont appel´ees fonctions de Bessel modifi´ees . La
solution finie ` a l’origine et not´ee I
ν
(x) est appel´ee fonction de Bessel modifi´ee
de premi`ere esp`ece et la seconde solution not´ee K
ν
(x) est appel´ee fonction de
Bessel modifi´ee de seconde esp`ece. Ces fonctions sont reli´ees par la relation
suivante :
K
ν
(x) =
π(I
ν
(−x) −I
ν
(x))
2 sin(νπ)
(2.18)
La figure 2.5 repr´esente graphiquement les fonctions de Bessel modifi´ees de
premi`ere et de deuxi`eme esp`ece pour les quatre premi`eres valeurs enti`eres de ν.
19
Fonctions sp´eciales et ´evaluation de fonctions
Le comportement asymptotique des fonctions de Bessel modifi´ees est le sui-
vant :
I
ν
(x) ·
e
z

2πx
(2.19)
K
ν
(x) ·

π
2x
e
−z
(2.20)
Les fonctions de Hankel H
1,ν
and H
2,ν
sont appel´ees fonctions de Bessel de
troisi`eme esp`ece et sont d´efinies par la relation
H
1,ν
(x) =J
ν
(x) +iY
ν
(x) (2.21)
H
2,ν
(x) =J
ν
(x) −iY
ν
(x) (2.22)
2.5 Fonctions Hyperg´eom´etriques
2.5.1 Fonction Hyperg´eom´etrique Gaussienne
Les fonctions hyperg´eom´etriques gaussiennes sont d´efinies comme ´etant les
solutions de l’´equation diff´erentielle suivante.
x(1 −x)y

+ [c −(a +b + 1)x]y

−aby = 0 (2.23)
o` u a, b et c sont des constantes.
Si c, a−b et c −a−b sont non entiers, la solution g´en´erale de cette ´equation
est
y = F(a, b; c; x) +Bx
1−c
F(a −c + 1, b −c + 1; 2 −c; x) (2.24)
La fonction F peut ˆetre exprim´ee sous la forme d’une s´erie
F(a, b; c; z) ≡
2
F
1
(a, b, c; z)
=
Γ(c)
Γ(a)Γ(b)

¸
n=0
Γ(a +n)Γ(b +n)
Γ(c +n)
z
n
n!
(2.25)
Cette s´erie converge uniform´ement ` a l’int´erieur du disque unit´e. D`es que a, b
ou c sont entiers, la fonction hyperg´eom´etrique peut se r´eduire ` a une fonction
transcendante plus simple. Par exemple,
2
F
1
(1, 1, 2; z) = −z
−1
ln(1 −z)
2.5.2 Fonctions Hyperg´eom´etriques g´en´eralis´ees
On d´efinit des fonctions hyperg´eom´etriques g´en´eralis´ees de la mani`ere sui-
vante : soit le rapport
p
F
q
¸
a
1
, a
2
, . . . , a
p
b1, b
2
, . . . , b
q
; z

=

¸
k=0
(a
1
)
k
(a
2
)
k
. . . (a
p
)
k
(b
1
)
k
(b
2
)
k
. . . (b
q
)
k
x
k
k!
(2.26)
o` u on a utilis´e la notation de Pochhammer
(a)
k
=
Γ(a +k)
Γ(a)
(2.27)
20
2.6 Fonction erreur, exponentielle int´egrale
0 1 2 3 4
x
0
1
2
3
4
E
n
(
x
)
E
1
E
2
E
3
E
4
Fig. 2.6 – Les quatre premi`eres fonctions exponentielles int´egrales (fonctions
E
n
. Ces fonctions sont pr´esentes dans toutes les biblioth`eques math´ematiques
de programmation, dans les logiciels de calcul symbolique comme Maple et dans
un logiciel graphique comme xmgrace.
2.6 Fonction erreur, exponentielle int´egrale
La fonction erreur et la fonction erreur compl´ementaire sont d´efinies comme
erf(x) =
2

π

x
0
e
−t
2
dt (2.28)
erfc(x) = 1 −erf(x)
=
2

π


x
e
−t
2
dt (2.29)
La fonction erf est aussi pr´esente dans toutes les biblioth`eques standard de
programmation.
La fonction exponentielle int´egrale Ei est d´efinie comme la valeur principale
de l´int´egrale suivante pour x > 0.
Ei(x) = −


−x
e
−t
t
dt (2.30)
=

x
−∞
e
t
t
(2.31)
21
Fonctions sp´eciales et ´evaluation de fonctions
Le d´eveloppement en s´erie de cette fonction donne
Ei(x) = γ + ln(x) +

¸
n=1
x
n
nn!
(2.32)
Pour des grandes valeurs de x, on a le d´eveloppement asymptotique suivant
Ei(x) ·
e
x
x

1
1
x
+. . .

(2.33)
De mani`ere g´en´erale, on d´efinit les exponentielles int´egrales E
n
(x) comme
E
n
(z) =


1
e
−zt
t
n
dt (2.34)
La Figure 2.6 repr´esente les quatre premi`eres exponentielles int´egrales. Le d´e-
veloppement en s´erie de cette fonction donne
E
1
(x) = −(γ + ln(x)) +

¸
n=1
(−1)
n
x
n
nn!
(2.35)
La fonction E
i
(1, x) n´est d´efinie que pour des arguments r´eels : Pour x < 0,
on a
E
i
(x) = −E
i
(1, −x) (2.36)
On peut noter que les exponentielles int´egrales E
n
(x) sont reli´ees ` a la fonc-
tion γ par la relation
E
n
(x) = x
n−1
γ(1 −n, x) (2.37)
2.7 Conclusion
Cette introduction aux fonctions sp´eciales est tr`es loin d’ˆetre exhaustive ; il
existe de nombreuses autres fonctions dites sp´eciales : les fonctions elliptiques,
les fonctions de Fresnel, les fonctions de Meier,. . . . Le d´eveloppement de biblio-
th`eques qui permettent de calculer les valeurs de ces fonctions est un secteur
tr`es actif et nous disposerons dans les ann´ees futures de biblioth`eques encore
plus performantes.
22
Chapitre 3
Racines d’´equations
Contenu
3.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . 23
3.2 Dichotomie . . . . . . . . . . . . . . . . . . . . . . . . 24
3.3 M´ethode de Ridder . . . . . . . . . . . . . . . . . . . 25
3.3.1 M´ethode de la position fausse . . . . . . . . . . . . . . 25
3.3.2 M´ethode de Ridder . . . . . . . . . . . . . . . . . . . . 26
3.4 M´ethode de Brent . . . . . . . . . . . . . . . . . . . . 27
3.5 Newton-Raphson . . . . . . . . . . . . . . . . . . . . . 27
3.6 Racines de Polynˆ omes . . . . . . . . . . . . . . . . . 28
3.6.1 R´eduction polynomiale . . . . . . . . . . . . . . . . . . 28
3.6.2 M´ethode de Laguerre . . . . . . . . . . . . . . . . . . 29
3.1 Introduction
L’une des tˆ aches rencontr´ees fr´equemment lors d’un calcul est la recherche
de la racine d’une ´equation. Sans perte de g´en´eralit´e, on peut toujours ´ecrire
une ´equation o` u le membre de droite est ´egal ` a z´ero,
f(x) = 0 (3.1)
Si x est une variable scalaire, le probl`eme est unidimensionnel. Si x est une
variable vectorielle (` a N dimensions) et que l’on a N ´equations ` a satisfaire, on
peut formellement ´ecrire sous une notation vectorielle
f (x) = 0 (3.2)
Malgr´e la similarit´e des ´equations (3.1) et (3.2), un syst`eme d’´equations ` a N
variables est consid´erablement plus compliqu´e ` a r´esoudre qu’un syst`eme unidi-
mensionnel. La raison vient du fait que la m´ethode g´en´erale pour la recherche de
racines est li´ee ` a la capacit´e d’encadrer num´eriquement la r´egion o` u le syst`eme
d’´equations poss`ede une racine particuli`ere.
On exclut de ce chapitre le cas des syst`emes lin´eaires qui sera trait´e dans
le chapitre de l’alg`ebre lin´eaire. Le principe dominant la recherche de racines
23
Racines d’´equations
d’´equations est celui de m´ethodes it´eratives, o` u en partant d’une valeur d’essai
(ou un couple de valeurs d’essai), on s’approche de plus en plus pr`es de la
solution exacte. Il est ´evident qu’une estimation de d´epart raisonnable associ´ee
` a une fonction f qui varie suffisamment lentement est n´ecessaire pour obtenir
une convergence vers la solution recherch´ee.
Nous allons consid´erer le probl`eme unidimensionnel pour lequel plusieurs
m´ethodes sont disponibles afin de choisir la m´ethode la mieux adapt´ee compte
tenu des informations que l’on dispose sur la fonction f. Une derni`ere partie de
ce chapitre sera consacr´ee aux m´ethodes plus sp´ecifiques pour la recherche de
racines de polynˆ omes
3.2 Dichotomie
Comme nous l’avons mentionn´e ci-dessus, la cl´e de la recherche de racines
d’´equations repose sur l’existence d’un encadrement pr´ealable de cette racine.
S’il existe un couple (a, b) tel que le produit f(a)f(b) < 0 et si la fonction est
continue, le th´eor`eme de la valeur interm´ediaire nous dit que fonction s’annule
au moins une fois ` a l’int´erieur de cet intervalle.
La m´ethode de dichotomie est une m´ethode qui ne peut pas ´echouer, mais
sa rapidit´e de convergence n’est pas la meilleure en comparaison avec les autres
m´ethodes. L’id´ee de cette m´ethode est la suivante : soit une fonction f monotone
sur un intervalle [a
0
, b
0
] telle que f(a
0
)f(b
0
) < 0 , on sait alors qu’il existe une
et une seule racine comprise dans cet intervalle.
L´algorithme de la m´ethode de dichotomie est le suivante : tout d’abord,
on calcule f(
a
0
+b
0
2
).
– Si f(
a
0
+b
0
2
)f(a
0
) < 0, on d´efinit un nouvel encadrement de la racine par
le couple (a
1
, b
1
) tel que
a
1
= a
0
(3.3)
b
1
=
a
0
+b
0
2
. (3.4)
– Si f(
a
0
+b
0
2
)f(a
0
) > 0, alors on d´efinit un nouvel encadrement de la racine
par le couple (a
1
, b
1
) tel que
a
1
=
a
0
+b
0
2
(3.5)
b
1
= b
0
. (3.6)
En it´erant cette m´ethode, on obtient une suite de couple (a
n
, b
n
) telle que

n
= b
n
−a
n
v´erifie la relation

n+1
=

n
2
(3.7)
o` u
0
= (b
0
−a
0
)/2 Cela signifie que si l’on se fixe la tol´erance qui repr´esente
la pr´ecision ` a laquelle on souhaite obtenir la racine, on a un nombre d’it´erations
` a effectuer ´egal ` a
n = ln
2

[b
0
−a
0
[

(3.8)
24
3.3 M´ethode de Ridder
o` u la notation ln
2
signifie le logarithme en base 2.
Le choix de la valeur de la tol´erance n´ecessite quelques pr´ecautions. Si la
racine recherch´ee est de l’ordre de l’unit´e, on peut tr`es raisonnablement choisir
0
de l’ordre de 10
−6
` a 10
−13
selon que l’on travaille en simple ou double pr´ecision.
Par contre pour une racine dont la valeur est de l’ordre de 10
10
, une pr´ecision
de 10
−4
sera la valeur maximale que l’on peut atteindre en double pr´ecision.
Inversement, pour une racine proche de z´ero, la pr´ecision peut ˆetre meilleure
que 10
−14
.
3.3 M´ethode de Ridder
3.3.1 M´ethode de la position fausse
La m´ethode de dichotomie sous-exploite le fait que l’on peut mieux utiliser la
fonction ` a l’int´erieur de l’encadrement effectu´e ` a chaque it´eration. La m´ethode
de la position fausse approche la fonction de mani`ere lin´eaire dans l’intervalle
consid´er´e.
Soit la droite y = cx+d passant par f(a
0
) et f(b
0
) en a
0
et b
0
respectivement,
on obtient facilement que
c =
f(b
0
) −f(a
0
)
b
0
−a
0
(3.9)
d =
b
0
f(a
0
) −a
0
f(b
0
)
b
0
−a
0
(3.10)
La nouvelle abscisse estim´ee pour la racine de l’´equation est donn´ee par y =
cx +d = 0, ce qui donne
x = −
d
c
(3.11)
=
a
0
f(b
0
) −b
0
f(a
0
)
f(b
0
) −f(a
0
)
(3.12)
soit encore
x = a
0
−(b
0
−a
0
)
f(a
0
)
f(b
0
) −f(a
0
)
(3.13)
= b
0
−(b
0
−a
0
)
f(b
0
)
f(b
0
) −f(a
0
)
(3.14)
On reprend ` a ce stade le principe de l’algorithme pr´ec´edent si f(x)f(a
0
) > 0
alors
a
1
= x (3.15)
b
1
= b
0
(3.16)
sinon
a
1
= a
0
(3.17)
b
1
= x (3.18)
La figure
25
Racines d’´equations
0 0.5 1 1.5 2 2.5 3
-2
0
2
4
1
2
3
4
Fig. 3.1 – Sch´ema illustrant le principe de la position fausse. Les lignes en
pointill´e correspondent aux interpolations lin´eaires. A partir de l’encadrement
rep´er´e par les points 1 et 2, le processus it´eratif conduit aux points 3, puis 4...
3.3.2 M´ethode de Ridder
Une variante de la m´ethode pr´ec´edente qui est tr`es efficace est bas´ee sur
l’algorithme suivant. On ´evalue la fonction au point x
3
=
a
0
+b
0
2
et on r´esout
l’´equation en z
f(a
0
) −2f(x)z +f(b
0
)z
2
= 0 (3.19)
La solution positive est donn´ee par
z =
f(x) +sgn(f(x))

f(x)
2
−f(a
0
)f(b
0
)
f(b
0
)
(3.20)
En appliquant la m´ethode de la position fausse non pas ` a f(a
0
), f(x
3
) et f(b
0
),
mais ` a f(a
0
), f(x
3
)z et f(b
0
)z
2
, on obtient une approximation de la racine,
not´ee x
4
et donn´ee par
x
4
= x
3
+ (x
3
−a
0
)
sgn(f(a
0
) −f(b
0
))f(x)

f(x)
2
−f(a
0
)f(b
0
)
(3.21)
Parmi les propri´et´es remarquables, notons que x
4
est toujours situ´ee ` a l’int´erieur
de l’intervalle [a
0
, b
0
]. Si le produit f(x
3
)f(x
4
) est n´egatif, on prend l´intervalle
[x
3
, x
4
] comme nouvel encadrement, sinon si on consid`ere le produit f(a
0
)f(x
4
) ;
si celui est n´egatif, le nouvel encadrement est [a
0
, x
4
], sinon on prend [x
4
, b]. On
it`ere ensuite le proc´ed´e.
26
3.4 M´ethode de Brent
3.4 M´ethode de Brent
Le principe de cette m´ethode est de combiner les avantages des m´ethodes
pr´ec´edemment expos´ees en utilisant, le principe de l’encadrement de la racine, la
dichotomie, et l’interpolation quadratique inverse. Cela n´ecessite de connaˆıtre
trois valeurs de la fonction f dont la racine est ` a d´eterminer. Soit (a, f(a)),
(b, f(b)), et (c, f(c)) la formule d’interpolation est donn´ee par
x =
(y −f(a))(y −f(b))c
(f(c) −f(a))(f(c) −f(b))
+
(y −f(b))(y −f(c))a
(f(a) −f(b))(f(a) −f(c))
+
(y −f(c))(y −f(a))b
(f(b) −f(c))(f(b) −f(a))
(3.22)
En choisissant y = 0, on peut ´ecrire l’´equation (3.22) comme
x = b +
P
Q
(3.23)
o` u P et Q sont donn´es par
P = S[T(R −T)(c −b) −(1 −R)(b −a)] (3.24)
Q = (T −1)(R −1)(S −1) (3.25)
o` u R, S et T s’expriment comme
R =
f(b)
f(c)
(3.26)
S =
f(b)
f(a)
(3.27)
T =
f(a)
f(c)
(3.28)
En pratique, b est une premi`ere estimation de la racine et
P
Q
une petite correc-
tion. Quand Q →0 la valeur de
P
Q
peut devenir tr`es grande et l’it´eration par la
m´ethode de Brent est remplac´ee par une it´eration de dichotomie.
3.5 Newton-Raphson
Toutes les m´ethodes pr´ec´edentes ne n´ecessitaient que la connaissance de la
fonction en diff´erents points de l’intervalle encadrant la racine. Sous r´eserve
que la variation de la fonction ne soit pas trop rapide, seule une hypoth`ese de
continuit´e est n´ecessaire.
La m´ethode de Newton-Raphson n´ecessite de plus que la fonction f dont
on cherche ` a d´eterminer une racine, soit d´erivable au voisinage de celle-ci.
Les it´erations successives de la m´ethode de Newton-Raphson sont bas´ees sur
le d´eveloppement limit´e de la fonction autour d’un point
f(x +δ) = f(x) +f

(x)δ +
f

(x)
2
δ
2
+. . . (3.29)
27
Racines d’´equations
Si δ est suffisamment petit, on peut n´egliger les termes non lin´eaires et une
estimation de la racine est donn´ee par f(x +δ) = 0.
δ = −
f(x)
f

(x)
(3.30)
On voit imm´ediatement qu’il est n´ecessaire que la d´eriv´ee de la fonction ne
s’annule pas dans le voisinage de x, sous peine que l’estimation de δ devienne
tr`es grande et ne permette pas ` a la m´ethode de converger.
Si les conditions pr´ec´edemment ´enonc´ees sont v´erifi´ees, on a une m´ethode
qui converge de mani`ere quadratique.
En effet, la relation de r´ecurrence entre estimations successives est donn´ee
par
x
i+1
= x
i

f(x
i
)
f

(x
i
)
(3.31)
En posant
i+1
= x
i+1
−x, o` u x est la racine exacte, on a

i+1
=
i

f(x
i
)
f

(x
i
)
(3.32)
Si on utilise un d´eveloppement limit´e de f au deuxi`eme ordre au point x
i
(ce
qui suppose que la fonction est deux fois d´erivable au voisinage de la racine),
on obtient

i+1
= −
2
i
f

(x
i
)
2f

(x
i
)
(3.33)
La m´ethode converge donc tr`es rapidement par comparaison avec les m´ethodes
pr´ec´edentes.
A noter que si la d´eriv´ee de la fonction n’est pas connue analytiquement,
l’´evaluation num´erique de sa d´eriv´ee est possible par une formule d’accroisse-
ment
f

(x) ·
f(x + ∆x) −f(x)
∆x
(3.34)
Dans ce cas, la m´ethode de Newton-Raphson se r´eduit ` a une m´ethode d’in-
tersection et la convergence de celle-ci est moins rapide que la convergence
quadratique.
3.6 Racines de Polynˆ omes
3.6.1 R´eduction polynomiale
La recherche de racines d’un polynˆ ome se construit de la mani`ere suivante :
soit P
n
(x) un polynˆ ome de degr´e n. Si on obtient une premi`ere racine, on peut
´ecrire
P
n
(x) = (x −x
1
)P
n−1
(x) (3.35)
o` u P
n−1
(x) est un polynˆ ome de degr´e n−1. Ainsi, th´eoriquement, une fois obte-
nue une premi`ere racine, on peut recommencer la recherche d’une autre racine
pour une polynˆ ome de degr´e strictement inf´erieur. Successivement, on poursuit
cette proc´edure jusqu’` a l’obtention de l’ensemble des n racines du polynˆ ome
28
3.6 Racines de Polynˆ omes
P
n
(x). Rappelons que les polynˆ omes ` a coefficients complexes se factorisent en
un produit de monˆ omes de degr´e 1. Cette propri´et´e exprime le fait que les po-
lynˆ omes ` a coefficients complexes ont l’ensemble de leurs racines dans le plan
complexe,
P
n
(x) =
n
¸
i=1
(x −x
i
) (3.36)
(C est un corps alg´ebriquement clos).
3.6.2 M´ethode de Laguerre
Les m´ethodes de recherche de z´eros de polynˆ omes sont nombreuses et une
pr´esentation d´etaill´ee d´epasse largement le cadre de ce cours. Nous avons choisi
de pr´esenter une m´ethode dont le principe est assez simple. La m´ethode de
Laguerre utilise le fait que les d´eriv´ees logarithmiques successives d’un polynˆ ome
divergent au voisinage d’une racine. En prenant le logarithme de l’´equation
(3.36), on obtient
ln([P
n
(x)[) =
n
¸
i=1
ln([x −x
i
[) (3.37)
En d´erivant l’´equation (3.37), on obtient
d ln([P
n
(x)[)
dx
=
n
¸
i=1
1
x −x
i
=
P

n
(x)
P
n
(x)
(3.38)
= G (3.39)
En d´erivant l’´equation (3.38), il vient

d
2
ln([P
n
(x)[)
dx
2
=
n
¸
i=1
1
(x −x
i
)
2
=
¸
P

n
(x)
P
n
(x)

2

P

n
(x)
P
n
(x)
= H (3.40)
Soit la racine x
1
` a d´eterminer, on suppose que la valeur de d´epart x est situ´ee
` a une distance a de x
1
et que l’ensemble des autres racines sont situ´ees ` a une
distance suppos´ee identique et qui vaut b
x −x
1
= a (3.41)
x −x
i
= b i ∈ [2, n] (3.42)
En ins´erant les ´equations (3.41) et (3.42) dans les ´equations (3.38), (3.40), on
en d´eduit respectivement les relations suivantes
1
a
+
n −1
b
= G (3.43)
1
a
2
+
n −1
b
2
= H (3.44)
29
Racines d’´equations
Apr`es ´elimination de b, la valeur de a est
a =
n

(n −1)(nH −G
2
)
(3.45)
Le signe plac´e devant la racine du d´enominateur est choisi tel que le d´enomina-
teur soit le plus grand possible. x−a devient alors la nouvelle valeur de d´epart et
on it`ere le processus. En combinant cette m´ethode avec celle de la r´eduction po-
lynomiale, on peut calculer l’ensemble des racines. En pratique, comme chaque
racine n’est d´etermin´ee qu’avec une pr´ecision finie, il est n´ecessaire d’ajouter
une proc´edure dite de lissage pour ´eviter les probl`emes d’instabilit´e num´erique.
30
Chapitre 4
Equations diff´erentielles
Contenu
4.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . 31
4.2 D´efinitions . . . . . . . . . . . . . . . . . . . . . . . . . 32
4.3 Equations diff´erentielles “sp´eciales”. . . . . . . . . . 32
4.3.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . 32
4.3.2 Equations du premier ordre . . . . . . . . . . . . . . . 33
4.3.3 Equation diff´erentielles du second ordre . . . . . . . . 34
4.3.4 Equation de Bessel . . . . . . . . . . . . . . . . . . . . 35
4.3.5 Equation diff´erentielle erreur . . . . . . . . . . . . . . 35
4.3.6 Equation diff´erentielle d’Hermite . . . . . . . . . . . . 35
4.4 M´ethodes d’int´egration `a pas s´epar´e . . . . . . . . . 35
4.4.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . 35
4.4.2 M´ethode d’Euler . . . . . . . . . . . . . . . . . . . . . 36
4.4.3 M´ethode RK explicites ` a un point . . . . . . . . . . . 37
4.4.4 M´ethodes RK implicites ` a un point . . . . . . . . . . . 37
4.4.5 M´ethodes RK explicites ` a 2 points interm´ediaires . . . 37
4.4.6 M´ethodes RK explicites ` a 3 points interm´ediaires . . . 38
4.4.7 Formule g´en´erale des m´ethodes RK explicites . . . . . 38
4.5 M´ethode d’int´egration `a pas variables . . . . . . . . 39
4.5.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . 39
4.6 M´ethodes de Runge-Kutta “embarqu´ees” . . . . . . 39
4.7 M´ethode de Bulirsh-Stoer . . . . . . . . . . . . . . . 40
4.8 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . 41
4.1 Introduction
La r´esolution num´erique d’´equations diff´erentielles est tr`es souvent n´eces-
saire, faute de l’existence de solutions analytiques. Le but de ce chapitre est de
montrer que la meilleure m´ethode, ou la plus efficace ` a utiliser pour obtenir une
solution, n´ecessite de connaˆıtre la nature de l’´equation diff´erentielle ` a r´esoudre.
Les m´ethodes les plus standards que nous allons pr´esenter sont largement pr´e-
sentes dans les logiciels de calcul comme Maple, Matlab, Scilab, Octave, ou
31
Equations diff´erentielles
Mathematica, et surtout dans les biblioth`eques pour la programmation (IMSL,
NAG, GSL). Il est donc pr´ef´erable d’utiliser ces biblioth`eques plutˆ ot que de
r´e´ecrire un code peu performant et probablement faux dans un premier temps.
4.2 D´efinitions
Soit une fonction num´erique not´ee y(x) d´efinie sur un intervalle de R et de
classe C
p
(continˆ ument d´erivable d’ordre p). On appelle ´equation diff´erentielle
d’ordre p une ´equation de la forme
F(x, y, y

, y

, . . . y
(p)
) = 0 (4.1)
o` u y

repr´esente la d´eriv´ee premi`ere par rapport ` a x, y

la d´eriv´ee seconde,
etc... Plus g´en´eralement, on appelle syst`eme diff´erentiel un ensemble d’´equations
diff´erentielles reliant une variable x et un certain nombre de fonction y
i
(x)
ainsi que leurs d´eriv´ees. L’ordre du syst`eme diff´erentiel correspond ` a l’ordre de
d´erivation le plus ´elev´e parmi l’ensemble des fonsctions.
On appelle solution de l’´equation diff´erentielle (4.1) toute fonction y(x) de
classe C
p
qui v´erifie l’´equation (4.1).
On appelle forme canonique d’une ´equation diff´erentielle une expression du
type
y
(p)
= f(x, y, y

, y

, . . . y
(p−1)
) (4.2)
Seul ce type d’´equations sera consid´er´e dans ce chapitre.
Il est facile de v´erifier que toute ´equation diff´erentielle canonique peut ˆetre
´ecrite comme un syst`eme d’´equations diff´erentielles du premier ordre.
Si on introduit p −1 fonctions d´efinies comme
y
1
= y
y
2
= y

. . .
y
p
= y
(p−1)
(4.3)
on peut exprimer l’´equation (4.2) sous la forme
y

1
= y
2
y

2
= y
3
. . .
y

p
= f(x, y, y
1
, y
2
, . . . y
p
) (4.4)
4.3 Equations diff´erentielles “sp´eciales”
4.3.1 Introduction
Une classe restreinte, mais importante, d’´equations diff´erentielles ont des
solutions math´ematiques sous la forme de fonctions transcendantes ou de fonc-
tions sp´eciales en g´en´eral. Nous allons donc donner un rapide aper¸ cu de ces
32
4.3 Equations diff´erentielles “sp´eciales”
´equations diff´erentielles particuli`eres qui contient en autres quelques ´equations
diff´erentielles non-lin´eaires, dont l’immense majorit´e ne peut ˆetre r´esolue que
num´eriquement.
4.3.2 Equations du premier ordre
Equation `a coefficients constants
Les ´equations diff´erentielles ` a coefficients constants de forme g´en´erale
a
dy
dx
+by(x) = c(x) (4.5)
ont pour solution g´en´erale
y(x) = e
−b/ax

dt
c(t)
a
e
b/at
+Cste

(4.6)
Equation lin´eaire
Une ´equation diff´erentielle lin´eaire a pour forme g´en´erale
dy
dx
+f(x)y(x) = g(x) (4.7)
o` u f(x) et g(x) sont des fonctions arbitraires. La solution de cette ´equation
diff´erentielle est
y(x) = e

R
x
f(u)du
(

dtg(t)e
R
t
f(u)du
+Cste

(4.8)
Equation de Bernouilli
L’´equation de Bernouilli a pour forme g´en´erale
dy
dx
+f(x)y(x) +g(x)y(x)
a
= 0 (4.9)
o` u f(x) et g(x) sont des fonctions arbitraires. En introduisant le changement
de fonction
y(x) = u(x)
1
1−a
(4.10)
l’´equation diff´erentielle devient une ´equation diff´erentielle du premier ordre
du
dx
= (a −1) (u(x)f(x) +g(x)) (4.11)
qui s’int´egre alors comme une ´equation diff´erentielle lin´eaire.
33
Equations diff´erentielles
Equation de Clairaut
Une ´equation de Clairaut est une ´equation de la forme
y(x) = x
dy
dx
+g

dy
dx

(4.12)
Ce type d’´equation diff´erentielle admet une solution lin´eaire de la forme
y(x) = Cx +g(C) (4.13)
o` u C est une constante arbitraire. La d´eriv´ee seconde de f(x) est diff´erente de
z´ero, on peut exprimer la solution de l’´equation sous forme param´etrique
x(s) = −g

(s) (4.14)
y(s) = g(s) −sg

(s) (4.15)
Equation de Riccatti
La forme d’une ´equation de Riccatti est donn´ee la formule suivante
dy
dx
−f(x)y(x)
2
−g(x)y(x) −h(x) = 0 (4.16)
o` u f(x), g(x) et h(x) sont des fonctions arbitraires. Il n’y a pas de solutions
g´en´erales pour l’´equation de Riccatti. Quand h(x) = 0, on retrouve la forme
d’une ´equation de Bernouilli dont la solution a ´et´e donn´ee plus haut. La forme
dite sp´eciale de l’´equation de Riccatti est d´efinie par l’´equation diff´erentielle
suivante ;
dy
dx
−ay(x)
2
−bx
c
= 0 (4.17)
Si de plus c est de la forme
c =
−4 ∗ i
2i −1
(4.18)
avec i entier relatif, on peut obtenir une expression analytique de l’´equation
diff´erentielle de Riccati.
4.3.3 Equation diff´erentielles du second ordre
Equations diff´erentielles `a coefficients constants
Les ´equations diff´erentielles ` a coefficients constants de forme g´en´erale
a
d
2
y
dx
2
+b
dy
dx
+cy(x) = d(x) (4.19)
ont pour solution compl`ete
y(x) =
2
¸
i=1
e
u
i
x

C
i
+

e

bx
a

dt
2ad(t)

b
2
−4ac
e
−u
j
t

(4.20)
o` u les u
i
sont les solutions de l’´equation caract´eristique
au
2
+bu +c = 0 (4.21)
et u
j
est la seconde racine de l’´equation caract´eristique quand u
i
est la premi`ere.
34
4.4 M´ethodes d’int´egration ` a pas s´epar´e
4.3.4 Equation de Bessel
Les ´equations diff´erentielles de Bessel sont d´efinies par les ´equations sui-
vantes
x
2
d
2
y
dx
2
+x
dy
dx
+ (x
2
−n
2
)y(x) = 0 (4.22)
et
x
2
d
2
y
dx
2
+x
dy
dx
−(x
2
−n
2
)y(x) = 0 (4.23)
ce qui donne respectivement pour solutions les ´equations de Bessel J et Y pour
la premi`ere et les ´equations de Bessel modifi´ees I et K pour la seconde.
4.3.5 Equation diff´erentielle erreur
On appelle equation diff´erentielle erreur l’´equation suivante
d
2
y
dx
2
+ 2x
dy
dx
−2ny(x) = 0 (4.24)
o` u n est un entier. Pour n = 0 la solution est de la forme
y(x) = c +derf(x) (4.25)
o` u c et d sont des constantes arbitraires. Dans le cas o` u o` u n = 1, la solution
est de la forme
y(x) = cx +d(e
−x
2
+

πerf(x)x) (4.26)
De mani`ere g´en´erale, la solution est une combinaison g´en´erale de fonction de
WhittakerM.
4.3.6 Equation diff´erentielle d’Hermite
L’´equation diff´erentielle d’Hermite est tr`es proche de l’´equation diff´erentielle
pr´ec´edente, puisque on a
d
2
y
dx
2
−2x
dy
dx
+ 2ny(x) = 0 (4.27)
De mani`ere g´en´erale, la solution est aussi une combinaison g´en´erale de fonction
de WhittakerM.
4.4 M´ethodes d’int´egration `a pas s´epar´e
4.4.1 Introduction
Soit l’´equation diff´erentielle d´efinie par les ´equations (4.4). On suppose que la
fonction f satisfait une condition de Lipschitz afin d’ˆetre certain que la solution
existe, est unique et que le probl`eme est bien pos´e.
On cherche ` a calculer une approximation de la solution y(x) en un certain
nombre de points x
1
, x
2
, . . . x
N
de l’intervalle [a, b], appel´e maillage de l’inter-
valle, avec x
0
= a et x
N
= b
35
Equations diff´erentielles
Nous supposons que la suite des points est choisie de mani`ere ` a ce que la
distance entre deux points cons´ecutifs soit constante et on pose
h =
(b −a)
N
(4.28)
ce qui donne
x
k
= a +kh (4.29)
avec k = 0, 1, . . . , N
On appelle m´ethode d’int´egration ` a pas s´epar´e toute formule de r´ecurrence
de la forme
y
k+1
= y
k
+hφ(x
k
, y
k
, h)
k = 0, 1, . . . N avec y
0
donn´e (4.30)
la fonction φ est suppos´ee continue par rapport aux trois variables x, y, h.
On appelle m´ethode ` a pas multiples les m´ethodes telles que y
k+1
d´epend de
plusieurs valeurs pr´ec´edentes y
k
, y
k−1
, . . . y
k−r
.
4.4.2 M´ethode d’Euler
Cette m´ethode est d´efinie par
y
k+1
= y
k
+hf(y
k
, x
k
) (4.31)
avec y
0
donn´e.
Cette m´ethode revient ` a approximer la solution au voisinage de x
k
par sa
tangente et nous allons voir qu’elle est d’ordre 1. En effet, si la solution est
suffisamment d´erivable, on peut ´ecrire
y(x
k
+h) = y(x
k
) +hy

(x
k
) +
h
2
2
y

(x
k
+θh) (4.32)
avec 0 ≤ θ ≤ 1. ce qui donne
y(x
k
+h) = y(x
k
) +hf(y
k
, x
k
) +
h
2
2
y

(x
k
+θh) (4.33)
D’apr`es la d´efinition de la m´ethode
1
h
(y(x
k
+h) −y(x
k
) −φ(y
k
(x
k
), x
k
, h)) =
y(x
k
+h) −y(x
k
)
h
−f(y(x
k
), x
k
)
(4.34)
ou
1
h
(y(x
k
+h) −y(x
k
) −φ(y
k
(x
k
), x
k
, h)) = h
y

(x
k
+θh)
2
(4.35)
Si la d´eriv´ee seconde de y est born´ee par une constante K dans l’intervalle
d’int´egration [a, b], on aura
max |
1
h
(y(x
k
+h) −y(x
k
) −φ(y
k
(x
k
), x
k
, h))| ≤ Kh (4.36)
ce qui montre que la m´ethode est d’ordre un.
La m´ethode d’Euler est une m´ethode num´erique peu coˆ uteuse num´erique-
ment, mais peu pr´ecise quand on int`egre sur plusieurs pas de temps. Des am´e-
liorations sont possibles d`es que l’on consid`ere des points interm´ediaires, ce que
nous allons voir ci-dessous en consid´erant des m´ethodes dites de Runge-Kutta
36
4.4 M´ethodes d’int´egration ` a pas s´epar´e
4.4.3 M´ethode RK explicites `a un point
y
k,1
= y
k
+
h

f(x
k
, y
k
)
y
k+1
= y
k
+h(1 −α)f(x
k
, y
k
) +αf(x
k
+
h

, y
k,1
)
y
0
donn´e
avec α un nombre r´eel compris entre 0 et 1. Les valeurs de α couramment
utilis´ees sont α = 1, α = 1/2 et α = 3/4. Ces m´ethodes sont d’ordre 2.
4.4.4 M´ethodes RK implicites `a un point
La formule de r´ecurrence est d´efinie par la relation
y
k+1
= y
k
+h[(1 −θ)f(x
k
, y
k
) +θf(x
k+1
, y
k+1
)] (4.37)
o` u θ est un nombre r´eel appartenant ` a l’intervalle ]0, 1] (si θ = 0, on retrouve la
m´ethode d’Euler). Si θ = 1/2, la m´ethode est d’ordre 2 et s’appelle la m´ethode
des trap`ezes. Si θ = 1/2, la m´ethode est d’ordre 1.
4.4.5 M´ethodes RK explicites `a 2 points interm´ediaires
Ces m´ethodes sont d´efinies par les relations
y
k,1
= y
k
+
h
3
f(x
k
, y
k
)
y
k,2
= y
k
+
2h
3
f

x
k
+
h
3
, y
k,1

y
k+1
= y
k
+
h
4

f(x
k
, y
k
) + 3f

x
k
+
2h
3
, y
k,2

(4.38)
ou par
y
k,1
= y
k
+
h
2
f(x
k
, y
k
)
y
k,2
= y
k
+h

f(x
k
, y
k
) + 2f

x
k
+
h
2
, y
k,1

y
k+1
= y
k
+
h
6

f(x
k
, y
k
) + 4f

x
k
+
h
2
, y
k,1

+f (x
k+1
, y
k,2
)

(4.39)
Ces deux m´ethodes sont d’ordre 3. La premi`ere est parfois appel´ee m´ethode de
Heun.
37
Equations diff´erentielles
4.4.6 M´ethodes RK explicites `a 3 points interm´ediaires
La m´ethode suivante est de loin la plus connue et utilis´ee. Les relations de
r´ecurrence sont les suivantes.
y
k,1
= y
k
+
h
2
f(x
k
, y
k
)
y
k,2
= y
k
+
h
2
f

x
k
+
h
2
, y
k,1

y
k,3
= y
k
+
h
2
f

x
k
+
h
2
, y
k,2

y
k+1
= y
k
+
h
6

f(x
k
, y
k
) + 2f

x
k
+
h
2
, y
k,1

+ 2f

x
k
+
h
2
, y
k,2

+f (x
k+1
, y
k,3
)

(4.40)
Cette m´ethode est d’ordre 4.
4.4.7 Formule g´en´erale des m´ethodes RK explicites
Les m´ethodes de Runge Kutta s’´ecrivent de mani`ere g´en´erale
K
1
= h[f(x
k

1
h, y
k

1,1
K
1

1,2
K
2
+. . . +α
1,n
K
n
)]
K
2
= h[f(x
k

2
h, y
k

2,1
K
1

2,2
K
2
+. . . +α
2,n
K
n
)]
. . . . . .
K
n
= h[f(x
k

n
h, y
k

n,1
K
1

n,2
K
2
+. . . +α
n,n
K
n
)]
y
k+1
= y
k
+h[γ
1
K
1

2
K
2
+. . . γ
n
K
n
] (4.41)
Les coefficients sont d´etermin´es afin que l’ordre soit le plus ´elev´e possible. On
note A la matrice de coefficients (α
i,j
), Γ le vecteur des coefficients γ
i
et Θ le
vecteur des coefficients θ
i
.
Quand la matrice A est triangulaire inf´erieure stricte, α
ij
= 0 pour j ≥ i,
on dit que la m´ethode est explicite. Si seule la partie triangulaire sup´erieure est
nulle, α
ij
= 0 pour j > i, la m´ethode est dite implicite ; sinon elle est totalement
implicite.
Une repr´esentation en forme de tableau des ´equations (4.41) donne
γ
1
γ
2
. . . γ
n
θ
1
α
1,1
α
1,2
. . . α
1,n
θ
2
α
2,1
α
2,2
. . . α
2,n
. . . . . . . . . . . .
θ
n
α
n,1
α
n,2
. . . α
n,n
Avec cette repr´esentation, la m´ethode Runge-Kutta explicite ` a deux points
qui est d’ordre 4 est repr´esent´ee par le tableau suivant
1/6 1/3 1/3 1/6
0 0 0 0 0
1/2 1/2 0 0 0
1/2 0 1/2 0 0
1 0 0 1 0
38
4.5 M´ethode d’int´egration ` a pas variables
4.5 M´ethode d’int´egration `a pas variables
4.5.1 Introduction
Un int´egrateur“intelligent”poss`ede une proc´edure de contrˆ ole de la m´ethode
de convergence, c’est ` a dire un moyen d’estimer l’erreur commise par le calcul
sur un pas d´int´egration et la possibilit´e de choisir en cons´equence un nouveau
pas si le syst`eme diff´erentiel aborde une r´egion o` u la fonction prend des valeurs
plus importantes. Le calcul de cette estimation entraˆıne un surcoˆ ut de calcul,
qu’il convient de bien g´erer afin de minimiser cet effort suppl´ementaire.
L’id´ee la plus simple pour estimer cette erreur consiste ` a calculer la solution
donn´ee par un algorithme (de Runge-Kutta d’ordre 4 par exemple) pour deux
pas d´int´egration diff´erents, h et 2h. Soit y(x +2h) la solution exacte ` a x +2h
et y(x +h) la solution exacte ` a x +h, on a
y(x + 2h) = y
1
+ (2h)
5
φ +O(h
6
) (4.42)
y(x + 2h) = y
2
+ 2(h
5
)φ +O(h
6
) (4.43)
o` u φ est une fonction qui reste constante sur l’intervalle x, x + 2h ` a l’ordre h
5
.
La premi`ere ´equation correspond ` a une int´egration avec un pas ´egal ` a 2h tandis
que la seconde correspond ` a deux int´egrations successives avec un pas de h. La
diff´erence
∆ = y
2
−y
1
(4.44)
fournit une estimation de l’erreur commise avec un pas d’int´egration h.
4.6 M´ethodes de Runge-Kutta “embarqu´ees”
Une autre m´ethode pour estimer l’erreur commise par l’utilisation d’un pas
h est due ` a Fehlberg. Il utilise le fait qu’en choisissant des valeurs particuli`eres
de γ
i
(voir section 4.4.7), on peut changer l’ordre de l’´evaluation de la solution
pour un pas de temps h donn´e.
y
1
= y(x) +
6
¸
i=1
γ
i
K
i
+ 0(h
6
) (4.45)
y
2
= y(x) +
6
¸
i=1
γ

i
K
i
+ 0(h
5
) (4.46)
ce qui conduit ` a une estimation de l’erreur
∆ =
6
¸
i=1

i
−γ

i
)K
i
(4.47)
Pour d´eterminer la valeur du pas la plus adapt´ee, on note tout d’abord que ∆
est calcul´e ` a l’ordre h
5
. Si on a un pas h
1
qui donne une erreur ∆
1
, le pas h
0
donn´e pour une erreur ∆
0
fix´ee ` a l’avance, est donn´e par la relation
h
0
= h
1


0

1

1/5
(4.48)
39
Equations diff´erentielles
Il est donc possible, pour une valeur de [∆
0
[ donn´ee ` a l’avance de diminuer h
0
pour obtenir une erreur plus faible ou d’augmenter h
0
de mani`ere raisonnable
si ∆
1
est inf´erieur en valeur absolue ` a [∆
0
[.
Une difficult´e apparaˆıt pour ce type de m´ethode quand on consid`ere un sys-
t`eme diff´erentiel ` a plusieurs variables. L’estimation de l’erreur est alors donn´ee ` a
priori par un vecteur. La g´en´eralisation de la proc´edure ´ebauch´ee reste possible,
mais nous ne d´etaillerons pas ce type de subtilit´e dans ce chapitre.
4.7 M´ethode de Bulirsh-Stoer
L’id´ee de cette m´ethode repose sur les trois principes suivants : la r´esolution
de l’´equation diff´erentielle pour un accroissement de ∆x est donn´ee par une
fonction qui d´epend de h, mais qui tend vers une limite finie (ind´ependante de
h) ; on cherche ` a estimer la valeur exacte du syst`eme diff´erentiel ` a int´egrer en
calculant pour diff´erents pas et en prenant la limite d’un pas tendant vers z´ero.
La figure 4.1 illustre graphiquement les diff´erentes estimations de la valeur
de la fonction solution en utilisant trois pas d’int´egration diff´erents. La limite
d’un pas de temps nul correspond ` a la solution exacte donn´ee par la courbe
en trait plein. Ce point est tr`es comparable ` a celui de la m´ethode de Romberg
d´ecrite pour l’int´egration.
Le second principe de la m´ethode consiste ` a extrapoler cette limite non pas
sur la base de d´eveloppements polynˆ omiaux mais de d´eveloppements en frac-
tions rationnelles. Le troisi`eme principe consiste ` a utiliser des fonctions d’erreur
qui sont paires en pas d´int´egration.
40
4.8 Conclusion
0.5 1 1.5 2 2.5 3 3.5
-2
0
2
4
6
8
10
1
2
3
Fig. 4.1 – Sch´ema illustrant le principe de la m´ethode de Burlish-Stoer. Les
lignes en pointill´e correspondent aux int´egrations r´ealis´ees avec trois pas d’in-
t´egration diff´erents. La courbe en trait plein correspond ` a la solution exacte.
4.8 Conclusion
Les m´ethodes expos´ees ci-dessus permettent d’obtenir une solution de plus
en plus pr´ecise pour des syst`emes diff´erentiels o` u le nombre de fonctions n’est
pas tr`es important. En simulation de Dynamique Mol´eculaire, un crit`ere de
qualit´e pour le choix d’une m´ethode est le respect de la propri´et´e d’invariance
par renversement du temps, qui est une propri´et´e satisfaite pour les syst`emes
hamiltoniens. Les algorithmes satisfaisant cette propri´et´e sont appel´es symplec-
tiques ; un exemple de ce type d’algorithme est l´algorithme dit de Verlet dont
le principe est d´ecrit dans le cours Simulation num´erique en Physique Statis-
tique.(http ://pascal.viot.com)
41
Equations diff´erentielles
42
Chapitre 5
Transform´ee de Fourier rapide
et algorithmes de tri
Contenu
5.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . 43
5.2 Propri´et´es . . . . . . . . . . . . . . . . . . . . . . . . . 44
5.3 Discr´etisation de la transform´ee de Fourier . . . . . 46
5.3.1
´
Echantillonage . . . . . . . . . . . . . . . . . . . . . . 46
5.3.2 Transform´ee de Fourier discr`ete . . . . . . . . . . . . . 47
5.4 Transform´ee de Fourier rapide . . . . . . . . . . . . 48
5.5 Algorithmes de tri . . . . . . . . . . . . . . . . . . . . 50
5.5.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . 50
5.5.2 M´ethode d’insertion . . . . . . . . . . . . . . . . . . . 50
5.5.3 Tri ` a bulles . . . . . . . . . . . . . . . . . . . . . . . . 51
5.5.4 Tri rapide . . . . . . . . . . . . . . . . . . . . . . . . . 51
5.1 Introduction
Largement utilis´ee en Physique, la transform´ee de Fourier d’une fonction
d´ependant d’une variable (par exemple du temps) est devenue si naturelle que
sa repr´esentation graphique est g´en´eralement aussi utile, voire plus, que celle
de la fonction elle-mˆeme. Apr`es un rappel des propri´et´es ´el´ementaires et fonda-
mentales des transform´ees de Fourier pour la r´esolution de probl`emes math´ema-
tiques, nous allons pr´esenter le principe de la m´ethode num´erique de l’´evaluation
de cette transform´ee. Plus sp´ecifiquement, depuis pr`es de 40 ans est apparu un
algorithme performant pour le calcul de la transform´ee de Fourier dont le temps
de calcul varie essentiellement comme N ln
2
(N) o` u N est le nombre de points
o` u la fonction f a ´et´e ´evalu´ee. Par opposition ` a une approche trop na¨ıve, o` u
le nombre d’op´erations croˆıt comme N
2
cette m´ethode a re¸ cu le nom de trans-
form´ee de Fourier rapide (FFT, Fast Fourier Transform, en anglais), que toute
biblioth`eque math´ematique propose g´en´eralement ` a son catalogue.
Profitant du fait que l’une des op´erations essentielles de la transform´ee de
Fourier est un r´earrangement des ´el´ements d’un tableau, nous allons voir les
43
Transform´ee de Fourier rapide et algorithmes de tri
principaux algorithmes de tri que l’on peut utiliser pour r´eordonner les ´el´ements
d’un tableau.
5.2 Propri´et´es
Soit une fonction f d´efinie sur R, on appelle transform´ee de Fourier de f,
la fonction
ˆ
f
ˆ
f(ν) =

+∞
−∞
f(t)e
2πiνt
dt (5.1)
La transform´ee de Fourier inverse est d´efinie comme
f
1
(t) =

+∞
−∞
ˆ
f(ν)e
−2πiνt
dν (5.2)
Pour une fonction f int´egrable, il y a identit´e entre la fonction f
1
et la fonction
f, hormis ´eventuellement sur un support de R de mesure nulle.
Une autre d´efinition de la transform´ee de Fourier rencontr´ee dans la litt´era-
ture est celle qui correspond ` a une repr´esentation en pulsation au lieu de celle
en fr´equence donn´ee ci-dessus.
ˆ
f(ω) =

+∞
−∞
f(t)e
iωt
dt (5.3)
La transform´ee de Fourier inverse correspondante est d´efinie comme
1
f
1
(t) =
1

+∞
−∞
ˆ
f(ω)e
−iωt
dω (5.6)
Avec le logiciel Maple, la transform´ee de Fourier est d´efinie d’une mani`ere
encore diff´erente !
ˆ
f(ω) =

+∞
−∞
f(t)e
−iωt
dt (5.7)
avec bien entendu la transform´ee de Fourier inverse correspondante
f
1
(t) =
1

+∞
−∞
ˆ
f(ω)e
iωt
dω (5.8)
Compte tenu des diff´erentes d´efinitions des transform´ees de Fourier et en
l’absence de documentation pr´ecise dans certaines biblioth`eques math´ematiques,
il est fortement recommand´e de tester la transform´ee de Fourier num´erique que
1
Pour sym´etriser les expressions, la transform´ee de Fourier est parfois d´efinie comme
ˆ
f(ω) =
1


Z
+∞
−∞
f(t)e
iωt
dt (5.4)
et la transform´ee de Fourier inverse comme
f1(t) =
1


Z
+∞
−∞
ˆ
f(ω)e
−iωt
dω (5.5)
44
5.2 Propri´et´es
l’on va utiliser, en testant une fonction dont la transform´ee de Fourier est connue
analytiquement pour d´eterminer de mani`ere simple la convention utilis´ee dans
la biblioth`eque disponible. Au del` a du principe g´en´eral de la transform´ee de
Fourier rapide, il existe des optimisations possibles compte tenu de l’architec-
ture de l’ordinateur sur lequel le programme sera ex´ecut´e. Cela renforce l’aspect
totalement inutile de la r´e´ecriture d’un code r´ealisant la dite transform´ee, ce
code serait en g´en´eral tr`es peu performant compar´e aux nombreux programmes
disponibles.
Dans le cas o` u la fonction f poss`ede des sym´etries, sa transform´ee de Fourier
pr´esente des sym´etries en quelque sorte duales de la fonction initiale
– Si f(t) est r´eelle, la transform´ee de Fourier des fr´equences n´egatives est
complexe conjugu´ee de celle des arguments positifs
ˆ
f(−ν) = (
ˆ
f(ν))

.
– Si f(t) est imaginaire, la transform´ee de Fourier des fr´equences n´egatives
est ´egale ` a l’oppos´ee du complexe conjugu´e de celle des arguments positifs
ˆ
f(−ν) = −(
ˆ
f(ν))

.
– Si f(t) est paire, la transform´ee de Fourier est aussi paire,
ˆ
f(−ν) =
ˆ
f(ν).
– Si f(t) est impaire, la transform´ee de Fourier est aussi impaire,
ˆ
f(−ν) =

ˆ
f(ν).
– Si f(t) est paire et r´eelle, la transform´ee de Fourier l’est aussi.
– Si f(t) est impaire et r´eelle, la transform´ee de Fourier est imaginaire et
impaire.
– Si f(t) est paire et imaginaire, la transform´ee de Fourier l’est aussi.
– Si f(t) est impaire et imaginaire, la transform´ee de Fourier est r´eelle et
impaire.
Des propri´et´es compl´ementaires sont associ´ees aux op´erations de translation
et dilatation
– Soit f(at), sa transform´ee de Fourier est donn´ee par
1
|a|
ˆ
f(
ν
a
).
– Soit
1
|b|
f(
t
|b|
), la transform´ee de Fourier est donn´ee par
ˆ
f(bν).
– Soit f(t −t
0
), la transform´ee de Fourier est donn´ee par
ˆ
f(ν)e
2πiνt
0
.
– Soit f(t)e
−2πiνt
0
, la transform´ee de Fourier est donn´ee par
ˆ
f(ν −ν
0
).
Une identit´e particuli`erement utile concernant les transform´ees de Fourier
concerne la distribution de Dirac δ : soit f une fonction continue d´efinie sur R,
La distribution δ est d´efinie ` a partir de la relation suivante

+∞
−∞
dxf(x)δ(x −x
0
) = f(x
0
) (5.9)
Ainsi, on en d´eduit facilement que

+∞
−∞
dxδ(x −x
0
)e
2πkix
= e
2πkix
0
(5.10)
et donc que

+∞
−∞
dxδ(x)e
2πikx
= 1 (5.11)
Par inversion de cette relation, on a la repr´esentation int´egrale de la distribution
δ
δ(x) =

+∞
−∞
dke
−2πikx
(5.12)
45
Transform´ee de Fourier rapide et algorithmes de tri
De mani`ere ´equivalente, on montre que
δ(x) =
1

+∞
−∞
dke
−ikx
(5.13)
La propri´et´e sans doute la plus importante concernant les transform´ees de Fou-
rier concerne la convolution. Soit deux fonctions f et g d´efinie sur C, on d´efinit
la convolution de f avec g not´ee f ∗ g comme
(f ∗ g)(t) =

+∞
−∞
f(τ)g(t −τ)dτ (5.14)
On v´erifie imm´ediatement que f ∗ g = g ∗ f. L’op´erateur de convolution est
commutatif, car la multiplication de deux nombres complexes l’est aussi.
La transform´ee de Fourier de la convolution de deux fonctions f et g est
´egale au produit de leurs transform´ees de Fourier.

(f ∗ g)(ν) =
ˆ
f(ν)ˆ g(ν) (5.15)
Soit une fonction r´eelle f, on d´efinit la fonction d’autocorr´elation comme
C
f
(t) =

+∞
−∞
duf(u)f(t +u) (5.16)
La transform´ee de Fourier de la fonction C
f
est alors donn´ee par
ˆ
C
f
(ν) =
ˆ
f(ν)
ˆ
f(−ν) (5.17)
Compte tenu du fait que f est r´eelle, on a
ˆ
f(−ν) = (
ˆ
f(ν))

, ce qui donne
´
C
f
(ν) = [
ˆ
f(ν)[
2
(5.18)
Cette relation est appel´ee th´eor`eme de Wiener-Khinchin.
Le th´eor`eme de Parseval donne que

+∞
−∞
[f(t)[
2
dt =

+∞
−∞
[
ˆ
f(ν)[
2
dν (5.19)
5.3 Discr´etisation de la transform´ee de Fourier
5.3.1
´
Echantillonage
Dans la situation la plus fr´equemment rencontr´ee, la fonction f est ´echan-
tillonn´ee ` a intervalle r´egulier. Soit ∆ le pas s´eparant deux “mesures” cons´ecu-
tives, on a
f
n
= f(n∆) avec n = . . . , −2, −1, 0, 1, 2, 3, . . . (5.20)
Pour le pas de l’´echantillonnage ∆, il existe une fr´equence critique, appel´ee
fr´equence de Nyquist,
ν
c
=
1
2∆
(5.21)
46
5.3 Discr´etisation de la transform´ee de Fourier
au del` a de laquelle il n’est pas possible d’avoir une information sur le spectre
de la fonction ´echantillonn´ee. Supposons que la fonction soit une sinuso¨ıde de
fr´equence ´egale ` a celle de Nyquist. Si la fonction est maximale pour un point,
elle est minimale au point suivant et ainsi de suite.
La cons´equence de ce r´esultat est que si on sait que le support de la trans-
form´ee de Fourier est strictement limit´e ` a l’intervalle [−ν
c
, ν
c
], la fonction f(t)
est alors donn´ee par la formule
f(t) = ∆
+∞
¸
n=−∞
f
n
sin(2πν
c
(t −n∆))
π(t −n∆)
(5.22)
Si la fonction f(t) est multipli´ee par la fonction e
2πν
1
t
avec ν
1
qui est un
multiple de 1/∆, les points ´echantillonn´es sont exactement les mˆemes. Une
cons´equence de cette propri´et´e est l’apparition du ph´enom`ene de duplication
(“aliasing” en anglais). Cela se manifeste de la mani`ere suivante : supposons
que la transform´ee de Fourier exacte d’une fonction ait un spectre plus large
que celui donn´e par l’intervalle de Nyquist, le spectre situ´e ` a droite se replie ` a
gauche et celui ` a droite se replie ` a gauche.
5.3.2 Transform´ee de Fourier discr`ete
Soit un nombre fini de points o` u la fonction f a ´et´e ´echantillonn´ee
f
k
= f(t
k
) avec k = 0, 1, 2, . . . , N −1 (5.23)
Avec N nombres fournis, il semble ´evident que l’on peut obtenir N fr´equences
pour la transform´ee de Fourier. Soit la suite
ν
n
=
n
N∆
avec n = −N/2, . . . , 0, . . . , N/2 (5.24)
Le nombre de fr´equences est a priori ´egale ` a N + 1, mais comme les bornes in-
f´erieure et sup´erieure de l’intervalle en fr´equence correspondent aux bornes d´e-
finies par la fr´equence critique de Nyquist, les valeurs obtenues pour n = −N/2
et n = N/2 sont identiques et nous avons donc bien N points ind´ependants.
Soit un nombre fini de points not´e h
k
, on d´efinit la transform´ee de Fourier
discr`ete comme
ˆ
h
n
=
1
N
N−1
¸
k=0
h
k
e
2πikn/N
(5.25)
La transform´ee de Fourier discr`ete inverse est donn´ee par
h
k
=
N−1
¸
n=0
ˆ
h
n
e
−2πikn/N
(5.26)
Ces transform´ees de Fourier sont d´efinies ind´ependamment des abscisses cor-
respondant aux valeurs originales o` u la fonction h a ´et´e ´evalu´ee. Il est toutefois
possible de relier la transform´ee de Fourier discr`ete ` a la transform´ee de Fourier
de d´epart par la relation
ˆ
f(ν
n
) · ∆
ˆ
f
n
(5.27)
47
Transform´ee de Fourier rapide et algorithmes de tri
2
Notons que les propri´et´es ´etablies pour les transform´ees de Fourier au d´ebut de
ce chapitre, selon le cas o` u la fonction est paire ou impaire, r´eelle ou imaginaire
se transposent compl`etement au cas de la transform´ee de Fourier discr`ete. Les
r`egles concernant la convolution se retrouvent bien ´evidemment et par exemple
l’expression du th´eor`eme de Parseval est alors
N−1
¸
k=0
[
ˆ
h
k
[
2
=
1
N
N−1
¸
k=0
[h
k
[
2
(5.30)
Le passage de la transform´ee de Fourier continue ` a la transform´ee de Fourier
discr`ete est en fait un changement de mesure, ce qui explique que les propri´et´es
´etablies pour l’une restent vraies pour la seconde.
On peut noter que les diff´erences entre la transform´ee de Fourier discr`ete et
son inverse sont au nombre de deux : un changement de signe dans l’exponen-
tielle complexe et un facteur de normalisation en 1/N. Ces faibles diff´erences
expliquent pourquoi les proc´edures sont souvent identiques pour le calcul de la
transform´ee de Fourier et de son inverse dans les biblioth`eques math´ematiques.
5.4 Transform´ee de Fourier rapide
L’id´ee de base de la transform´ee de Fourier rapide repose sur la remarque
suivante : posons
W = e
2πi/N
(5.31)
La composante de Fourier de h s’exprime alors comme
ˆ
h
n
=
N−1
¸
k=0
W
nk
h
k
(5.32)
Ainsi le vecteur h de composante h
k
est multipli´e par une matrice de coefficients
a
nk
= W
nk
. Sans utiliser d’astuces particuli`eres, le temps de calcul pour une
telle op´eration est alors en N
2
. Pour am´eliorer de mani`ere spectaculaire la
rapidit´e de ce traitement, on note que la transform´ee de Fourier discr`ete de
longueur N peut ˆetre ´ecrite comme la somme de deux transform´ees de Fourier
discr`ete chacune de longueur N/2. En effet, en supposant que le nombre N est
pair, on peut s´eparer la contribution des termes pairs et celle des termes impairs
2
La transform´ee de Fourier continue est approch´ee de la mani`ere suivante
ˆ
f(νn) =
Z
+∞
−∞
f(t)e
2πiνnt
dt (5.28)
≈∆
N−1
X
k=0
f
k
e
2πiνnt
k
(5.29)
48
5.4 Transform´ee de Fourier rapide
dans l’´equation
F
k
=
N−1
¸
j=0
e
2πijk/N
f
j
(5.33)
=
N/2−1
¸
j=0
e
2πi(2j)k/N
f
2j
+
N/2−1
¸
j=0
e
2πi(2j+1)k/N
f
2j+1
(5.34)
=
N/2−1
¸
j=0
e
2πijk/(N/2)
f
2j
+W
k
N/2−1
¸
j=0
e
2πijk/(N/2)
f
2j+1
(5.35)
=F
p
k
+W
k
F
i
k
(5.36)
o` u F
p
k
repr´esente la ki`eme composante de Fourier pour les composantes paires
de la fonction de d´epart et F
i
k
repr´esente la ki`eme composante de Fourier pour
les composantes impaires de la fonction de d´epart. A noter que ces deux com-
posantes sont p´eriodiques en k avec une p´eriode N/2.
Pour it´erer ce type de proc´edure, nous allons supposer que le nombre de
points de la fonction de d´epart est dor´enavant une puissance de deux. On peut
alors exprimer chaque composante de Fourier en fonction de deux nouvelles
composantes de Fourier sur un intervalle de longueur N/4 et ainsi de suite. Une
fois obtenue un intervalle de longueur 1, on a la transform´ee de Fourier pour
cet intervalle qui est ´egale au nombre f
n
correspondant. Le nombre d’indices
pour caract´eriser ce nombre est ´egal ` a ln
2
(N)
F
iipip...ppi
k
= f
n
(5.37)
On remarque donc que pour chaque valeur de n on a un alphabet fini d’indice
iipip . . . ppi constitu´e de i et de p. Cette correspondance est biunivoque. Si on
pose que i = 1 et p = 0, on a l’expression invers´ee en binaire de chaque valeur
de n.
La proc´edure de transform´ee de Fourier rapide est alors constitu´ee d’une pre-
mi`ere op´eration de tri pour r´eordonner la matrice selon la lecture de l’alphabet
g´en´er´e, puis on calcule successivement les composantes de Fourier de longueur
2, puis 4, jusqu’` a N. La figure 5.1 illustre le nombre d’op´erations ` a effectuer
pour inverser les ´el´ements du tableau selon le m´ecanisme du renversement de
bits.
De nombreuses variantes de cet algorithme original sont disponibles, qui per-
mettent d’obtenir la transform´ee de Fourier pour un nombre de points diff´erent
d’une puissance de deux.
49
Transform´ee de Fourier rapide et algorithmes de tri
000
001
010
011
100
101
110
111
000
001
010
011
100
101
110
111
000
001
010
011
100
101
110
111
(a)
(b)
Fig. 5.1 – Sch´ema illustrant le principe de la mise en ordre du tableau par
renversement de bits. (a) Sur un tableau de 8 ´el´ements ´etiquett´es en binaire, on
note les op´erations de d´eplacements. (b) Bilan des d´eplacements ` a effectuer :
deux op´erations d’´echange d’´el´ements.
5.5 Algorithmes de tri
5.5.1 Introduction
Un tableau est une suite d’´elements rep´er´es par un entier appel´e indice. Une
op´eration tr`es classique consiste ` a changer l’ordre initial (qui peut ˆetre al´eatoire)
en respectant un crit`ere d´efini par l’utilisateur. Une op´eration de base consiste ` a
trier des nombres selon un ordre croissant ou d´ecroissant. Une op´eration voisine
est la recherche du plus petit ou du grand ´el´ement de ce tableau.
Les op´erations pr´ec´edentes sont destructrices dans le sens que l’ordre initial
du tableau est perdu une fois l’op´eration effectu´ee. On peut en cr´eant un tableau
suppl´ementaire construire une correspondance entre l’ordre obtenu par un tri et
l’indice occup´e par l’´el´ement du tableau correspondant dans le tableau initial.
Si, au lieu d’utiliser un tableau de nombres, on dispose d’un tableau d’objets,
c’est-` a-dire un tableau dont l’´el´ement de base est une structure comprenant
des champs, qui sont eux-mˆemes des nombres et des chaˆınes de caract`eres,
les op´erations de tri peuvent aussi r´ealis´ees sur plusieurs champs de mani`ere
s´equentielle ; cette op´eration est appel´ee op´eration de tri multiple
5.5.2 M´ethode d’insertion
Supposons que l’on veuille trier des ´el´ements d’un tableau de nombre se-
lon un ordre croissant.L’algorithme de la m´ethode d’insertion est le suivant : on
50
5.5 Algorithmes de tri
place un ` a un les ´el´ements du tableau ` a la bonne place du nouveau tableau rem-
plir des ´el´ements tri´es. On proc`ede donc de mani`ere it´erative jusqu’au dernier
´el´ement du tableau ` a trier. On peut choisir de construire un nouveau tableau ou
de r´eutiliser le tableau existant. Pratiquement, on proc`ede de mani`ere suivante.
On choisit le premier ´el´ement : il est automatiquement bien plac´e dans un ta-
bleau ` a un ´el´ement. On tire le second ´el´ement : on augmente d’un ´el´ement la
taille du tableau ` a trier ; soit le nouvel ´el´ement est plus grand que le pr´ec´edent
et on place cet ´el´ement ` a la deuxi`eme place, sinon, on d´eplace l’´el´ement initiale-
ment plac´e ` a la seconde place et l’on place le nouvel ´el´ement ` a la premi`ere place.
On choisit alors un troisi`eme ´el´ement ; on teste si celui-ci est plus grand que le
deuxi`eme. Si le test est positif, cet ´el´ement est plac´e en troisi`eme place, sinon on
d´eplace l’´el´ement plac´e en num´ero deux en num´ero trois et on teste si le nouvel
´el´ement est plus grand que l’´el´ement un. Si le test est positif, on place le nouvel
´el´ement en num´ero deux, sinon on d´eplace le premier ´el´ement en deux et on place
le nouvel ´el´ement en un. On continue cet algorithme jusqu’au dernier ´el´ement
du tableau ` a trier. Il est facile de voir que le nombre d’op´erations en moyenne
´evolue comme N
2
, o` u N est le nombre d’´el´ements ` a trier. Comme nous allons le
voir ci-dessous les algorithmes de type “tri rapide” sont beaucoup plus efficaces
car ceux-ci d´ependent du nombre d’´el´ements comme N log
2
(N). N´eanmoins, un
algorithme de type insertion reste suffisamment efficace si N < 20.
5.5.3 Tri `a bulles
Le tri ` a bulles es un algorithme en N
2
qui op`ere de la mani`ere suivante :
On compare les deux premiers ´el´ements du tableau; si l’ordre est correct, on ne
fait rien sinon on ´echange les deux ´el´ements : on passe alors au couple suivant
constitu´e des ´el´ements 2 et 3, et on effectue un test ` a nouveau. Apr`es N − 1
op´erations de ce type, on a plac´e le plus grand ´el´ement du tableau en derni`ere
position; on peut alors recommencer sur le tableau restant des N −1 ´el´ements ;
cet algorithme est bien ´evidemment un algorithme en N
2
et ne peut servir que
pour des valeurs de N tr`es modestes.
5.5.4 Tri rapide
Connu par son nom anglais “quicksort”, le tri dit rapide proc`ede de la ma-
ni`ere suivante : on prend le premier ´el´ement du tableau ` a trier, not´e a
1
. On
construit avec les autres ´el´ements deux sous tableaux : le premier contient les
´el´ements plus petits que a
1
et le second les ´el´ements plus grands. On peut pla-
cer a
1
` a la bonne place dans le tableau final et on applique l’algorithme du
tri rapide sur chacun des deux sous-tableaux. On peut montrer qu’en moyenne
l’algorithme est en N log
2
(N), mais il est possible d’obtenir des situations o` u
l’algorithme est en N
2

Des variantes de cet algorithme puissant existent pour par exemple ´eviter
la r´ecursivit´e qui p´enalise la rapidit´e d’ex´ecution du programme. A nouveau,
il est inutile, hormis pour des raisons p´edagogiques, de chercher ` a r´e´ecrire un
programme pour ces algorithmes, que cela soit en programmation o` u de nom-
breuses biblioth`eques sont disponibles, ou dans les logiciels scientifiques o` u les
51
Transform´ee de Fourier rapide et algorithmes de tri
instructions de tri sont disponibles, mais il convient de tester la m´ethode la plus
adapt´ee car le “d´esordre initial”du tableau ` a trier influe de mani`ere significative
sur la performance des algorithmes.
52
Chapitre 6
Equations aux d´eriv´ees
partielles
Contenu
6.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . 53
6.2 Equations avec conditions aux fronti`eres . . . . . . 56
6.2.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . 56
6.2.2 Diff´erences finies . . . . . . . . . . . . . . . . . . . . . 56
6.2.3 M´ethodes matricielles . . . . . . . . . . . . . . . . . . 57
6.2.4 M´ethodes de relaxation . . . . . . . . . . . . . . . . . 57
6.2.5 M´ethodes de Fourier . . . . . . . . . . . . . . . . . . . 58
6.3 Equations avec conditions initiales . . . . . . . . . . 60
6.3.1 Equations ` a flux conservatif . . . . . . . . . . . . . . . 60
6.3.2 Une approche na¨ıve . . . . . . . . . . . . . . . . . . . 61
6.3.3 Crit`ere de Stabilit´e de Von Neumann . . . . . . . . . . 61
6.3.4 M´ethode de Lax . . . . . . . . . . . . . . . . . . . . . 62
6.4 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . 63
6.1 Introduction
Les ´equations aux d´eriv´ees partielles interviennent dans de nombreux do-
maines de physique, qui comprennent les probl`emes de diffusion, les ph´enom`enes
de propagation, ainsi que le domaine de la m´ecanique des fluides d´ecrite par
les ´equations hydrodynamiques comme celles de Navier-Stokes et l’´equation de
Schr¨odinger d´ependante du temps pour la m´ecanique quantique. Ces ´equations
diff´erentielles n’ont g´en´eralement pas de solutions analytiques et une r´esolution
num´erique de ces ´equations est alors n´ecessaire.
Une ´equation aux d´eriv´ees partielles est une relation liant une fonction de n
variables ` a ses d´eriv´ees partielles. L’ordre de l’´equation est donn´e par l’ordre le
plus ´el´ev´e des d´eriv´ees partielles apparaissant dans l’´equation. La forme g´en´erale
d’une ´equation aux d´eriv´ees partielles lin´eaires est
L[f(x)] = g(x) (6.1)
53
Equations aux d´eriv´ees partielles
-1 0 1 2 3 4 5 6 7 8 9
x
0
1
2
3
4
5
6
t
Conditions initiales
Conditions
aux
limites
Fig. 6.1 – Sch´ema illustrant le principe de la r´esolution d’une ´equation aux
d´eriv´ees partielles avec des conditions initiales et des conditions aux limites :
La propagation de la solution le long de l’axe temporel (axe vertical) se fait par
“tranche horizontale”.
o` u un x est un vecteur de composante (x
1
, x
2
, . . . , x
n
) et o` u L est un op´erateur
d´efini par la relation
L = p
0
(x) +
n
¸
i=1
p
i
(x)∂
i
+
n
¸
i,j=1
p
ij
(x)∂
i

j
+. . . (6.2)
Si g(x) = 0, on dit que l’´equation est homog`ene.
Dans ce cours d’introduction, nous allons nous limiter aux ´equations aux
d´eriv´ees partielles lin´eaires. Une premi`ere classification non exhaustive fait ap-
paraˆıtre trois types d’´equations : ´equations hyperboliques, paraboliques et ellip-
tiques. Cette classification provient de l’analyse des d´eriv´ees partielles d’ordre
le plus ´el´ev´e. Pour les ´equations d’ordre deux, une solution unique existe si la
relation appel´e´e ´equation aux caract´eristiques
p
12
±

p
2
12
−p
11
p
22
p
11
= 0 (6.3)
est vraie. Si la valeur du membre de gauche de l’´equation (6.3) est r´eelle, on dit
que l’on a une ´equation hyperbolique. Si la valeur est complexe, on dit que l’on
a une ´equation elliptique et si elle est nulle, on a une ´equation parabolique.
On peut illustrer ces trois cat´egories par les exemples physiques suivants :
54
6.1 Introduction
-1 0 1 2 3 4 5 6 7 8 9
x
0
1
2
3
4
5
6
y
Conditions aux bords
Fig. 6.2 – Sch´ema illustrant le principe de la r´esolution d’une ´equation aux
d´eriv´ees partielles avec des conditions aux bords : l´ensemble des points de la
grille doit ˆetre gard´e tout au long du calcul.
Equation hyperbolique. La propagation des ondes dans un milieu continu
(unidimensionnel) ob´eit ` a l’´equation suivante

2
u(x, t)
∂t
2
= c
2

2
u(x, t)
∂x
2
(6.4)
o` u u(x, t) peut d´esigner une variable scalaire comme la densit´e locale
ρ(x, t) ou une variable vectorielle comme la vitesse locale v(x, t).
Equation parabolique. La diffusion de particules dans un milieu continu
ob´eit ` a l’´equation suivante
∂ρ(x, t)
∂t
= D

2
ρ(x, t)
∂x
2
(6.5)
o` u D est la constante de diffusion et ρ(x, t) la densit´e locale instantan´ee
des particules diffusantes.
Equation elliptique. En dimensions deux, le potentiel coulombien induit
par une densit´e de charges ´electriques satisfait l’´equation suivante (avec
des unit´es choisies de mani`ere appropri´ee)
−ρ(x, y) =

2
V (x, y, t)
∂x
2
+

2
V (x, y, t)
∂y
2
(6.6)
o` u ρ(x, y) est la densit´e locale de charge et V (x, y) le potentiel ´electrosta-
tique ` a d´eterminer.
55
Equations aux d´eriv´ees partielles
La r´esolution num´erique repose sur une distinction importante entre ces
type d’´equations : Les deux premi`eres ´equations correspondent ` a une ´evolution
temporelle tandis que la troisi`eme ´equation correspond ` a un probl`eme statique.
Dans le premier cas, la solution est donn´ee ` a partir d’une fonction (ou condition
initiale) que l’on doit propager le long de l’axe du temps ; en compl´ement on
doit tenir compte des conditions au limites du probl`eme. En discr´etisant la
r´esolution, on obtient un sch´ema du type de celui illustr´e par la figure 6.1.
En effet pour une ´equation d´ependante du temps du type ´equation de dif-
fusion, la r´esolution de l’´equation se fait pour un temps donn´e en fonction des
valeurs de la fonction ` a l’instant ant´erieur pr´ec´edent (ou de quelques instants
ant´erieurs pr´ec´edents). Il n’est donc pas n´ecessaire de garder en m´emoire la
solution ` a tous les temps.
Pour l’´equation de Poisson, la solution est unique une fois donn´ee la fonc-
tion ρ(x, y). La solution ne pouvant ˆetre obtenue num´eriquement directement
` a partir de l’int´egration ` a partir d’une fronti`ere du syst`eme, il est n´ecessaire de
proc´eder ` a des r´eajustements, ce qui implique de garder en m´emoire la totalit´e
de valeurs de la fonction V ` a d´eterminer tout au long de la r´esolution num´erique
(voir figure 6.2).
6.2 Equations avec conditions aux fronti`eres
6.2.1 Introduction
Le prototype de ces ´equations est la r´esolution de l’´equation de Poisson. Ces
´equations sont a priori plus simples ` a r´esoudre car le probl`eme de la stabilit´e
de l’algorithme se pose moins fr´equemment que dans pour des ´equations avec
conditions initiales, que nous allons discuter dans la section suivante.
Avant de proc´eder ` a la r´esolution num´erique, il est important de bien distin-
guer le type de conditions aux fronti`eres du probl`eme : condition de Dirichlet,
qui sp´ecifie les valeurs des points ` a la fronti`ere ; condition de Neumann qui
sp´ecifie les valeurs des gradients normaux ` a la fronti`ere, voire des conditions
mixtes.
6.2.2 Diff´erences finies
La premi`ere ´etape consiste ` a choisir un maillage r´egulier de l’espace (que
nous choisissons bidimensionnel dans notre exemple). Soit la fonction de deux
variables V (x, y)
x
i
= x
0
+j∆ j = 0, 1, ..., J (6.7)
y
k
= x
0
+k∆ k = 0, 1, ..., K (6.8)
o` u ∆ est le pas de la grille. On note V
jk
= V (x
j
, y
k
). On approxime le laplacien
par la formule de diff´erence finie suivante
V
j+1,k
+V
j−1,k
−2V
j,k

2
+
V
j,k+1
+V
j,k−1
−2V
j,k

2
= −ρ
jk
(6.9)
56
6.2 Equations avec conditions aux fronti`eres
que l’on peut ´ecrire simplement
V
j+1,k
+V
j−1,k
+V
j,k+1
+V
j,k−1
−4V
j,k
= −∆
2
ρ
jk
(6.10)
Ce syst`eme d’´equations lin´eaires peut s’exprimer sous une forme matricielle en
utilisant l’indexation suivante
i = j(K + 1) +k j = 0, 1, ..., J et k = 0, 1, ..., K (6.11)
L’´equation (6.9) est correcte pour l’ensemble des points int´erieurs au rectangle.
Pour les points aux fronti`eres, les valeurs de V ou de ces d´eriv´ees sont don-
n´ees par le probl`eme lui-mˆeme. On obtient finalement la structure matricielle
suivante.
A.Y = b (6.12)
La matrice A est une matrice tridiagonale avec des franges, le vecteur Y est un
vecteur ` a JK composantes (Y
i
≡ V
jk
) et le vecteur b ` a JK composantes (b
i

−ρ
jk
) Ce type de repr´esentation est similaire pour des ´equations elliptiques du
second ordre
a(x, y)

2
V
∂x
2
+b(x, y)
∂V
∂x
+c(x, y)

2
V
∂y
2
+d(x, y)
∂V
∂y
+e(x, y)

2
V
∂x∂y
+f(x, y)V = g(x, y) (6.13)
En choisissant une classification tr`es rapide, on peut dire qu’il existe trois
types de m´ethodes pour r´esoudre ce type d’´equations : les m´ethodes de relaxa-
tion, les m´ethodes de Fourier et les m´ethodes matricielles directes.
6.2.3 M´ethodes matricielles
Les m´ethodes matricielles ou m´ethodes directes consistent ` a d´eterminer les
valeurs de la fonction V en calculant la matrice inverse de A. La difficult´e
de cette m´ethode repose sur la taille consid´erable de la matrice que l’on doit
inverser. En effet, si on consid`ere un r´eseau bidimensionnel dont la taille est
100100, et compte tenu de l’´equation (6.11), la matrice A est alors une matrice
carr´ee de taille 10000 10000, contenant 10
8
´el´ements. Il est donc n´ecessaire
que cette matrice soit tr`es creuse et de structure simple afin que le calcul de
son inverse soit effectu´e avec un algorithme rapide.
Pratiquement, la matrice inverse est facile ` a obtenir quand les ´el´ements de
matrice ne d´ependent pas des abscisses du r´eseau (cas d’une ´equation elliptique
` a coefficients constants).
6.2.4 M´ethodes de relaxation
Les m´ethodes de relaxation reposent sur le sch´ema it´eratif suivant. On d´e-
compose la matrice A comme
A = E −F (6.14)
57
Equations aux d´eriv´ees partielles
o` u E est une matrice facilement inversible et F le reste. On peut ´ecrire alors
que
E.u = F.u +b (6.15)
En choisissant un vecteur u
(0)
, on proc`ede ` a la succession de calculs suivants
E.u
(r)
= F.u
(r−1)
+b (6.16)
La convergence de la m´ethode est obtenue quand la diff´erence entre deux valeurs
de la fonction est inf´erieure ` a , |u
(r)
−u
(r−1)
| < . La norme |u| d´esigne par
exemple
¸
ij
[u
ij
[
2
.
6.2.5 M´ethodes de Fourier
Principe
On exprime la transform´ee de Fourier discr`ete de V dans les deux directions
Ox et Oy.
V
kl
=
1
KL
K−1
¸
m=0
L−1
¸
n=0
ˆ
V
mn
e
−2iπkm/K
e
−2iπln/L
(6.17)
Une expression analogue pour la fonction ρ peut ˆetre obtenue
ρ
kl
=
1
KL
K−1
¸
m=0
L−1
¸
n=0
ˆ ρ
mn
e
−2iπkm/K
e
−2iπln/L
(6.18)
En prenant la transform´ee de Fourier discr`ete de l’´equation (6.10), les compo-
santes de Fourier de V sont reli´ees ` a celles de ρ par la relation
ˆ
V
mn

e
2iπm/K
+e
−2iπm/K
+e
2iπn/L
+e
−2iπn/L
−4

= −ˆ ρ
mn

2
(6.19)
ce qui peut se r´e´ecrire plus simplement pour si n et m diff´erents de z´ero comme
ˆ
V
mn
=
−ˆ ρ
mn

2
2

cos

2πm
K

+ cos

2πn
L

−2
(6.20)
La relation alg´ebrique entre les composantes de Fourier de V et de ρ indique
que le calcul dans l’espace de Fourier est ´el´ementaire et revient ` a multiplier
individuellement chaque composante de ρ par un scalaire.
La m´ethode de r´esolution num´erique est donc la suivante :
– Calculer les composantes de Fourier de ρ : ˆ ρ
mn
– Calculer les composantes de Fourier de V en utilisant la relation (6.20) :
ˆ
V
mn
– Calculer la transform´ee de Fourier inverse de
ˆ
V pour obtenir V .
Noter que la transform´ee de Fourier obtenue donne les relations suivantes
u
jk
= u
j+J,k
= u
j,k+K
(6.21)
ce qui en d’autres termes correspond ` a une solution satisfaisant des conditions
aux limites p´eriodiques. A partir de l’´equation (6.20), on voit que l’on peut
choisir
ˆ
V
00
= 0, mais qu’il est n´ec´essaire que ˆ ρ
00
= 0. Si cette derni`ere relation
n’est pas satisfaite, il faut modifier la solution choisie pour V comme nous allons
le voir ci-dessous.
58
6.2 Equations avec conditions aux fronti`eres
Condition de Dirichlet
Si on impose des conditions de Dirichlet aux bords du rectangle, c’est-` a-dire
u = 0 pour j = 0 et j = J et pour k = 0 et k = K, la transform´ee de Fourier
adapt´ee est alors celle en sinus.
V
kl
=
2
KL
K−1
¸
m=0
L−1
¸
n=0
ˆ
V
mn
sin

πkm
K

sin

πln
L

(6.22)
Une expression similaire pour la fonction ρ peut ˆetre ´ecrite. Un calcul simple
montre que la relation (6.20) relie les composantes de Fourier en sinus des
deux fonctions. et la m´ethode de calcul donn´ee dans le paragraphe pr´ec´edent
s’applique ` a nouveau ` a condition de consid´erer les transform´ees de Fourier en
sinus.
Condition de Neumann
Si on impose des conditions de Neumann aux bords du rectangle, c’est-` a-
dire ∇u = 0 pour j = 0 et j = J et pour k = 0 et k = K, la transform´ee de
Fourier adapt´ee est alors celle en cosinus.
V
kl
=
2
KL
K−1
¸
m=0
L−1
¸
n=0
ˆ
V
mn
cos

πkm
K

cos

πln
L

(6.23)
ainsi que pour la fonction ρ. A nouveau, les composantes de Fourier sont reli´ees
par la relation (6.20). Le mˆeme sch´ema donn´e ci-dessus s’applique alors.
Conditions complexes
Ceci repr´esente le cas g´en´eral o` u par exemple la fonction u(x, y) s’annule sur
l’une des fronti`eres (j = 0), mais vaut u = f(y) sur la fronti`ere oppos´ee (j = J).
La m´ethode consiste alors ` a ´ecrire que la solution de ce probl`eme est la somme
de deux contributions : celle de la solution de l’´equation pour une condition
de Dirichlet et celle de la solution qui est nulle ` a l’int´erieur du rectangle. En
´ecrivant la solution sous la forme
u = u

+u
B
(6.24)
avec u
B
= 0 sauf u
B
= f ` a la fronti`ere, on obtient

2
u

= −∇
2
u
B
+ρ (6.25)
ce qui montre que la fonction satisfait alors une condition de Dirichlet. Le calcul
de u

est effectu´e en ajoutant un terme de source ` a ρ. Pratiquement, cela ajoute
une contribution sur la ligne situ´ee juste avant la fronti`ere.
De mani`ere analogue, si la condition aux fronti`eres est donn´ee par un gra-
dient normal non nul, on d´ecompose la solution d’une premi`ere contribution
correspondant ` a la solution du probl`eme de Neumann et d’une seconde contri-
bution nulle en dehors de la fronti`ere. En utilisant une d´ecomposition analogue
` a celle introduite ci-dessus, cela revient ` a r´esoudre le probl`eme de Neumann en
modifiant le terme de source.
59
Equations aux d´eriv´ees partielles
6.3 Equations avec conditions initiales
6.3.1 Equations `a flux conservatif
Les ´equations ` a flux conservatif dans un espace unidimensionel peuvent
s’´ecrire sous la forme
∂u
∂t
= −
∂F(u)
∂x
(6.26)
o` u u et F sont des fonctions soit scalaires soit vectorielles ; F est appel´e flux
conserv´e, on peut citer l´exemple de l’´equation de la conservation de la masse
(correspondant ` a une fonction u scalaire)
∂ρ
∂t
= −∇.(ρv) (6.27)
Si de plus on a une relation constitutive, comme la loi de Fick, F = ρv =
−D∇(ρ), on obtient l’´equation parabolique de la diffusion.
Si u est un vecteur, l’´equation de propagation des ondes (sonores ou ´elec-
tromagn´etiques, par exemple) se ram`ene ` a ce type d’´equation. En effet soit
l’´equation des ondes suivante,

2
v
∂t
2
= c
2

2
v
∂x
2
(6.28)
on introduit les fonctions auxiliaires r et s
r = c
∂v
∂x
(6.29)
s =
∂v
∂t
(6.30)
et l’´equation de propagation s’exprime alors par un ensemble de deux ´equations
aux d´eriv´ees partielles du premier ordre
∂r
∂t
= c
∂s
∂x
(6.31)
∂s
∂t
= c
∂r
∂x
(6.32)
Si on consid`ere que r et s sont les deux composantes du vecteur u, l’´equation de
propagation est alors donn´ee par l’´equation (6.26) avec la relation matricielle
suivante
F(u) =

0 −c
−c 0

.u (6.33)
Ainsi les ´equations ` a flux conserv´e comprennent ` a la fois les ´equations aux
d´eriv´ees partielles paraboliques et hyperboliques.
Par souci de simplicit´e, nous allons consid´erer par la suite l’´equation ` a flux
conservatif suivante
∂u
∂t
= −c
∂u
∂x
(6.34)
La solution de cette ´equation est bien ´evidemment connue u = f(x −ct), mais
nous allons chercher ` a construire une proc´edure num´erique pour d´eterminer la
solution.
60
6.3 Equations avec conditions initiales
6.3.2 Une approche na¨ıve
Une premi`ere ´etape consiste ` a discr´etiser l’espace et le temps sur un r´eseau
r´egulier
x
j
= x
0
+j∆x j = 0, 1, . . . J (6.35)
t
n
= t
0
+n∆t n = 0, 1, . . . N (6.36)
o` u ∆x et ∆t sont les pas d’espace et de temps respectivement.
La difficult´e r´eside maintenant dans le choix de l’algorithme d’int´egration.
La m´ethode la plus simple consiste ` a utiliser un algorithme de type Euler
∂u
∂t

j,n
=
u
n+1
j
−u
n
j
∆t
+O(∆t) (6.37)
Mˆeme si la pr´ecision de l’algorithme n’est pas tr`es importante, cela permet
d’exprimer la solution ` a l’instant n + 1 uniquement en fonction de l’instant n.
Pour int´egrer spatialement, on utilise un algorithme du second ordre
∂u
∂x

j,n
=
u
n
j+1
−u
n
j−1
2∆x
+O(∆x
2
) (6.38)
ce qui donne finalement
u
n+1
j
−u
n
j
∆t
= −c
u
n
j+1
−u
n
j−1
2∆x
(6.39)
soit encore
u
n+1
j
= u
n
j
−c∆t
u
n
j+1
−u
n
j−1
2∆x
(6.40)
La d´etermination de u
n+1
j
se fait en fonction des trois points : u
n
j
, u
n
j+1
et u
n
j−1
.
On parle de m´ethode explicite. Malheureusement, ce sch´ema tr`es simple ne
fonctionne pas en ce sens qu’il ne permet pas d’obtenir une solution correcte de
l’´equation aux d´eriv´ees partielles. En d’autres termes, on dit qu’il est instable.
6.3.3 Crit`ere de Stabilit´e de Von Neumann
Pour faire l’analyse de la stabilit´e des algorithmes, on suppose que les coef-
ficients de l’´equation aux diff´erences varient tr`es peu dans l’espace et le temps.
Les modes propres solutions de cette ´equation peuvent alors s’´ecrire sous la
forme
u
n
j
= ξ(k)
n
e
ikj∆x
(6.41)
o` u k est un vecteur d’onde r´eel et ξ(k) une fonction complexe qui d´epend de k.
On voit facilement que l’int´egration temporelle conduit ` a une progression g´eo-
m´etrique pour les valeurs de u
n
j
. Afin que la solution soit stable, il est n´ecessaire
que les modes exponentiellement divergents n’existent pas. Cela revient ` a dire
que l’algorithme est instable d`es qu’il existe un vecteur d’onde k
0
tel que
[ξ(k
0
)[ > 1 (6.42)
61
Equations aux d´eriv´ees partielles
1 2 3 4 5 6 7 8
x
1
1.5
2
2.5
3
3.5
4
4.5
5
t
Instable
(a)
1 2 3 4 5 6 7 8
x
1
1.5
2
2.5
3
3.5
4
4.5
5
t
Stable
(b)
Fig. 6.3 – Sch´ema illustrant le principe de la r´esolution d’une ´equation aux
d´eriv´ees partielles avec la m´ethode de Lax : La zone hachur´ee indique la zone
de d´ependance (a) M´ethode instable (b) M´ethode stable
En ins´erant l’´equation (6.41) dans l’´equation (6.39) et on obtient
ξ(k) = 1 −i
c∆t
∆x
sin(k∆x) (6.43)
Le module de ξ(k) est strictement sup´erieur ` a 1 pour tous les vecteurs d’onde,
hormis ceux o` u k∆x = pπ o` u p est un entier. Ceci permet de comprendre la
nature catastrophique de la m´ethode pr´ec´edente.
6.3.4 M´ethode de Lax
Pour corriger le grave probl`eme d’instabilit´e de la m´ethode pr´ec´edente, Lax a
propos´e la modification suivante : le terme u
n
j
provenant de la d´eriv´ee temporelle
est remplac´e par la moyenne sur les deux points adjacents :
u
n
j

1
2
(u
n
j+1
+u
n
j−1
) (6.44)
ce qui donne la relation it´erative suivante
u
n+1
j
=
1
2
(u
n
j+1
+u
n
j−1
) + ∆t
u
n
j+1
−u
n
j−1
2∆x
(6.45)
En ins´erant la solution (6.41) dans l’´equation (6.45), on obtient une expression
pour ξ(k)
ξ(k) = cos(k∆x) −i
c∆t
∆x
sin(k∆x) (6.46)
62
6.4 Conclusion
La condition de stabilit´e [ξ(k)[ < 1 ´equivaut ` a choisir
c∆t
∆x
≤ 1 (6.47)
Cette condition, dite de Courant est appel´ee aussi condition de stabilit´e de
Courant-Friedrichs-Lewy. Il est facile de comprendre que la discr´etisation spatio-
temporelle doit se faire ` a une vitesse qui est donn´ee par
∆x
∆t
inf´erieur ` a la vitesse
de propagation du ph´enom`ene c. Pour comprendre graphiquement la raison
pour laquelle le rapport du pas en temps sur celui de la position ne doit pas
exc´eder la vitesse de propagation, consid´erons les figures suivantes : les zones
hachur´ees correspondent ` a la solution donn´ee par la solution exacte de l’´equation
de propagation : si la valeur du point ` a l’´etape n + 1 d´epend des valeurs des
points situ´ees dans la zone hachur´ee, l’algorithme est instable. Inversement dans
la figure de droite, le sommet de cette zone d´epend de points situ´es ` a l’ext´erieur
de la zone hachur´ee et l’algorithme est stable.
6.4 Conclusion
Les difficult´es des m´ethodes num´eriques pour la r´esolution des ´equations
d´eriv´ees partielles ont des origines diverses : elles proviennent soit des subtilit´es
li´ees au choix de l´algorithme comme dans le cas des ´equations avec conditions
initiales, soit des probl`emes de stockage en m´emoire dans le cas des ´equations
avec conditions aux fronti`eres. Des difficult´es suppl´ementaires apparaissent pour
des ´equations aux d´eriv´ees partielles non-lin´eaires (cas de l’hydrodynamique) o` u
il est n´ecessaire d’introduire des nouveaux crit`eres pour l’analyse de la stabilit´e
des algorithmes.
De tels d´eveloppements d´epassent largement le cadre de ce cours introductif,
mais cela illustre la grande complexit´e de ce sujet. En effet, Le domaine de
la r´esolution des ´equations aux d´eriv´ees partielles reste un domaine tr`es actif
de recherche en analyse num´erique, soulignant ` a la fois l’int´erˆet de nouvelles
m´ethodes et la n´ecessite d’obtenir des m´ethodes de plus en plus performantes.
63
Equations aux d´eriv´ees partielles
64
Chapitre 7
Alg`ebre lin´eaire
Contenu
7.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . 65
7.2
´
Elimination de Gauss-Jordan . . . . . . . . . . . . . 67
7.2.1 Rappels sur les matrices . . . . . . . . . . . . . . . . . 67
7.2.2 M´ethode sans pivot . . . . . . . . . . . . . . . . . . . 67
7.2.3 M´ethode avec pivot . . . . . . . . . . . . . . . . . . . 68
7.3
´
Elimination gaussienne avec substitution . . . . . . 68
7.4 D´ecomposition LU . . . . . . . . . . . . . . . . . . . . 69
7.4.1 Principe . . . . . . . . . . . . . . . . . . . . . . . . . . 69
7.4.2 R´esolution d’un syst`eme lin´eaire . . . . . . . . . . . . 70
7.5 Matrices creuses . . . . . . . . . . . . . . . . . . . . . 71
7.5.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . 71
7.5.2 Matrices tridiagonales . . . . . . . . . . . . . . . . . . 72
7.5.3 Formule de Sherman-Morison . . . . . . . . . . . . . . 72
7.6 D´ecomposition de Choleski . . . . . . . . . . . . . . . 72
7.7 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . 73
7.1 Introduction
Les deux chapitres qui suivent concernent le traitement num´erique des ma-
trices Ce premier chapitre est consacr´e aux m´ethodes employ´ees pour r´esoudre
les quatre tˆ aches les plus fr´equemment rencontr´ees pour les syst`emes lin´eaires.
Par d´efinition, on peut ´ecrire celles-ci comme
A.x = b (7.1)
o` u A est une matrice M N
A =

¸
¸
¸
¸
¸
¸
¸
a
11
a
12
. . . a
1N
a
21
a
22
. . . a
2N
.
.
.
.
.
. . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
a
M1
a
M2
. . . a
MN
¸

(7.2)
65
Alg`ebre lin´eaire
x est un vecteur colonne de M ´el´ements et b un vecteur colonne de N ´el´ements.
b =

¸
¸
¸
¸
¸
¸
¸
b
1
b
2
.
.
.
.
.
.
b
N
¸

x =

¸
¸
¸
¸
¸
¸
¸
x
1
x
2
.
.
.
.
.
.
x
M
¸

(7.3)
Si N = M, il y autant d’´equations que d’inconnues et si aucune des ´equations
n’est une combinaison lin´eaire des N−1 autres, la solution existe et est unique.
1
Hormis pour des valeurs de N tr`es petites (typiquement N ≤ 4), o` u les
formules sont simples ` a exprimer, il est g´en´eralement n´ecessaire de proc´eder
` a un calcul num´erique pour obtenir la solution d’un syst`eme d’´equations li-
n´eaires. Comme nous allons le voir ci-dessous, si la matrice A n’est pas une
matrice creuse (matrice dont la majorit´e des ´el´ements est nulle), il est n´eces-
saire d’appliquer une m´ethode g´en´erale qui revient en quelque sorte ` a inverser
la matrice A (ou ` a la factoriser), ce qui n´ecessite un grand nombre d’op´erations
qui augmente comme le cube de la dimension lin´eaire de la matrice, N
3
.
Mˆeme si la proc´edure num´erique est cens´ee conduire ` a une solution dans le
cas d’une matrice non singuli`ere (det(A) = 0), l’accumulation d’erreurs d’ar-
rondi, souvent li´ee ` a des soustractions de nombres voisins fournit un vecteur x
erron´e. Dans le cas d’une matrice dont le d´eterminant est tr`es voisin de z´ero
(matrice presque singuli`ere), les solutions obtenues peuvent ˆetre aussi fausses.
L’´enorme biblioth`eque de sous-programmes pour les probl`emes d’alg`ebre li-
n´eaire montre l’importance de ces probl`emes dans le calcul num´erique et la
n´ecessit´e de choisir une m´ethode sp´ecifique d`es que la matrice a des propri´et´es
particuli`eres.
Parmi les tˆ aches typiques d’alg`ebre lin´eaire hormis la r´esolution d’un sys-
t`eme lin´eaire, on peut citer
– la d´etermination des solutions d’un ensemble de syst`emes, par exemple
A.x
j
= b
j
o` u x
j
et b
j
sont des vecteurs ` a N composantes et j un indice
parcourant un ensemble fini d’entiers,
– le calcul de l’inverse de A : A
−1
,
– le calcul du d´eterminant de A.
De mani`ere encore plus aigu¨e que dans les chapitres pr´ec´edents, une m´ethode
de force brute est bien moins efficace pour r´esoudre un probl`eme d’alg`ebre li-
n´eaire qu’une m´ethode sp´ecifique. Nous allons donc voir tout d’abord le principe
d’une m´ethode g´en´erale pour une matrice quelconque, puis consid´erer quelques
unes des techniques sp´ecifiques qui d´ependent de la structure des matrices.
1
Si N > M , les ´equations sont ind´ependantes entre elles et il n’y a pas de solution. Si
N < M, il y a une ind´etermination et il existe une infinit´e de solutions.
66
7.2
´
Elimination de Gauss-Jordan
7.2
´
Elimination de Gauss-Jordan
7.2.1 Rappels sur les matrices
Il est utile de remarquer que le calcul des quatre tˆ aches pr´ec´edentes peut
ˆetre a priori ex´ecut´e de mani`ere similaire : en effet, si on consid`ere par exemple
un syst`eme 4 4, on a

¸
¸
¸
a
11
a
12
a
13
a
14
a
21
a
22
a
23
a
24
a
31
a
132
a
133
a
34
a
41
a
42
a
43
a
44
¸

.

¸
¸
¸

¸
¸
¸
x
1
x
2
x
3
x
4
¸

.

¸
¸
¸
t
1
t
2
t
3
t
4
¸

.

¸
¸
¸
y
11
y
12
y
13
y
14
y
21
y
22
y
23
y
24
y
31
y
132
y
133
y
34
y
41
y
42
y
43
y
44
¸

¸

=
=

¸
¸
¸

¸
¸
¸
b
1
b
2
b
3
b
4
¸

.

¸
¸
¸
c
1
c
2
c
3
c
4
¸

.

¸
¸
¸
1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1
¸

¸

(7.4)
o` u l’op´erateur . d´esigne l’op´erateur r´eunion de colonnes. Ainsi on voit que
l’inversion d’une matrice est identique ` a la r´esolution d’un ensemble de N sys-
t`emes lin´eaires pour lequel le vecteur situ´e dans le membre de droite a tous les
´el´ements nuls sauf un seul qui est diff´erent pour chaque colonne.
Les trois r`egles ´el´ementaires que l’on peut r´ealiser sur les matrices sont les
suivantes.

´
Echanger les lignes de A et de b (ou c ou de la matrice identit´e) et en
gardant x (ou t ou Y ) ne change pas la solution du syst`eme lin´eaire. Il
s’agit d’une r´e´ecriture des ´equations dans un ordre diff´erent.
– De mani`ere similaire, la solution du syst`eme lin´eaire est inchang´ee si toute
ligne de A est remplac´ee par une combinaison lin´eaire d’elle-mˆeme et des
autres lignes, en effectuant une op´eration analogue pour b (ou c ou la
matrice identit´e).
– L’´echange de deux colonnes de A avec ´echange simultan´e des lignes cor-
respondantes de x (ou t ou Y ) conduit ` a la mˆeme solution. Toutefois, si
on souhaite obtenir la matrice Y dans l’ordre initialement choisi, il est
n´ecessaire de proc´eder ` a l’op´eration inverse une fois la solution obtenue.
7.2.2 M´ethode sans pivot
Pour la simplicit´e de l’expos´e, on consid`ere tout d’abord une matrice dont
les ´el´ements diagonaux sont strictement diff´erents de z´ero.
On multiplie la premi`ere ligne de A par 1/a
11
(et la ligne correspondante
de b ou de la matrice identit´e). On soustrait a
21
fois la 1`ere ligne ` a la deuxi`eme
ligne, a
31
fois la 1`ere ligne ` a la troisi`eme ligne et ainsi de suite jusqu’` a la derni`ere
ligne. La matrice A a maintenant la structure suivante

¸
¸
¸
1 a

12
a

13
a

14
0 a

22
a

23
a

24
0 a

32
a

33
a

34
0 a

42
a

43
a

44
¸

(7.5)
67
Alg`ebre lin´eaire
o` u les coefficients a

ij
s’expriment en fonction des coefficients o` u les coefficients
a
ij
.
On multiplie alors la deuxi`eme ligne par 1/a

22
, puis on soustrait a

12
fois
la deuxi`eme ligne ` a la premi`ere ligne, a

32
fois la deuxi`eme ligne ` a la troisi`eme
ligne et ainsi de suite jusqu’` a la derni`ere ligne. La matrice A a maintenant la
structure suivante

¸
¸
¸
1 0 a

13
a

14
0 1 a

23
a

24
0 0 a

33
a

34
0 0 a

43
a

44
¸

(7.6)
On it`ere le proc´ed´e jusqu’` a la derni`ere ligne et on obtient alors la matrice
identit´e. On peut obtenir alors facilement la solution du syst`eme d’´equations.
7.2.3 M´ethode avec pivot
La m´ethode pr´ec´edente souffre du d´efaut de ne s’appliquer qu’aux matrices
dont tous les ´el´ements de la diagonale sont non nuls. Or, une matrice n’est
pas n´ecessairement singuli`ere si un seul ´el´ement de la diagonale est nul. Pour
permettre une plus grande g´en´eralit´e de la m´ethode, on ajoute aux op´erations
pr´ec´edentes la troisi`eme r`egle ´enonc´ee ci-dessus. On peut en effet, en utilisant
l’inversion des colonnes, placer sur la diagonale un ´el´ement non nul de la ligne
(si tous les ´el´ements d’une ligne sont nuls, cela signifie que le d´eterminant de la
matrice est nul et que la matrice est singuli`ere, ce qui a ´et´e exclu par hypoth`ese).
De plus, on peut montrer que la recherche du plus grand ´el´ement de la ligne
pour faire la permutation des colonnes rend la proc´edure bien plus stable, en
particulier en augmentant de mani`ere importante la pr´ecision num´erique des
solutions.
Ce type d’algorithme est disponible dans de nombreuses biblioth`eques et il
est parfaitement inutile de chercher ` a r´e´ecrire un code qui n´ecessite un temps
important ` a la fois pour sa r´ealisation et pour sa validation.
7.3
´
Elimination gaussienne avec substitution
Pour la r´esolution stricte d’un syst`eme lin´eaire, il n’est pas n´ecessaire d’ob-
tenir une matrice diagonale comme celle obtenue par la m´ethode pr´ec´edente.
Ainsi en effectuant ` a chaque ligne la soustraction des lignes situ´ees au dessous
de la ligne dont le coefficient de la diagonale vient d’ˆetre r´eduit ` a l’unit´e, on
obtient une matrice triangulaire sup´erieure dont la structure est la suivante

¸
¸
¸
a

11
a

12
a

13
a

14
0 a

22
a

23
a

24
0 0 a

133
a

34
0 0 0 a

44
¸

.

¸
¸
¸
x
1
x
2
x
3
x
4
¸

=

¸
¸
¸
b

1
b

2
b

3
b

4
¸

(7.7)
68
7.4 D´ecomposition LU
Il est possible de faire la r´esolution de ce syst`eme lin´eaire par une proc´edure de
substitution successive
x
4
=
b

4
a

44
(7.8)
x
3
=
1
a

33
(b

3
−x
4
a

34
) (7.9)
et de mani`ere g´en´erale
x
i
=
1
a

ii
(b
i

N
¸
j=i+1
a

ij
x
j
) (7.10)
Cette m´ethode est avantageuse dans le cas des syst`emes lin´eaires car le nombre
d’op´erations ` a effectuer est d’ordre N
2
, contrairement ` a la m´ethode pr´ec´edente
qui n´ecessite de calculer compl`etement l’inverse de la matrice et n´ecessite un
temps de calcul en N
3
.
S’il faut r´esoudre un ensemble de syst`emes lin´eaires comprenant N termes,
cela est alors ´equivalent ` a r´esoudre l’inversion d’une matrice et l’on retrouve un
temps de calcul de l’ordre de N
3
.
7.4 D´ecomposition LU
Les m´ethodes pr´ec´edentes n´ecessitent de connaˆıtre ` a l’avance le membre
de gauche de l’´equation (7.1). Les m´ethodes qui suivent consiste ` a r´e´ecrire la
matrice A afin que la r´esolution du syst`eme d’´equations soit ex´ecut´ee plus faci-
lement.
7.4.1 Principe
Nous allons montrer que toute matrice N N peut se d´ecomposer de la
mani`ere suivante.
A = L.U (7.11)
o` u L est une matrice triangulaire inf´erieure et U une matrice triangulaire sup´e-
rieure, soit
L =

¸
¸
¸
¸
¸
¸
¸
α
11
0 0 . . . 0
α
21
α
22
0 . . . . . . . . . . . . 0
.
.
.
.
.
.
.
.
. . . .
.
.
.
.
.
.
.
.
.
.
.
. α
(N−1)(N−1)
0
α
N1
α
N2
. . . . . . α
NN
¸

(7.12)
et
U =

¸
¸
¸
¸
¸
¸
¸
β
11
β
12
β
13
. . . β
1N
0 β
22
β
23
. . . . . . . . . . . . β
2N
.
.
.
.
.
.
.
.
. . . .
.
.
.
.
.
.
.
.
.
.
.
. β
(N−1)(N−1)
β
(N−1)N
0 0 . . . 0 β
NN
¸

(7.13)
69
Alg`ebre lin´eaire
En effectuant la multiplication matricielle de L par U, on obtient les relations
suivantes
a
ij
=
i
¸
l=1
α
il
β
lj
i ≤ j (7.14)
a
ij
=
j
¸
l=1
α
il
β
lj
i > j (7.15)
Ce syst`eme d’´equations lin´eaires donne N
2
´equations et le nombre d’inconnues
est 2

N(N+1)
2

. Ce syst`eme est donc surd´etermin´e. On peut donc choisir N
´equations suppl´ementaires afin d’obtenir une et une seule solution. On fixe donc
la valeur de la diagonale de la matrice L
α
ii
= 1 (7.16)
pour i ∈ [1, N].
L’algorithme de Crout permet de calculer simplement les N
2
coefficients
restants, en utilisant les relations suivantes
β
ij
= a
ij

i−1
¸
k=1
α
ik
β
kj
i ≤ j (7.17)
α
ij
=
1
β
jj
(a
ij

j−1
¸
k=1
α
ik
β
kj
) i ≥ j + 1 (7.18)
Il faut noter que les sous-programmes cr´eant cette d´ecomposition s’appuie sur
la recherche du meilleur pivot afin que la m´ethode soit stable.
2
7.4.2 R´esolution d’un syst`eme lin´eaire
La r´esolution d’un syst`eme lin´eaire devient tr`es simple en introduisant le
vecteur y.
A.x = L.U.x (7.20)
= L.(Ux) = b (7.21)
Soit
L.y = b (7.22)
2
Sachant que le nombre d’inconnues est devenu ´egale ` a N
2
, on peut ´ecrire les deux matrices
sous la forme d’une seule matrice de la forme
0
B
B
B
B
B
B
@
β11 β12 β13 . . . β1N
α21 β22 β23 . . . . . . . . . . . . β2N
.
.
.
.
.
.
.
.
. . . .
.
.
.
.
.
.
.
.
.
.
.
. β
(N−1)(N−1)
0
αN1 αN2 . . . . . . βNN
1
C
C
C
C
C
C
A
(7.19)
en se rappelant que les ´el´ements diagonaux de la matrice α ont ´et´e choisis ´egaux ` a un.
70
7.5 Matrices creuses
U.x = y (7.23)
Chaque syst`eme peut ˆetre r´esolu par une proc´edure de substitution.
y
1
=
b
1
α
11
(7.24)
y
i
=
1
α
ii
(b
i

i−1
¸
j=1
α
ij
y
j
) (7.25)
(substitution ` a partir du premier ´el´ement car la matrice est triangulaire inf´e-
rieure). On obtient la solution pour le vecteur x en utilisant
x
N
=
y
N
β
NN
(7.26)
x
i
=
1
β
ii
(y
i

N
¸
j=i+1
β
ij
x
j
) (7.27)
car la matrice est triangulaire sup´erieure.
Une fois effectu´ee la d´ecomposition LU, le calcul du d´eterminant d’une ma-
trice devient tr`es simple. On sait que le d´eterminant d’un produit de matrices
est ´egale au produit des d´eterminants. De plus pour une matrice triangulaire,
le d´eterminant de la matrice est ´egal au produit des ´el´ements de sa diagonale.
Comme les ´el´ements de la diagonale de L ont ´et´e choisis ´egaux ` a 1, le d´etermi-
nant de cette matrice est donc ´egal ` a 1, et le d´eterminant de A est donc ´egal
` a
det(A) =
N
¸
j=1
β
jj
(7.28)
7.5 Matrices creuses
7.5.1 Introduction
On appelle matrice creuse une matrice dont la plupart des ´el´ements sont
´egaux ` a z´ero. Si de plus, la structure des ´el´ements non nuls est simple, il n’est
pas n´ecessaire de r´eserver une quantit´e de m´emoire ´egale ` a celle de la matrice
compl`ete. Des algorithmes sp´ecifiques permettent de r´eduire le temps de calcul
de mani`ere consid´erable. Parmi les cas simples de matrices creuses, citons les
matrices
– tridiagonales : les ´el´ements de matrice non nuls sont sur la diagonale et
de part et d’autre de celle-ci sur les deux lignes adjacentes. On a a
ij
= 0
pour [i −j[ > 1,
– diagonales par bande de largeur M : les ´el´ements de matrice tels que
[i −j[ > M sont nuls a
ij
= 0,
– simplement ou doublement bord´ees : par rapport ` a la d´efinition pr´ec´e-
dente, des ´el´ements non nuls suppl´ementaires existent le long des lignes
ou colonnes du bord de la matrice.
71
Alg`ebre lin´eaire
7.5.2 Matrices tridiagonales
Soit le syst`eme suivant

¸
¸
¸
¸
¸
¸
¸
b
1
c
1
0 . . . 0
a
2
b
2
c
2
. . . 0
0
.
.
.
.
.
.
.
.
.
.
.
.
0 . . .
.
.
. b
N−1
c
N−1
0 0 . . . . . . b
NN
¸

=

¸
¸
¸
¸
¸
¸
¸
x
1
x
2
.
.
.
.
.
.
x
N
¸

¸
¸
¸
¸
¸
¸
¸
y
1
y
2
.
.
.
.
.
.
y
N
¸

(7.29)
Noter qu’avec cette notation a
1
et c
N
ne sont pas d´efinis. Il y a un vaste de choix
de biblioth`eques disponibles pour calculer les solutions qui prennent un temps
de calcul proportionnel ` a N. De mani`ere g´en´erale, on peut obtenir aussi avoir
un algorithme proportionnel ` a N pour une matrice ` a bandes. Le pr´efacteur de
l’algorithme est proportionnel ` a M.
7.5.3 Formule de Sherman-Morison
Supposons que l’on ait une matrice A dont on a facilement calcul´e l’inverse
(cas d’une matrice tridiagonal). Si on fait un petit changement dans A en modi-
fiant par exemple un ou quelques ´el´ements de l’ensemble de la matrice, peut-on
calculer encore facilement l’inverse de cette nouvelle matrice ?
B = A+u ⊗v (7.30)
ou le symbole ⊗ d´esigne le produit ext´erieur. u⊗v repr´esente une matrice dont
l’´el´ement ij est le produit de la i`eme composante de u par la j`eme composante
de v.
La formule de Sherman-Morison donne l’inverse de B
B
−1
= (1 +A
−1
.u ⊗v)
−1
.A
−1
(7.31)
= (1 −A
−1
.u ⊗v +A
−1
.u ⊗v.A
−1
.u ⊗v −. . .).A
−1
(7.32)
= A
−1
−A
−1
.u ⊗vA
−1
(1 −λ +λ
2
+. . .) (7.33)
= A
−1

(A
−1
.u) ⊗(v.A
−1
)
1 +λ
(7.34)
o` u λ = v.A
−1
u. On a utilis´e l’associativit´e du produit ext´erieur et produit
interne.
Posons z = A
−1
u et w = (A
−1
)
T
v, on a λ = v.z et
B
−1
= A
−1

z ⊗w
1 +λ
(7.35)
7.6 D´ecomposition de Choleski
Une matrice est d´efinie positive sym´etrique (a
ij
= a
ji
) quand ∀x, on a
x.A.x > 0 (7.36)
72
7.7 Conclusion
quel que soit x. Il existe alors une matrice L triangulaire inf´erieure telle que
A = L.L
T
(7.37)
Les ´el´ements de matrice sont d´etermin´es par les relations
L
ii
= (a
ii

i−1
¸
k=1
L
2
ik
)
1/2
(7.38)
L
ji
=
1
L
ii
(a
ij

i−1
¸
k=1
L
ik
L
jk
) (7.39)
avec j ∈ [i + 1, N]. Une fois cette construction r´ealis´ee, on peut r´esoudre un
syst`eme lin´eaire simplement en utilisant la proc´edure de substitution pr´ec´edem-
ment d´etaill´ee dans la section 7.4.2.
7.7 Conclusion
Avant de r´esoudre des syst`emes lin´eaires de grande dimension, il est imp´era-
tif de commencer par une analyse des propri´et´es de la matrice afin de d´eterminer
la m´ethode la plus adapt´ee afin d’obtenir une solution avec une pr´ecision cor-
recte et pour un temps de calcul qui sera minimal. Les diff´erentes m´ethodes
pr´esent´ees dans ce chapitre ne sont qu’une introduction ` a ce tr`es vaste sujet.
73
Alg`ebre lin´eaire
74
Chapitre 8
Analyse spectrale
Contenu
8.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . 75
8.2 Propri´et´es des matrices . . . . . . . . . . . . . . . . . 76
8.3 M´ethodes directes . . . . . . . . . . . . . . . . . . . . 78
8.3.1 M´ethode de Jacobi . . . . . . . . . . . . . . . . . . . . 78
8.3.2 R´eduction de Householder . . . . . . . . . . . . . . . . 80
8.3.3 Algorithme QL . . . . . . . . . . . . . . . . . . . . . . 82
8.3.4 Factorisation de Schur . . . . . . . . . . . . . . . . . . 83
8.4 M´ethode it´eratives . . . . . . . . . . . . . . . . . . . . 84
8.4.1 M´ethodes des puissances . . . . . . . . . . . . . . . . . 84
8.4.2 M´ethode de Lancz` os . . . . . . . . . . . . . . . . . . . 85
8.1 Introduction
Ce chapitre est consacr´e aux op´erations que l’on peut r´ealiser sur des ma-
trices. Plus sp´ecifiquement, nous allons nous int´eresser ` a la d´etermination des
valeurs propres et/ou vecteurs propres correspondants. Tout d’abord, quelques
rappels utiles pour la suite de ce chapitre : soit une matrice carr´ee A de dimen-
sion N, on appelle un vecteur propre x associ´e ` a la valeur propre λ, un vecteur
qui satisfait la relation
A.x = λx (8.1)
Si x est un vecteur propre, pour tout r´eel α = 0, αx est aussi un vecteur propre
avec la mˆeme valeur propre λ.
Les valeurs propres d’une matrice peuvent ˆetre d´etermin´ees comme les ra-
cines du polynˆ ome caract´eristique de degr´e N
det(A−λ.1) = 0 (8.2)
o` u 1 d´esigne la matrice identit´e.
Compte tenu du fait que dans C, tout polynˆ ome de degr´e N a N racines, la
matrice A poss`ede N valeurs propres complexes.
75
Analyse spectrale
Quand une racine du polynˆ ome caract´eristique est multiple, on dit que la
valeur propre est d´eg´en´er´ee, et la dimension de l’espace associ´e ` a cette valeur
propre est sup´erieure ou ´egale ` a deux.
La d´etermination des valeurs propres d’une matrice ` a partir de l’´equation
caract´eristique n’est pas efficace sur le plan num´erique. Des m´ethodes plus adap-
t´ees sont expos´ees dans la suite de ce chapitre.
Si une matrice poss`ede une valeur propre nulle, la matrice est dite singuli`ere.
– Une matrice est sym´etrique si elle est ´egale ` a sa transpos´ee
A = A
T
(8.3)
a
ij
= a
ji
∀i, j (8.4)
– Une matrice est hermitienne ou auto-adjointe si elle est ´egale au complexe
conjugu´e de sa transpos´ee.
A = A

(8.5)
– Une matrice est orthogonale si son inverse est ´egale ` a sa transpos´ee
A.A
T
= A
T
.A = 1 (8.6)
– Une matrice est unitaire si sa matrice adjointe est ´egale ` a son inverse
A.A

= A

.A = 1 (8.7)
Pour les matrices ` a coefficients r´eels, il y a identit´e de d´efinition entre matrice
sym´etrique et Hermitienne, entre matrice orthogonale et unitaire.
Une matrice est dite normale si elle commute avec son adjointe.
8.2 Propri´et´es des matrices
Les valeurs propres d’une matrice Hermitienne sont toutes r´eelles. Parmi les
matrices Hermitiennes tr`es utilis´ees en Physique, il vient ` a l’esprit la repr´esen-
tation matricielle de l’op´erateur de Schr¨odinger en m´ecanique quantique
1
Un corollaire de la propri´et´e pr´ec´edente est que les valeurs propres d’une
matrice r´eelle sym´etrique sont elles aussi toutes r´eelles.
Les vecteurs propres d’une matrice normale ne poss´edant que des valeurs
propres non d´eg´en´er´ees forment une base d’un espace vectoriel de dimension
N. Pour une matrice normale avec des valeurs propres d´eg´en´er´ees, les vecteurs
propres correspondant ` a une valeur propre d´eg´en´er´ee peuvent ˆetre remplac´es
par une combinaison lin´eaire de ceux-ci.
Pour une matrice quelconque, l’ensemble des vecteurs propres ne constituent
pas n´ecessairement une base d’un espace de dimension N.
Pour une matrice non normale, les vecteurs propres ne sont pas orthogonaux.
On appelle vecteur ` a droite les vecteurs tels que
A.x
R
i
= λ
i
x
R
i
(8.8)
1
La repr´esentation de cet op´erateur correspond en g´en´eral ` a une matrice de dimension
infinie, mais nous ne consid´erons ici que les syst`emes ou la repr´esentation matricielle est
possible dans un espace de dimension finie.
76
8.2 Propri´et´es des matrices
o` u λ
i
est la i`eme valeur propre. De mani`ere similaire, on appelle vecteurs propres
` a gauche, les vecteurs tels que
x
L
i
.A = λ
i
x
L
i
(8.9)
Le transpos´e du vecteur ` a gauche de A est le vecteur propre ` a droite de la
transpos´ee de la mˆeme matrice. Si la matrice est sym´etrique, les vecteurs propres
` a gauche sont les transpos´es des vecteurs propres ` a droite
2
.
Si la matrice est Hermitienne, les vecteurs propres ` a gauche sont les trans-
pos´es des vecteurs propres conjugu´es ` a droite.
Dans le cas d’une matrice non normale, on d´efinit la matrice X
R
comme la
matrice constitu´ee de colonnes form´ees par les vecteurs ` a droite. On introduit la
matrice X
L
form´ee par les lignes des vecteurs ` a gauche. On obtient par d´efinition
que
A.X
R
= X
R
.diag(λ
1
, . . . , λ
n
) (8.10)
de mˆeme on a
X
L
.A = diag(λ
1
, . . . , λ
n
).X
L
(8.11)
En multipliant l’´equation (8.10) par X
L
et l’´equation (8.11) par X
R
, on obtient
X
L
.X
R
.diag(λ
1
, . . . , λ
n
) = diag(λ
1
, . . . , λ
n
)X
L
.X
R
(8.12)
ce qui montre que la matrice diagonale form´ee par les valeurs propres de A
commute avec le produit X
L
.X
R
. Sachant que les seules matrices qui commutent
avec une matrice diagonale constitu´ee d’´el´ements diff´erents sont elles-mˆemes
diagonales, on en d´eduit que chaque vecteur ` a gauche est orthogonal ` a chaque
vecteur ` a droite et r´eciproquement. En normalisant les vecteurs ` a droite et ` a
gauche, on peut obtenir que la matrice X
L
.X
R
soit ´egale ` a l’identit´e.
Dans le cas o` u l’ensemble des vecteurs propres ne constitue une base com-
pl`ete, il est toujours possible de compl´eter cet ensemble afin d’avoir une matrice
telle que X
L
.X
R
= 1.
Si la matrice A est inversible, on obtient en multipliant l’´equation (8.10) par
X
−1
R
que
X
−1
R
.A.X
R
= diag(λ
1
, . . . , λ
n
) (8.13)
Nous avons alors construit une matrice de transformation similaire de A
Rappelons la propri´et´e suivante : soit B une matrice telle que
B = P
−1
.A.P (8.14)
o` u P est une matrice inversible. On a
det(B −λ1) = det(P
−1
.A.P −λ.1) (8.15)
= det(P
−1
.(A−λ.1)P) (8.16)
= det(A−λ.1) (8.17)
2
Puisque le d´eterminant d’une matrice et de sa transpos´ee sont les mˆemes, les valeurs
propres de ces deux matrices sont identiques.
77
Analyse spectrale
Ainsi, on a montr´e que l’on peut construire une matrice de transformation
similaire o` u la matrice A devient diagonale dans cette nouvelle base.
Pour une matrice r´eelle sym´etrique, la matrice de passage est une matrice
orthogonale.
La strat´egie g´en´erale pour d´eterminer les valeurs propres d’une matrice
consiste ` a construire une suite de transformations de similarit´e jusqu’` a l’ob-
tention d’une matrice diagonale, ou plus simplement jusqu’` a l’obtention d’une
matrice tridiagonale ` a partir de laquelle il est possible de d´eterminer assez fa-
cilement les valeurs propres.
Pour r´ealiser ces transformations, deux grandes classes de m´ethodes sont
disponibles : les m´ethodes directes et les m´ethodes it´eratives.
Les premi`eres consistent ` a effectuer une suite de transformations similaires
et ne s’appliquent qu’aux matrices de taille relativement modeste, car le temps
de calcul croˆıt comme le cube de la dimension lin´eaire de la matrice.
Pour les matrices de grande taille et g´en´eralement creuses, les m´ethodes
it´eratives sont plus adapt´ees. Dans la mesure o` u la plupart du temps, le spectre
complet d’une tr`es grande matrice n’est pas recherch´ee, mais seulement une
partie, les m´ethodes it´eratives peuvent r´ealiser plus efficacement cette tˆ ache.
Nous allons voir dans la suite de ce chapitre quelques algorithmes de base, tout
en ayant ` a l’esprit qu’il existe une tr`es vaste litt´erature sur ce sujet, et pour un
probl`eme particulier, il est n´ecessaire de commencer par analyser pr´ecis´ement le
type de matrice dont on souhaite obtenir le spectre, afin de choisir la m´ethode
la plus adapt´ee pour r´esoudre ce probl`eme.
8.3 M´ethodes directes
8.3.1 M´ethode de Jacobi
La m´ethode de Jacobi revient ` a effectuer une suite de transformations si-
milaires orthogonales. Chaque transformation est une simple rotation planaire
qui permet d’annuler un ´el´ement de la matrice A initial.
La rotation ´el´ementaire P
pq
est donn´e par la matrice
P
pq
=

¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
1 0 0 . . . . . . . . . . . . 0
0 1 0 . . . . . . . . . . . . 0
0 . . . 1 . . . . . . . . . . . . 0
0 . . . c . . . . . . s . . . 0
0 . . . . . . . . . . . . . . . . . . 0
0 . . . . . . . . . 1 . . . . . . 0
0 . . . . . . . . . . . . . . . . . . 0
0 . . . −s . . . . . . c . . . 0
0 . . . . . . . . . . . . . . . 1 0
0 . . . . . . . . . . . . . . . . . . 1
¸

(8.18)
avec la condition que
c
2
+s
2
= 1. (8.19)
Soit la matrice A

telle que
A

= P
T
pq
.A.P
pq
(8.20)
78
8.3 M´ethodes directes
En notant les coefficients de la matrice a
ij
, on obtient apr`es calculs que
a

rp
= ca
rp
−sa
rq
(8.21)
a

rq
= ca
rq
+sa
rp
(8.22)
a

pp
= c
2
a
pp
+s
2
a
qq
−2csa
pq
(8.23)
a

qq
= s
2
a
pp
+c
2
a
qq
+ 2csa
pq
(8.24)
a

pq
= (c
2
−s
2
)a
pq
+cs(a
pp
−a
qq
) (8.25)
avec r = p et r = q.
Si on annule le terme a

pq
, en introduisant l’angle de rotation φ, (c = cos(φ),
s = sin(φ)) on a le rapport θ
θ =
c
2
−s
2
2sc
(8.26)
= cot(2φ) (8.27)
=
a
qq
−a
pp
a
pq
(8.28)
Si on appelle t = s/c, on obtient en utilisant l’´equation (8.26)
t
2
+ 2tθ −1 = 0 (8.29)
La plus petite des racines correspond ` a un angle de rotation inf´erieur ` a π/4 et
donne la m´ethode la plus stable num´eriquement. Cette racine
3
peut s’exprimer
sous la forme
t =
sgn(θ)
[θ[ +

θ
2
+ 1
(8.30)
En utilisant que c
2
+s
2
= 1

on obtient pour c que
c =
1

1 +t
2
(8.31)
et on a imm´ediatement s = tc. En imposant que le terme a

pq
s’annule, on a
finalement les relations suivantes
a

pp
= a
pp
−ta
pq
(8.32)
a

qq
= a
qq
+ta
pq
(8.33)
a

rp
= a
rp
−s(a
rq
+τa
rq
) (8.34)
a

rq
= a
rq
+s(a
rp
+τa
rq
) (8.35)
avec τ d´efini par
τ =
s
1 +c
(8.36)
En calculant la somme S
S =
¸
r=s
[a
rs
[
2
(8.37)
3
Pour ´eviter les d´epassements de capacit´e de l’ordinateur, on choisit t = 1/2θ
79
Analyse spectrale
on peut obtenir une estimation de la convergence de la m´ethode. Pour une
transformation similaire ´el´ementaire, on a
S

= S −2[a
pq
[
2
(8.38)
Ainsi la suite des transformations conduit ` a faire d´ecroˆıtre la contribution des
´el´ements non diagonaux. Comme la transformation est orthogonale, la somme
des carr´es des ´el´ements de la matrice est conserv´ee, ce qui revient ` a ce que
la somme des carr´es de la diagonale augmente de ce qui a ´et´e perdu par les
´el´ements non diagonaux. Ainsi formellement, on peut choisir les ´el´ements de la
matrice A dans n’importe quel ordre et on obtient une m´ethode qui converge
vers une matrice diagonale. Au terme de cette proc´edure, on a
D = V
T
.A.V (8.39)
o` u D est une matrice diagonale contenant les diff´erentes valeurs propres et V
est une matrice contenant les vecteurs propres correspondants.
8.3.2 R´eduction de Householder
La m´ethode pr´ec´edente est tr`es coˆ uteuse en temps de calcul. Pour r´eduire
celui-ci, la proc´edure de Householder se propose de transformer une matrice
sym´etrique en une matrice tridiagonale par une s´erie de transformations ortho-
gonales suivantes.
Une matrice de Householder est d´efinie par la relation suivante
P = 1 −2w.w
T
(8.40)
o` u w est un vecteur r´eel normalis´e, w
T
.w = [w[
2
= 1.
V´erifions que la matrice P est une matrice orthogonale
P
2
= (1 −2w.w
T
).(1 −2w.w
T
) (8.41)
= 1 −4w.w
T
+ 4w.(w
T
.w).w
T
(8.42)
= 1 (8.43)
Cela implique que P = P
−1
. En utilisant la d´efinition de P, on v´erifie facilement
que P
T
= P, et on a donc bien construit une transformation orthogonale.
Nous allons maintenant appliquer ` a P le vecteur x constitu´e de la premi`ere
colonne de A. Pour cela, on exprime la matrice P sous la forme suivante
P = 1 −
u.u
T
H
(8.44)
avec H = [u[
2
/2. Si on choisit le vecteur u tel que
u = x ∓[x[e
1
(8.45)
o` u e
1
est le vecteur colonne unitaire tel que seule la premi`ere composante est
non nulle et ´egale ` a 1. On obtient facilement la valeur de H
H = 2([x
2
[ ±[x[x
1
) (8.46)
80
8.3 M´ethodes directes
En appliquant P ` a x
P.x =x −
u
H
.(x ∓[x[e
1
)
T
.x (8.47)
=x −
2u.([x[
2
∓[x[x
1
)
2[x[
2
∓2[x[x
1
(8.48)
=x −u (8.49)
=±[x[e
1
(8.50)
Cela montre que la matrice P annule tous les ´el´ements du vecteur x hormis le
premier.
La strat´egie pour construire les matrices de Householder est la suivante : on
choisit un vecteur x constitu´e des n−1 derniers ´el´ements de la premi`ere colonne
pour construire la matrice P
1
. En cons´equence, on obtient la structure suivante
pour P
1
P
1
=

¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
1 0 0 . . . . . . 0
0
0
0
.
.
. P
(n−1)
1
0
0
¸

(8.51)
En appliquant la transformation orthogonale ` a la matrice A, on obtient
A

=P.A.P (8.52)
=

¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
a
11
k 0 . . . . . . 0
k
0
0
.
.
.
0
0
¸

(8.53)
o` u le nombre k est au signe pr`es la norme du vecteur (a
21
, . . . , a
n1
)
T
.
On choisit la seconde matrice de Householder avec un vecteur x qui constitu´e
avec les (n −2) derniers ´el´ements de la seconde colonne
P
1
=

¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
1 0 0 . . . . . . 0
0 1 0 . . . . . . 0
0 0
0 0
.
.
.
.
.
. P
(n−2)
2
0 0
0 0
¸

(8.54)
La tridiagonalisation de la partie sup´erieure de la matrice pr´ec´edente est pr´eser-
v´ee, on construit ainsi colonne par colonne une tridiagonalisation de la matrice
81
Analyse spectrale
A. La proc´edure est compl`ete apr`es (n −2) transformations similaires de Hou-
seholder.
Pratiquement, pour ´eviter la multiplication de matrices, tr`es coˆ uteuse nu-
m´eriquement, on peut exprimer le produit P.A.P en introduisant la notation
suivante
p =
A.u
H
(8.55)
En cons´equence, la premi`ere multiplication matricielle peut ˆetre ´ecrite comme
A.P = A.(1 −
u.u
T
H
) (8.56)
= A−p.u
T
(8.57)
de mˆeme pour la seconde
A

= P.A.P = A−p.u
T
−u.p
T
+ 2Ku.u
T
(8.58)
avec
K =
u
T
.p
2H
(8.59)
En posant
q = p −Ku (8.60)
on a la matrice A

qui s’exprime alors simplement
A

= A−q.u
T
−u.q
T
(8.61)
8.3.3 Algorithme QL
En utilisant une suite de transformations de Householder, on peut ´ecrire
tout matrice r´eelle sous la forme
A = Q.R (8.62)
o` u Q est une matrice orthogonale et R une matrice triangulaire sup´erieure. Pour
obtenir une telle d´ecomposition, les matrices de Householder sont construites
dans ce cas de mani`ere ` a ce que la premi`ere colonne ne poss`ede que le premier
´el´ement non nul une fois la transformation effectu´ee, pour la deuxi`eme colonne,
on choisit le vecteur de la matrice de Householder pour que tous les ´el´ements de
la matrice transform´ee soient nuls sous la diagonale et ainsi de suite jusqu’` a for-
mer une matrice triangulaire sup´erieure. Le nombre de matrices de Householder
pour obtenir ce r´esultat est ´egal ` a (n −1).
De mani`ere analogue, on peut montrer qu’il existe une d´ecomposition de la
forme
A = Q.L (8.63)
. o` u Q est une matrice orthogonale et L une matrice triangulaire inf´erieure. Les
transformations de Householder correspondantes consistent ` a annuler, colonne
par colonne, les ´el´ements de la matrice transform´ee qui sont situ´es au dessus de
la diagonale.
82
8.3 M´ethodes directes
Si on d´efinit la matrice A

comme
A

= L.Q (8.64)
Puisque Q est orthogonal, on en d´eduit de l’´equation (8.63) que
L = Q
−1
.A (8.65)
ce qui donne
A

= Q
T
.A.Q (8.66)
ce qui montre que A

est une transformation orthogonale de A.
Pour des raisons de minimisation d’erreurs d’arrondi, il est pr´ef´erable d’uti-
liser la d´ecomposition QL au lieu de la d´ecomposition QR.
L’algorithme QL est d´efini par la suite suivante
A
s
= Q
s
.L
s
(8.67)
A
s+1
= L
s
.Q
s
(8.68)
La m´ethode repose sur les bases suivantes : (i) Si A a des valeurs propres
toutes distinctes de valeur absolue [λ
i
[, alors A
s
tend vers une matrice triangu-
laire inf´erieure quand s →∞. Les valeurs propres apparaissent sur la diagonale
par valeur absolue croissante (ii) Si A a une valeur propre d´eg´en´er´ee de multipli-
cit´e p,quand s →∞, A
s
tend vers une matrice triangulaire inf´erieure, except´ee
pour un bloc d’ordre p correspondant ` a la valeur propre d´eg´en´er´ee. Pour une
matrice quelconque, une it´eration a un coˆ ut de calcul proportionnel ` a n
3
, mais
pour une matrice tridiagonale, ce coˆ ut est lin´eaire avec n. On peut montrer
que la convergence d´epend de la diff´erence entre deux valeurs propres succes-
sives. Quand deux valeurs propres sont trop proches, il est quand mˆeme possible
d’am´eliorer la convergence de l’algorithme en d´epla¸ cant ces valeurs propres suc-
cessives.
8.3.4 Factorisation de Schur
La factorization de Schur consiste ` a r´e´ecrire une matrice carr´ee A sous la
forme suivante
– Si la matrice A est complexe
A = ZTZ

(8.69)
o` u Z est unitaire et T est une matrice triangulaire sup´erieure.
– Si la matrice A est r´eelle
A = ZTZ
T
(8.70)
o` u Z est orthogonale et T est une matrice quasi-triangulaire sup´erieure,
ce qui signifie que la diagonale est constitu´ee soit de blocs 1 1 soit de
blocs 2 2.
83
Analyse spectrale
Les colonnes de Z sont appel´ees les vecteurs de Schur. Les valeurs propres de
A apparaissent sur la diagonale de T ; les valeurs propres complexes conjugu´ees
d’une matrice A r´eelle correspondent aux blocs 2x2 de la diagonale.
L’algorithme utilis´ee dans la biblioth`eque LAPACK, on commence par trans-
former la matrice A en la transformant en une matrice de Hessenberg, qui est
une matrice triangulaire sup´erieure bord´ee une ligne d’´el´em´ents nuls sous la
diagonale.
– Si la matrice A est complexe
A = QHQ

(8.71)
o` u Q est unitaire et H est une matrice de Hessenberg.
– Si la matrice A est r´eelle
A = QTQ
T
(8.72)
o` u Q est orthogonale et H est une matrice de Hessenberg.
Dans une deuxi`eme ´etape, on transforme la matrice de Hessenberg en une ma-
trice de Schur.
8.4 M´ethode it´eratives
Ces m´ethodes sont principalement appliqu´ees ` a des matrices de grande taille
et largement creuses. Les calculs croissent dans ce cas lin´eairement avec n.
Pour toute m´ethode it´erative, il convient de s’assurer que la convergence est
suffisamment rapide pour que le temps de calcul ne soit pas consomm´e sans que
la recherche d’une solution ne soit r´eellement effectu´ee.
8.4.1 M´ethodes des puissances
Le principe de cette m´ethode est tr`es simple, car il repose sur le fait qu’en
appliquant un grand nombre de fois la matrice sur un vecteur initial quelconque,
les vecteurs successifs vont prendre une direction qui se rapproche du vecteur
propre de la plus grande valeur propre (en valeur absolue). Le principe it´eratif
de cette m´ethode est la suivante : soit x
0
un vecteur initial quelconque, et A la
matrice dont on cherche ` a d´eterminer la plus grande valeur propre. On effectue
l’op´eration suivante
x
1
= A.x
0
(8.73)
Si on d´esigne α comme l’angle entre ces deux vecteurs, on a
cos(α) =
x
1
.x
0
[x
1
[.[x
0
[
(8.74)
Si x
0
n’est pas perpendiculaire au vecteur recherch´e (ce qui est rarement le
cas pour un vecteur choisi au d´epart al´eatoirement), le cosinus de l’angle entre
x
0
et x
1
est diff´erent de z´ero. En appliquant ` a nouveau la matrice A sur le
vecteur x
1
on cr´ee un vecteur x
2
et on calcule l’angle entre x
1
et x
2
qui est
inf´erieur au pr´ec´edent en valeur absolue. On continue jusqu’` a ce que l’angle entre
deux vecteurs successifs devienne plus petit qu’une nombre choisi initialement.
84
8.4 M´ethode it´eratives
On en d´eduit alors le vecteur propre recherch´e et donn´e par x
n
, ainsi que la
valeur propre correspondante. La convergence de cette m´ethode varie comme

1

2
) ce qui peut devenir assez lent quand les valeurs propres deviennent
quasi-d´eg´en´er´ees. Cette m´ethode n’est pas tr`es efficace, mais poss`ede le m´erite
de s’´ecrire rapidement.
8.4.2 M´ethode de Lancz` os
La m´ethode de Lancz` os consiste ` a la fois ` a calculer les puissances successives
de A, en s’inspirant de la m´ethode pr´ec´edente, mais de mani`ere bien plus effi-
cace en construisant un ensemble de vecteurs orthogonaux. Par simplicit´e, nous
allons voir la m´ethode pour des matrices hermitiennes, mais la m´ethode peut
ˆetre ´etendue pour des matrices plus g´en´erales, en particulier quand les vecteurs
` a gauche diff`erent des vecteurs ` a droite.
Soit un vecteur de d´epart normalis´e u
0
: ce vecteur est convenablement choisi
c´est ` a dire que sa projection sur la base de la valeur propre ` a d´eterminer est
non nulle. On construit les vecteurs successifs de la base dite de Krylov ` a partir
de la relation
β
2
u
1
= A.u
0
−α
1
u
0
(8.75)
o` u β
2
et α
1
sont des constantes d´etermin´ees de la mani`ere suivante : α
1
est
choisi de mani`ere ` a ce que le vecteur u
1
soit orthogonal au vecteur u
0
α
1
= u
T
0
.A.u
0
(8.76)
et β
2
est d´etermin´e de mani`ere ` a ce que le vecteur u
1
soit normalis´e.
β
2
=

u
T
0
.A
2
.u
0
−α
2
1
(8.77)
Pour le vecteur suivant u
2
, on utilise la relation :
β
3
u
2
= A.u
1
−α
2
u
1
−β
2
u
0
(8.78)
On note tout d’abord qu’avec cette construction, le vecteur u
2
est orthogonal au
vecteur u
0
. De mani`ere similaire, on impose que u
2
soit un vecteur orthogonal
` a u
1
ce qui conduit ` a la relation
α
2
= u
T
1
.A.u
1
(8.79)
et la normalisation de u
2
est impos´ee en choisissant β
3
comme
β
3
=

u
T
1
.A
2
.u
1
−α
2
2
−β
2
(8.80)
Par it´eration, on obtient pour le i`eme vecteur
β
i+1
u
i
= A.u
i−1
−α
i
u
i−1
−β
i
u
i−2
(8.81)
85
Analyse spectrale
On v´erifie facilement que tous les vecteurs u
j
avec j < i −2 sont orthogonaux
avec le vecteur u
i+1
en raison de la construction dans un sous espace ortho-
norm´e sur ses vecteurs. Les valeurs α
i
et β
i+1
sont d´etermin´ees par les relations
suivantes
α
i
=u
T
i−1
.A.u
i+1
(8.82)
β
i+1
=

u
T
i−1
.A
2
.u
i−1
−α
2
i
−β
i
(8.83)
Dans cette base, la matrice A

est tridiagonale et est donn´ee
A

=

¸
¸
¸
¸
¸
¸
¸
¸
¸
α
1
β
2
0 . . . . . . . . . 0
β
2
α
2
β
3
0 . . . . . . 0
0 β
3
α
3
β
4
0 . . . 0
0 . . . . . . . . . 0
0 . . . . . . . . . . . . . . . 0
0 . . . . . . 0 β
n−1
α
n−1
β
n
0 . . . . . . . . . 0 β
n
α
n
¸

(8.84)
Il est possible d´utiliser alors une m´ethode de type QL pour obtenir rapidement
les valeurs propres de la matrice A

, c´est ` a dire aussi la matrice A.
Quelques remarques : en construisant progressivement une base de vecteurs
de plus en plus grande, on voit que la valeur propre recherch´ee peut ˆetre estim´ee
en utilisant les sous espaces successifs. On peut donc arrˆeter l´it´eration quand
la diff´erence entre deux estimations successives de la valeur propre est devenue
suffisamment petite.
Dans le cas o` u la matrice A est une repr´esentation tronqu´ee d´un op´erateur
dont la base propre est infinie (par exemple, un op´erateur de Schr¨oringer),
le proc´ed´e it´eratif conduit progressivement ` a des valeurs de β
i
de plus en en
plus petites. On peut consid´erer que la base de Krylov est compl`ete quand
β
n
est devenu inf´erieure en valeur absolue ` a une valeur choisie ` a l´avance
(g´en´eralement 10
12
).
86
Chapitre 9
Equations int´egrales
Contenu
9.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . 87
9.2 Equation de Fredholm . . . . . . . . . . . . . . . . . 87
9.2.1 Equation de premi`ere esp`ece . . . . . . . . . . . . . . 87
9.2.2 Equation de seconde esp`ece . . . . . . . . . . . . . . . 88
9.3 Equation de Volterra . . . . . . . . . . . . . . . . . . 89
9.3.1 Equation de premi`ere esp`ece . . . . . . . . . . . . . . 89
9.3.2 Equation de seconde esp`ece . . . . . . . . . . . . . . . 89
9.4 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . 89
9.1 Introduction
Les ´equations int´egrales sont a priori moins simples ` a r´esoudre que les ´equa-
tions alg´ebriques ou les ´equations diff´erentielles. Nous allons voir dans ce cha-
pitre que pour des ´equations int´egrales lin´eaires, une fois r´ealis´ee la discr´etisa-
tion de ces ´equations, on se ram`ene au probl`eme de la recherche de solutions
d’un syst`eme lin´eaire que nous avons vu chapitre 6.
9.2 Equation de Fredholm
9.2.1 Equation de premi`ere esp`ece
L’´equation de Fredholm inhomog`ene de premi`ere esp`ece est d´efinie par la
relation suivante

b
a
K(t, s)f(s)ds = g(t) (9.1)
o` u f(t) est la fonction inconnue que l’on souhaite d´eterminer. g(t) est le terme
de source et K(t, s) est appel´e le noyau.
En notant g
i
= g(t
i
), K
ij
= K(s
i
, t
j
) et f
j
= f(t
j
) o` u i est un indice
variant de 1 ` a N et j un indice variant de 1 ` a M (M peut ˆetre diff´erent de N).
87
Equations int´egrales
L’´equation (9.1) se r´e´ecrit alors comme
M
¸
j=1
K
ij
f
j
= g
i
(9.2)
Soit encore sous une forme matricielle
K.f = g (9.3)
Formellement, si le noyau K n’est pas singulier, la solution existe, est unique
et est donn´ee par la relation
f = K
−1
.g (9.4)
9.2.2 Equation de seconde esp`ece
L’´equation de Fredholm inhomog`ene de deuxi`eme esp`ece est d´efinie par la
relation suivante
λf(t) =

b
a
K(t, s)f(s)ds +g(t) (9.5)
o` u f(t) est la fonction inconnue que l’on souhaite d´eterminer. g(t) est le terme de
source, K(t, s) est appel´e le noyau et λ est un scalaire introduit par commodit´e
pour la suite de cette ´equation.
Suivant le mˆeme principe que celui d´efini ci-dessus, une fois discr´etis´ee,
l’´equation (9.5) se r´eexprime comme
λf
i
=
M
¸
j=1
K
ij
f
j
+g
i
(9.6)
Soit encore sous une forme matricielle
(K −λ1).f = −g (9.7)
Si la fonction g est nulle, le probl`eme se ram`ene ` a la d´etermination des valeurs
propres de la matrice K, et on parle d’´equation de Fredholm homog`ene. Dans
le cas o` u g est diff´erent de z´ero, la solution existe et est unique si λ n’est pas
l’une des valeurs propres du noyau, sinon la matrice ` a inverser K −λ.1 devient
singuli`ere. Si cette derni`ere est inversible, on a formellement la solution comme
f = (λ.1 −K)
−1
.g (9.8)
La r´esolution num´erique des ´equations de Fredholm homog`ene de premi`ere
esp`ece est g´en´eralement d´elicate car le noyau correspond souvent ` a une matrice
presque non inversible (mal conditionn´ee), c’est-` a-dire avec un d´eterminant voi-
sin de z´ero. Corr´elativement, si λ est suffisament diff´erent de z´ero, la solution
des ´equations de Fredholm de seconde esp`ece est relativement simple ` a obtenir.
88
9.3 Equation de Volterra
9.3 Equation de Volterra
Les ´equations de Volterra sont des cas particuliers de ceux de Fredholm dans
lesquelles le noyau K est tel que
K(t, s) = 0 pour s > t (9.9)
9.3.1 Equation de premi`ere esp`ece
L’´equation de Volterra homog`ene de premi`ere esp`ece est d´efinie par la rela-
tion suivante
g(t) =

t
a
K(t, s)f(s)ds (9.10)
o` u f(t) est la fonction inconnue que l’on souhaite d´eterminer. g(t) est le terme
de source et K(t, s) est appel´e le noyau.
La r´e´ecriture matricielle de l’´equation de Volterra est identique formellement
` a celle de Fredholm, mais avec la particularit´e que la matrice associ´ee au noyau
K est une matrice triangulaire inf´erieure. Ce type d’´equations lin´eaires, comme
nous l’avons vu au chapitre 6, peut ˆetre r´esolu par une m´ethode de substitution.
Alors que les ´equations de Fredholm de premi`ere esp`ece sont g´en´eralement mal
conditionn´ees, les ´equations de Volterra ne le sont pas.
9.3.2 Equation de seconde esp`ece
De mani`ere similaire, l’´equation de Volterra de premi`ere esp`ece inhomog`ene
s’´ecrit comme
λf(t) =

t
a
K(t, s)f(s)ds +g(t) (9.11)
De mani`ere identique, la repr´esentation matricielle de l’´equation de Volterra est
identique ` a celle correspondante de Fredholm, seule la structure du noyau K
est diff´erente, puisque comme pour toutes les ´equations de Volterra lin´eaires, la
matrice K triangulaire inf´erieure.
9.4 Conclusion
L’existence de structure de noyaux presque singuliers n´ecessite d’utiliser des
m´ethodes plus complexes qui d´epassent largement le cadre de ce cours intro-
ductif aux m´ethodes num´eriques.
89
Equations int´egrales
90
Annexe A
Coordonn´ees hypersph´eriques
Il convient de distinguer le cas pair du cas impair pour le syst`eme de co-
ordonn´ees. Les calculs analytiques et num´eriques sont plus simples dans le cas
impair, car en particulier le calcul de la transform´ee de Fourier d’une fonction
` a sym´etrie sph´erique se ram`ene au calcul d’une transform´ee de Fourier ` a une
dimension sur l’axe r´eel positif.
Consid´erons tout d’abord le cas o` u n est impair : A n dimensions, on d´efinit
les coordonn´ees hypersph´eriques de la mani`ere suivante
x
1
= ρ sin(φ
1
) sin(φ
2
) sin(φ
3
) . . . sin(φ
n−3
) sin(φ
n−2
) sin(φ
n−1
)
x
2
= ρ sin(φ
1
) sin(φ
2
) sin(φ
3
) . . . sin(φ
n−3
) sin(φ
n−2
) cos(φ
n−1
)
x
3
= ρ sin(φ
1
) sin(φ
2
) sin(φ
3
) . . . sin(φ
n−3
) cos(φ
n−2
)
x
4
= ρ sin(φ
1
) sin(φ
2
) sin(φ
3
) . . . cos(φ
n−3
)
. . .
x
n−1
= ρ sin(φ
1
) cos(φ
2
)
x
n
= ρ cos(φ
1
) (A.1)
o` u les variables φ
i
varient de 0 ` a π pour j compris entre 1 et n −2, la variable
φ
n−1
varie entre 0 et 2π, et la variable ρ est positive ou nulle.
Pour n pair, on d´efinit les coordonn´ees hypersph´eriques de la mani`ere sui-
vante
x
1
= ρ sin(φ
1
) sin(φ
2
) sin(φ
3
) . . . sin(φ
n−3
) sin(φ
n−2
) sin(φ
n−1
)
x
2
= ρ sin(φ
1
) sin(φ
2
) sin(φ
3
) . . . sin(φ
n−3
) sin(φ
n−2
) cos(φ
n−1
)
x
3
= ρ sin(φ
1
) sin(φ
2
) sin(φ
3
) . . . sin(φ
n−3
) cos(φ
n−2
)
x
4
= ρ sin(φ
1
) sin(φ
2
) sin(φ
3
) . . . cos(φ
n−3
) cos(φ
n−2
)
. . .
x
n−1
= ρ sin(φ
2
) cos(φ
1
)
x
n
= ρ cos(φ
2
) cos(φ
1
) (A.2)
On v´erifie facilement que quel que soit n
−ρ ≤ x
i
≤ ρ (A.3)
91
Coordonn´ees hypersph´eriques
pour toute valeur de i. De plus, on a
n
¸
i=1
x
2
i
= ρ
2
(A.4)
Pour ´evaluer une int´egrale ` a n dimensions, il est n´ecessaire de calculer le Jaco-
bien de la transformation des coordonn´ees cart´esiennes aux coordonn´ees hyper-
sph´eriques pour n impair
J =
∂(x
1
x
2
. . . x
n
)
∂(ρφ
1
φ
2
. . . φ
n
)
= ρ
n−1

sin(φ
1
) sin(φ
2
) . . . sin(φ
n−1
) cos(φ
1
) . . . sin(φ
n−1
) . . . sin(φ
1
) . . . cos(φ
n−1
)
sin(φ
1
) sin(φ
2
) . . . cos(φ
n−1
cos(φ
1
) . . . cos(φ
n−1
) . . . −sin(φ
1
) . . . sin(φ
n−1
)
. . . . . . . . . . . .
cos(φ
1
) −sin(φ
1
) 0 0

(A.5)
Par r´ecurrence, on montre que le jacobien J se r´eexprime sous la forme
J = ρ
n−1
n−2
¸
j=1
sin
n−1−j

j
) =

n−2
¸
j=1
sin(φ
n−1−j
))
j
(A.6)
On peut v´erifier que la formule convient aussi pour n pair.
Quand l’integrant est une fonction qui ne d´epend que de ρ, on peut int´egrer
sur tous les angles et le calcul se ram`ene ` a celui d’une int´egrale simple sur l’axe
r´eel positif. Par exemple on peut calculer le volume d’une hypersph`ere de rayon
a (qui correspond ` a un int´egrant ´egal ` a 1)
V
n
=

a
0
ρ
n−1

n−2
¸
j=1

π
0
(sin(φ
j
))
n−1−j

j


0

n−1
=
π
n/2
a
n
Γ(n/2 + 1)
=

π
n/2
a
n
(n/2)!
pour n pair
π
(n−1)/2
(2a)
n
((n −1)/2)!
n!
pour n impair
(A.7)
L’´el´ement de surface de l’hypersph`ere de rayon a est donn´e par
dS
n
= a
n−1
n−2
¸
i=1
sin
n−1−i

i
)dφ
i
(A.8)
On peut en d´eduire la surface d’une hypersph`ere dans un espace ` a n dimensions.
S
n
=
dV
n
da
=

n/2
a
n−1
Γ(n/2 + 1)!
=


n/2
a
n−1
(n/2)!
pour n pair
2nπ
(n−1)/2
(2a)
n−1
((n −1)/2)!
(n −1)!
pour n impair
(A.9)
92
Annexe B
Les biblioth`eques BLAS et
Lapack
Contenu
B.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . 93
B.2 Terminologie . . . . . . . . . . . . . . . . . . . . . . . 94
B.1 Introduction
La biblioth`eque BLAS est un biblioth`eque qui r´ealise les op´erations d’alg`ebre
lin´eaire de bas niveau. Elle est disponible en Fortran et en C par l’interm´ediaire
de la biblioth`eque GSL, par exemple. Ces op´erations sont class´ees par ordre de
“difficult´e” croissante :
1. op´erations vectorielles
y = αx +y (B.1)
2. op´erations matrices-vecteurs
y = αAx +βy (B.2)
3. op´erations matrices-matrices
C = αAB +C (B.3)
LAPACK dont le nom vient de Linear Algebra PACKage est une biblio-
th`eque ´ecrite en fortran 77 et qui comprend un ensemble de sous-programmes
pour r´esoudre les probl`emes suivants : syst`eme d’´equations lin´eaires : probl`emes
aux valeurs propres. Diverses factorisations matricielles sont disponibles comme
la d´ecomposition LU, QR Cholesky, SVD, Schur et Schur generalis´ee. Les ma-
trices consid´er´ees sont des matrices soit pleines soit ` a bande. Le cas des matrices
creuses n’est pas sp´ecifiquement trait´e. Les sous-programmes sont fournis pour
des probl`emes dans lesquelles les matrices sont soit r´eelles, soit complexes, en
simple ou en double pr´ecision.
93
Les biblioth`eques BLAS et Lapack
La biblioth`eque LAPACK s´appuie sur des appels ` a des sous-programmes de
plus bas niveau qui sont ceux du BLAS. Cela permet une meilleure optimisation
car des biblioth`eques BLAS sp´ecifiques existent pour chaque type de processeur
et utilisent leurs caract´eristiques. En l’absence de biblioth`eque BLAS optimis´ee,
il est possible de disposer de la biblioth`eque BLAS de base disponible sur le site
de netlib[4].
La version install´ee sur les stations de travail de l’´ecole doctorale est la
derni`ere version disponible (version 3.0) qui date de 2000. Elle est pr´evue pour
des programmes Fortran. Une version C de Lapack (clapack) est disponible sur
le site de netlib, mais n’est pas install´ee par d´efaut sur les stations.
B.2 Terminologie
Une terminologie mn´emotechnique a ´et´e choisie pour retrouver “facilement”
les noms des sous-programmes ` a appeler. Le principe est le mˆeme pour Lapack
et le BLAS.
Les sous-programmes ont un suffixe qui indique le type d’objets sur lesquels
on effectue les op´erations.
– S pour type REAL
– D pour type DOUBLE PRECISION
– C pour type COMPLEX
– Z pour type COMPLEX*16
1
Pour le BLAS de niveau 2, 3 et Lapack, un groupe de deux lettres d´esigne
le type de matrices que consid`ere le sous-programme.
– GE pour une matrice g´en´erale
– SY pour une matrice sym´etrique
– HE pour une matrice hermitienne
– TR pour une matrice triangulaire
– GB pour une matrice ` a bande g´en´erale
– SB pour une matrice sym´etrique ` a bande
– HB pour une matrice hermitienne ` a bande
– TB pour une matrice triangulaire ` a bande
Pour la recherche du nom pr´ecis d’un sous-programme, il existe un petit
index r´ef´eren¸ cant (disponible sur le site netlib ou sur les stations de travail) de
tous les sous-programmes avec la liste des arguments ` a fournir. Il existe aussi un
site internet tr`es utile qui propose un moyen de rechercher le sous-programme
adapt´e ` a partir de la s´election de la tˆ ache ` a effectuer. L’adresse de ce site est
http ://www.cs.colorado.edu/∼lapack/drivers.html
1
Pour le Blas de Niveau 2, il y a un ensemble de sous-programmes pour des calculs en
pr´ecision ´etendue. Les pr´efixes sont ES, ED, EC, EZ
94
Annexe C
La biblioth`eque GSL
Contenu
C.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . 96
C.2 Sous programmes . . . . . . . . . . . . . . . . . . . . 97
C.2.1 BLAS . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
C.2.2 fonctions simples . . . . . . . . . . . . . . . . . . . . . 98
C.2.3 interfaces entre GSL et le BLAS . . . . . . . . . . . . 98
C.2.4 Blocs . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
C.2.5 S´eries de Chebyshev. . . . . . . . . . . . . . . . . . . . 98
C.2.6 Combinatoire . . . . . . . . . . . . . . . . . . . . . . . 98
C.2.7 Complexes . . . . . . . . . . . . . . . . . . . . . . . . 98
C.2.8 Hankel . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
C.2.9 D´eriv´ees . . . . . . . . . . . . . . . . . . . . . . . . . . 99
C.2.10 Valeurs et vecteurs propres . . . . . . . . . . . . . . . 99
C.2.11 Transform´ees de Fourier . . . . . . . . . . . . . . . . . 99
C.2.12 Ajustements . . . . . . . . . . . . . . . . . . . . . . . . 99
C.2.13 Histogrammes . . . . . . . . . . . . . . . . . . . . . . . 100
C.2.14 IEEE . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
C.2.15 Int´egration . . . . . . . . . . . . . . . . . . . . . . . . 100
C.2.16 Interpolation . . . . . . . . . . . . . . . . . . . . . . . 100
C.2.17 Alg`ebre lin´eaire . . . . . . . . . . . . . . . . . . . . . . 101
C.2.18 Matrices . . . . . . . . . . . . . . . . . . . . . . . . . . 101
C.2.19 Minimisation . . . . . . . . . . . . . . . . . . . . . . . 101
C.2.20 Monte Carlo . . . . . . . . . . . . . . . . . . . . . . . 101
C.2.21 Ajustements non-lin´eaires . . . . . . . . . . . . . . . . 102
C.2.22 Equations diff´erentielles . . . . . . . . . . . . . . . . . 102
C.2.23 Permutation . . . . . . . . . . . . . . . . . . . . . . . 102
C.2.24 Polynˆ omes . . . . . . . . . . . . . . . . . . . . . . . . 103
C.2.25 Puissances . . . . . . . . . . . . . . . . . . . . . . . . . 103
C.2.26 Nombres al´eatoires . . . . . . . . . . . . . . . . . . . . 103
C.2.27 Racines unidimensionnelles . . . . . . . . . . . . . . . 103
C.2.28 Fonctions sp´eciales . . . . . . . . . . . . . . . . . . . . 104
C.2.29 Tris . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
C.2.30 Lissage . . . . . . . . . . . . . . . . . . . . . . . . . . 106
95
La biblioth`eque GSL
C.2.31 Statistique . . . . . . . . . . . . . . . . . . . . . . . . 106
C.2.32 Transform´ees de Levin . . . . . . . . . . . . . . . . . . 107
C.2.33 Vecteurs . . . . . . . . . . . . . . . . . . . . . . . . . . 107
C.1 Introduction
Parmi les nombreuses biblioth`eques math´ematiques que l’on peut utiliser
pour r´esoudre des probl`emes num´eriques, il existe une version ´evolutive bas´ee
sur le concept de logiciel libre qui s’appelle la GSL (acronyme de Gnu Scientific
Library). La version actuelle est une version stable 1.2. Cette biblioth`eque est
´ecrite en C et est install´ee sur les stations de travail de l’´ecole doctorale (avec
la version 1.1.1), ce qui permet ` a tout utilisateur d’en disposer pleinement.
Cette biblioth`eque offre des sous-programmes pour les probl`emes suivants :
Nombres complexes Racines de polynˆ omes
Fonctions sp´eciales Vecteurs et Matrices
Permutations Combinatoire
Tri BLAS
Alg`ebre lin´eaire FFT
Valeurs propres G´en´erateurs de nombres al´eatoires
Histogrammes Statistiques
Int´egration de Monte Carlo Equations diff´erentielles
Recuit simul´e Diff´erentiation num´erique
Interpolation S´eries acc´el´eratrices
Approximations de Chebyshev Recherche de racines
Transform´ees de Hankel discr`etes Moindre carr´e
Minimisation Constantes physiques
La diversit´e des probl`emes num´eriques trait´es par cette biblioth`eque rend
tr`es difficile une pr´esentation rapide. Le manuel proprement dit comprend ac-
tuellement plus de 450 pages ! Le but de cet appendice est donc de donner
quelques cl´es pour une utilisation aussi simple que possible de cette biblio-
th`eque et par effet d’apprentissage d’autres biblioth`eques dont les noms de
sous-programmes sont g´en´eralement moins ´eloquents.
Les fichiers d’entˆetes n´ecessaires ` a la compilation d’un programme sont pla-
c´es dans le r´epertoire /usr/include/gsl.
Pour que les ex´ecutables g´en´er´es soient les plus petits possibles, les fichiers
d’entˆetes sont tr`es nombreux (206 dans la version 1.1.1), et leur nom corres-
pondent ` a une classe de sous-programes que l’on souhaite utilis´es selon la r`egle
suivante :
– Le nom commence toujours par le pr´efixe gsl . (Moyen simple d’identifi-
cation par rapport ` a d’autres biblioth`eques qui seraient ` a utiliser dans le
mˆeme programme).
– La seconde partie correspond ` a la classe de probl`eme. Par exemple sf cor-
respond ` a un fonction sp´eciale, matrix ` a un probl`eme sur les matrices,...
96
C.2 Sous programmes
– La troisi`eme correspond au probl`eme sp´ecifique. Par exemple, gsl sf expint.h
est le fichier pour les fonctions exponentielles int´egrales, gsl sf bessel.h
aux fonctions de bessel, ...
– Si l’on veut disposer d’une classe de fonctions plus directement au lieu
de charger un ` a un les fichiers d’entˆetes, on peut utiliser le fichier qui
regroupe. Pour l’exemple pr´ec´edent, on peut utiliser gsl sf.h qui contient
les d´efinitions de toutes les fonctions sp´eciales.
C.2 Sous programmes
La Liste des fonctions disponibles est la suivante
C.2.1 BLAS
Les fonctions du BLAS ´ecrites. Elles r´ealisent les trois niveaux qui sont les
suivants :
1. op´erations vectorielles
y = αx +y (C.1)
2. op´erations matrices-vecteurs
y = αAx +βy (C.2)
3. op´erations matrices-matrices
C = αAB +C (C.3)
cblas caxpy, cblas ccopy, cblas cdotc sub, cblas cdotu sub, cblas cgbmv, cblas cgemm,
cblas cgemv, cblas cgerc, cblas cgeru, cblas chbmv, cblas chemm, cblas chemv, cblas cher,
cblas cher2, cblas cher2k, cblas cherk, cblas chpmv, cblas chpr, cblas chpr2, cblas cscal,
cblas csscal, cblas cswap, cblas csymm, cblas csyr2k, cblas csyrk, cblas ctbmv, cblas ctbsv,
cblas ctpmv, cblas ctpsv, cblas ctrmm, cblas ctrmv, cblas ctrsm, cblas ctrsv, cblas dasum,
cblas daxpy, cblas dcopy, cblas ddot, cblas dgbmv, cblas dgemm, cblas dgemv, cblas dger,
cblas dnrm2, cblas drot, cblas drotg, cblas drotm, cblas drotmg, cblas dsbmv, cblas dscal,
cblas dsdot, cblas dspmv, cblas dspr, cblas dspr2, cblas dswap, cblas dsymm, cblas dsymv,
cblas dsyr, cblas dsyr2, cblas dsyr2k, cblas dsyrk, cblas dtbmv, cblas dtbsv, cblas dtpmv,
cblas dtpsv, cblas dtrmm, cblas dtrmv, cblas dtrsm, cblas dtrsv, cblas dzasum, cblas dznrm2,
cblas icamax, cblas idamax, cblas isamax, cblas izamax, cblas sasum, cblas saxpy, cblas scasum,
cblas scnrm2, cblas scopy, cblas sdot, cblas sdsdot, cblas sgbmv, cblas sgemm, cblas sgemv,
cblas sger, cblas snrm2, cblas srot, cblas srotg, cblas srotm, cblas srotmg, cblas ssbmv,
cblas sscal, cblas sspmv, cblas sspr, cblas sspr2, cblas sswap, cblas ssymm, cblas ssymv,
cblas ssyr, cblas ssyr2, cblas ssyr2k, cblas ssyrk, cblas stbmv, cblas stbsv, cblas stpmv,
cblas stpsv, cblas strmm, cblas strmv, cblas strsm, cblas strsv, cblas xerbla, cblas zaxpy,
cblas zcopy, cblas zdotc sub, cblas zdotu sub, cblas zdscal, cblas zgbmv, cblas zgemm,
cblas zgemv, cblas zgerc, cblas zgeru, cblas zhbmv, cblas zhemm, cblas zhemv, cblas zher,
cblas zher2, cblas zher2k, cblas zherk, cblas zhpmv, cblas zhpr, cblas zhpr2, cblas zscal,
cblas zswap, cblas zsymm, cblas zsyr2k, cblas zsyrk, cblas ztbmv, cblas ztbsv, cblas ztpmv,
cblas ztpsv, cblas ztrmm, cblas ztrmv, cblas ztrsm, cblas ztrsv
97
La biblioth`eque GSL
C.2.2 fonctions simples
Les fonctions simples avec une grande pr´ecision
gsl acosh, gsl asinh, gsl atanh, gsl expm1, gsl log1p
C.2.3 interfaces entre GSL et le BLAS
gsl blas caxpy, gsl blas ccopy, gsl blas cdotc, gsl blas cdotu, gsl blas cgemm, gsl blas cgemv,
gsl blas cgerc, gsl blas cgeru, gsl blas chemm, gsl blas chemv, gsl blas cher, gsl blas cher2,
gsl blas cher2k, gsl blas cherk, gsl blas cscal, gsl blas csscal, gsl blas cswap, gsl blas csymm,
gsl blas csyr2k, gsl blas csyrk, gsl blas ctrmm, gsl blas ctrmv, gsl blas ctrsm, gsl blas ctrsv,
gsl blas dasum, gsl blas daxpy, gsl blas dcopy, gsl blas ddot, gsl blas dgemm, gsl blas dgemv,
gsl blas dger, gsl blas dnrm2, gsl blas drot, gsl blas drotg, gsl blas drotm, gsl blas drotmg,
gsl blas dscal, gsl blas dsdot, gsl blas dswap, gsl blas dsymm, gsl blas dsymv, gsl blas dsyr,
gsl blas dsyr2, gsl blas dsyr2k, gsl blas dsyrk, gsl blas dtrmm, gsl blas dtrmv, gsl blas dtrsm,
gsl blas dtrsv, gsl blas dzasum, gsl blas dznrm2, gsl blas icamax, gsl blas idamax, gsl blas isamax,
gsl blas izamax, gsl blas sasum, gsl blas saxpy, gsl blas scasum, gsl blas scnrm2, gsl blas scopy,
gsl blas sdot, gsl blas sdsdot, gsl blas sgemm, gsl blas sgemv, gsl blas sger, gsl blas snrm2,
gsl blas srot, gsl blas srotg, gsl blas srotm, gsl blas srotmg, gsl blas sscal, gsl blas sswap,
gsl blas ssymm, gsl blas ssymv, gsl blas ssyr, gsl blas ssyr2, gsl blas ssyr2k, gsl blas ssyrk,
gsl blas strmm, gsl blas strmv, gsl blas strsm, gsl blas strsv, gsl blas zaxpy, gsl blas zcopy,
gsl blas zdotc, gsl blas zdotu, gsl blas zdscal, gsl blas zgemm, gsl blas zgemv, gsl blas zgerc,
gsl blas zgeru, gsl blas zhemm, gsl blas zhemv, gsl blas zher, gsl blas zher2, gsl blas zher2k,
gsl blas zherk, gsl blas zscal, gsl blas zswap, gsl blas zsymm, gsl blas zsyr2k, gsl blas zsyrk,
gsl blas ztrmm, gsl blas ztrmv, gsl blas ztrsm, gsl blas ztrsv
C.2.4 Blocs
Les fonctions pour les blocs de m´emoire , gsl block alloc, gsl block calloc,
gsl block fprintf, gsl block fread, gsl block free, gsl block fscanf, gsl block fwrite
C.2.5 S´eries de Chebyshev.
gsl cheb alloc, gsl cheb calc deriv, gsl cheb calc integ, gsl cheb eval, gsl cheb eval err,
gsl cheb eval n, gsl cheb eval n err, gsl cheb free, gsl cheb init
C.2.6 Combinatoire
gsl combination alloc, gsl combination calloc, gsl combination data, gsl combination fprintf,
gsl combination fread, gsl combination free , gsl combination fscanf, gsl combination fwrite,
gsl combination get, gsl combination init first, gsl combination init last, gsl combination k,
gsl combination n, gsl combination next, gsl combination prev , gsl combination valid
C.2.7 Complexes
Les fonctions d’op´erations sur les complexes gsl complex abs, gsl complex abs2,
gsl complex add, gsl complex add imag, gsl complex add real, gsl complex arccos,
gsl complex arccos real, gsl complex arccosh, gsl complex arccosh real, gsl complex arccot,
98
C.2 Sous programmes
gsl complex arccoth, gsl complex arccsc, gsl complex arccsc real, gsl complex arccsch,
gsl complex arcsec, gsl complex arcsec real, gsl complex arcsech, gsl complex arcsin ,
gsl complex arcsin real, gsl complex arcsinh, gsl complex arctan, gsl complex arctanh,
gsl complex arctanh real, gsl complex arg, gsl complex conjugate, gsl complex cos, gsl complex cosh,
gsl complex cot, gsl complex coth, gsl complex csc, gsl complex csch, gsl complex div,
gsl complex div imag, gsl complex div real, gsl complex exp, gsl complex inverse, gsl complex linalg LU invert,
gsl complex log, gsl complex log10, gsl complex log b, gsl complex logabs, gsl complex mul,
gsl complex mul imag, gsl complex mul real, gsl complex negative, gsl complex polar,
gsl complex pow, gsl complex pow real, gsl complex rect, gsl complex sec, gsl complex sech,
gsl complex sin, gsl complex sinh, gsl complex sqrt, gsl complex sqrt real, gsl complex sub,
gsl complex sub imag, gsl complex sub real, gsl complex tan, gsl complex tanh
C.2.8 Hankel
Les fonctions pour les transform´ees de Hankel
gsl dht alloc, gsl dht apply, gsl dht free, gsl dht init, gsl dht k sample, gsl dht new,
gsl dht x sample
C.2.9 D´eriv´ees
gsl diff backward, gsl diff central, gsl diff forward
C.2.10 Valeurs et vecteurs propres
gsl eigen herm, gsl eigen herm alloc, gsl eigen herm free, gsl eigen hermv,
gsl eigen hermv alloc, gsl eigen hermv free, gsl eigen hermv sort, gsl eigen symm,
gsl eigen symm alloc, gsl eigen symm free, gsl eigen symmv, gsl eigen symmv alloc,
gsl eigen symmv free, gsl eigen symmv sort
C.2.11 Transform´ees de Fourier
gsl fft complex backward, gsl fft complex forward, gsl fft complex inverse,
gsl fft complex radix2 backward, gsl fft complex radix2 dif backward, gsl fft complex radix2 dif forward,
gsl fft complex radix2 dif inverse, gsl fft complex radix2 dif transform, gsl fft complex radix2 forward,
gsl fft complex radix2 inverse, gsl fft complex radix2 transform, gsl fft complex transform,
gsl fft complex wavetable alloc, gsl fft complex wavetable free, gsl fft complex workspace alloc,
gsl fft complex workspace free, gsl fft halfcomplex radix2 backward, gsl fft halfcomplex radix2 inverse,
gsl fft halfcomplex transform, gsl fft halfcomplex unpack, gsl fft halfcomplex wavetable alloc,
gsl fft halfcomplex wavetable free, gsl fft real radix2 transform, gsl fft real transform,
gsl fft real unpack, gsl fft real wavetable alloc, gsl fft real wavetable free, gsl fft real workspace alloc,
gsl fft real workspace free
gsl finite
C.2.12 Ajustements
gsl fit linear, gsl fit linear est, gsl fit mul, gsl fit mul est, gsl fit wlinear, gsl fit wmul
99
La biblioth`eque GSL
C.2.13 Histogrammes
gsl histogram2d accumulate, gsl histogram2d add, gsl histogram2d alloc, gsl histogram2d clone,
gsl histogram2d cov, gsl histogram2d div, gsl histogram2d equal bins p, gsl histogram2d find,
gsl histogram2d fprintf, gsl histogram2d fread , gsl histogram2d free, gsl histogram2d fscanf,
gsl histogram2d fwrite , gsl histogram2d get, gsl histogram2d get xrange, gsl histogram2d get yrange,
gsl histogram2d increment, gsl histogram2d max bin, gsl histogram2d max val, gsl histogram2d memcpy,
gsl histogram2d min bin, gsl histogram2d min val, gsl histogram2d mul, gsl histogram2d nx,
gsl histogram2d ny, gsl histogram2d pdf alloc, gsl histogram2d pdf free, gsl histogram2d pdf init,
gsl histogram2d pdf sample, gsl histogram2d reset, gsl histogram2d scale, gsl histogram2d set ranges,
gsl histogram2d set ranges uniform, gsl histogram2d shift, gsl histogram2d sub, gsl histogram2d sum,
gsl histogram2d xmax, gsl histogram2d xmean, gsl histogram2d xmin, gsl histogram2d xsigma,
gsl histogram2d ymax, gsl histogram2d ymean, gsl histogram2d ymin, gsl histogram2d ysigma,
gsl histogram accumulate, gsl histogram add, gsl histogram alloc, gsl histogram bins,
gsl histogram clone, gsl histogram div, gsl histogram equal bins p, gsl histogram find,
gsl histogram fprintf, gsl histogram fread, gsl histogram free, gsl histogram fscanf, gsl histogram fwrite,
gsl histogram get, gsl histogram get range, gsl histogram increment, gsl histogram max,
gsl histogram max bin, gsl histogram max val, gsl histogram mean, gsl histogram memcpy,
gsl histogram min, gsl histogram min bin, gsl histogram min val, gsl histogram mul,
gsl histogram pdf alloc, gsl histogram pdf free , gsl histogram pdf init, gsl histogram pdf sample,
gsl histogram reset, gsl histogram scale, gsl histogram set ranges, gsl histogram set ranges uniform,
gsl histogram shift, gsl histogram sigma, gsl histogram sub, gsl histogram sum
gsl hypot
C.2.14 IEEE
gsl ieee env setup, gsl ieee fprintf double, gsl ieee fprintf float, gsl ieee printf double,
gsl ieee printf float
C.2.15 Int´egration
gsl integration qag, gsl integration qagi, gsl integration qagil, gsl integration qagiu,
gsl integration qagp, gsl integration qags, gsl integration qawc, gsl integration qawf,
gsl integration qawo, gsl integration qawo table alloc, gsl integration qawo table free,
gsl integration qawo table set, gsl integration qawo table set length, gsl integration qaws,
gsl integration qaws table alloc, gsl integration qaws table free, gsl integration qaws table set,
gsl integration qng, gsl integration workspace alloc, gsl integration workspace free
C.2.16 Interpolation
gsl interp accel alloc, gsl interp accel find , gsl interp accel free, gsl interp akima,
gsl interp akima periodic, gsl interp alloc, gsl interp bsearch, gsl interp cspline,
gsl interp cspline periodic, gsl interp eval, gsl interp eval deriv, gsl interp eval deriv2,
gsl interp eval deriv2 e, gsl interp eval deriv e, gsl interp eval e, gsl interp eval integ,
gsl interp eval integ e, gsl interp free, gsl interp init, gsl interp linear, gsl interp min size,
gsl interp name, gsl interp polynomial
gsl isinf, gsl isnan
100
C.2 Sous programmes
C.2.17 Alg`ebre lin´eaire
gsl linalg bidiag decomp, gsl linalg bidiag unpack, gsl linalg bidiag unpack2, gsl linalg bidiag unpack B,
gsl linalg cholesky decomp, gsl linalg cholesky solve, gsl linalg cholesky svx, gsl linalg complex LU decomp,
gsl linalg complex LU det, gsl linalg complex LU lndet, gsl linalg complex LU refine,
gsl linalg complex LU sgndet, gsl linalg complex LU solve, gsl linalg complex LU svx,
gsl linalg hermtd decomp, gsl linalg hermtd unpack, gsl linalg hermtd unpack T, gsl linalg HH solve,
gsl linalg HH svx, gsl linalg LU decomp, gsl linalg LU det, gsl linalg LU invert, gsl linalg LU lndet,
gsl linalg LU refine, gsl linalg LU sgndet, gsl linalg LU solve, gsl linalg LU svx, gsl linalg QR decomp,
gsl linalg QR lssolve, gsl linalg QR QRsolve, gsl linalg QR QTvec, gsl linalg QR Qvec,
gsl linalg QR Rsolve, gsl linalg QR Rsvx, gsl linalg QR solve, gsl linalg QR svx, gsl linalg QR unpack,
gsl linalg QR update, gsl linalg QRPT decomp , gsl linalg QRPT decomp2, gsl linalg QRPT QRsolve,
gsl linalg QRPT Rsolve, gsl linalg QRPT Rsvx, gsl linalg QRPT solve, gsl linalg QRPT svx,
gsl linalg QRPT update, gsl linalg R solve, gsl linalg R svx, gsl linalg solve symm cyc tridiag,
gsl linalg solve symm tridiag, gsl linalg SV decomp, gsl linalg SV decomp jacobi, gsl linalg SV decomp mod,
gsl linalg SV solve, gsl linalg symmtd decomp, gsl linalg symmtd unpack, gsl linalg symmtd unpack T
C.2.18 Matrices
gsl matrix add, gsl matrix add constant, gsl matrix alloc, gsl matrix calloc, gsl matrix column,
gsl matrix const column, gsl matrix const diagonal , gsl matrix const row, gsl matrix const subdiagonal,
gsl matrix const submatrix, gsl matrix const superdiagonal, gsl matrix const view array,
gsl matrix const view array with tda, gsl matrix const view vector, gsl matrix const view vector with tda,
gsl matrix diagonal, gsl matrix div elements, gsl matrix fprintf, gsl matrix fread, gsl matrix free,
gsl matrix fscanf, gsl matrix fwrite, gsl matrix get, gsl matrix get col, gsl matrix get row,
gsl matrix isnull, gsl matrix max, gsl matrix max index, gsl matrix memcpy, gsl matrix min,
gsl matrix min index, gsl matrix minmax, gsl matrix minmax index, gsl matrix mul elements,
gsl matrix ptr, gsl matrix ptr, gsl matrix row, gsl matrix scale, gsl matrix set, gsl matrix set all,
gsl matrix set col, gsl matrix set identity, gsl matrix set row, gsl matrix set zero, gsl matrix sub,
gsl matrix subdiagonal, gsl matrix submatrix, gsl matrix superdiagonal, gsl matrix swap,
gsl matrix swap columns, gsl matrix swap rowcol, gsl matrix swap rows, gsl matrix transpose,
gsl matrix transpose memcpy , gsl matrix view array, gsl matrix view array with tda,
gsl matrix view vector, gsl matrix view vector with tda
C.2.19 Minimisation
gsl min fminimizer alloc, gsl min fminimizer brent, gsl min fminimizer f lower, gsl min fminimizer f minimum,
gsl min fminimizer f upper, gsl min fminimizer free, gsl min fminimizer goldensection,
gsl min fminimizer iterate, gsl min fminimizer name, gsl min fminimizer set , gsl min fminimizer set with values,
gsl min fminimizer x lower, gsl min fminimizer x minimum, gsl min fminimizer x upper,
gsl min test interval
C.2.20 Monte Carlo
gsl monte miser alloc, gsl monte miser free, gsl monte miser init , gsl monte miser integrate,
gsl monte plain alloc, gsl monte plain free, gsl monte plain init, gsl monte plain integrate,
101
La biblioth`eque GSL
gsl monte vegas alloc, gsl monte vegas free, gsl monte vegas init , gsl monte vegas integrate
C.2.21 Ajustements non-lin´eaires
gsl multifit covar, gsl multifit fdfsolver alloc, gsl multifit fdfsolver free, gsl multifit fdfsolver iterate,
gsl multifit fdfsolver lmder, gsl multifit fdfsolver lmsder, gsl multifit fdfsolver name,
gsl multifit fdfsolver position, gsl multifit fdfsolver set, gsl multifit fsolver alloc, gsl multifit fsolver free,
gsl multifit fsolver iterate, gsl multifit fsolver name, gsl multifit fsolver position, gsl multifit fsolver set,
gsl multifit gradient, gsl multifit linear, gsl multifit linear alloc, gsl multifit linear free,
gsl multifit test delta, gsl multifit test gradient, gsl multifit wlinear, gsl multimin fdfminimizer alloc,
gsl multimin fdfminimizer conjugate fr, gsl multimin fdfminimizer conjugate pr,
gsl multimin fdfminimizer free, gsl multimin fdfminimizer gradient, gsl multimin fdfminimizer iterate,
gsl multimin fdfminimizer minimum, gsl multimin fdfminimizer name, gsl multimin fdfminimizer restart,
gsl multimin fdfminimizer set, gsl multimin fdfminimizer steepest descent,
gsl multimin fdfminimizer vector bfgs, gsl multimin fdfminimizer x, gsl multimin test gradient,
gsl multiroot fdfsolver alloc, gsl multiroot fdfsolver dx, gsl multiroot fdfsolver f,
gsl multiroot fdfsolver free, gsl multiroot fdfsolver gnewton, gsl multiroot fdfsolver hybridj,
gsl multiroot fdfsolver hybridsj, gsl multiroot fdfsolver iterate, gsl multiroot fdfsolver name,
gsl multiroot fdfsolver newton, gsl multiroot fdfsolver root, gsl multiroot fdfsolver set,
gsl multiroot fsolver alloc, gsl multiroot fsolver broyden, gsl multiroot fsolver dnewton,
gsl multiroot fsolver dx , gsl multiroot fsolver f, gsl multiroot fsolver free, gsl multiroot fsolver hybrid,
gsl multiroot fsolver hybrids, gsl multiroot fsolver iterate, gsl multiroot fsolver name,
gsl multiroot fsolver root, gsl multiroot fsolver set, gsl multiroot test delta, gsl multiroot test residual
gsl ntuple bookdata, gsl ntuple close, gsl ntuple create, gsl ntuple open, gsl ntuple project,
gsl ntuple read, gsl ntuple write.
C.2.22 Equations diff´erentielles
gsl odeiv control alloc, gsl odeiv control free, gsl odeiv control hadjust, gsl odeiv control init,
gsl odeiv control name, gsl odeiv control standard new, gsl odeiv control y new, gsl odeiv control yp new,
gsl odeiv evolve alloc, gsl odeiv evolve apply, gsl odeiv evolve free, gsl odeiv evolve reset,
gsl odeiv step alloc, gsl odeiv step apply, gsl odeiv step bsimp, gsl odeiv step free, gsl odeiv step gear1,
gsl odeiv step gear2, gsl odeiv step name, gsl odeiv step order, gsl odeiv step reset,
gsl odeiv step rk2, gsl odeiv step rk2imp, gsl odeiv step rk4, gsl odeiv step rk4imp,
gsl odeiv step rk8pd, gsl odeiv step rkck, gsl odeiv step rkf45
C.2.23 Permutation
gsl permutation alloc, gsl permutation calloc, gsl permutation canonical cycles, gsl permutation canonical to linear,
gsl permutation data, gsl permutation fprintf, gsl permutation fread, gsl permutation free,
gsl permutation fscanf, gsl permutation fwrite, gsl permutation get, gsl permutation init,
gsl permutation inverse, gsl permutation inversions, gsl permutation linear cycles, gsl permutation linear to canonical,
gsl permutation memcpy, gsl permutation mul, gsl permutation next, gsl permutation prev,
gsl permutation reverse, gsl permutation size, gsl permutation swap, gsl permutation valid,
gsl permute, gsl permute inverse, gsl permute vector, gsl permute vector inverse
102
C.2 Sous programmes
C.2.24 Polynˆ omes
gsl poly complex solve, gsl poly complex solve cubic, gsl poly complex solve quadratic,
gsl poly complex workspace alloc, gsl poly complex workspace free, gsl poly dd eval,
gsl poly dd init, gsl poly dd taylor, gsl poly eval, gsl poly solve cubic, gsl poly solve quadratic
C.2.25 Puissances
gsl pow 2, gsl pow 3, gsl pow 4, gsl pow 5, gsl pow 6, gsl pow 7, gsl pow 8, gsl pow 9,
gsl pow int
C.2.26 Nombres al´eatoires
gsl qrng alloc, gsl qrng clone, gsl qrng free, gsl qrng get , gsl qrng init, gsl qrng memcpy,
gsl qrng name, gsl qrng niederreiter 2, gsl qrng size, gsl qrng sobol, gsl qrng state, gsl ran bernoulli,
gsl ran bernoulli pdf, gsl ran beta, gsl ran beta pdf, gsl ran binomial, gsl ran binomial pdf,
gsl ran bivariate gaussian, gsl ran bivariate gaussian pdf, gsl ran cauchy, gsl ran cauchy pdf,
gsl ran chisq, gsl ran chisq pdf, gsl ran choose, gsl ran dir 2d, gsl ran dir 2d trig method,
gsl ran dir 3d, gsl ran dir nd, gsl ran discrete, gsl ran discrete free, gsl ran discrete pdf,
gsl ran discrete preproc, gsl ran exponential, gsl ran exponential pdf, gsl ran exppow,
gsl ran exppow pdf, gsl ran fdist, gsl ran fdist pdf, gsl ran flat, gsl ran flat pdf, gsl ran gamma,
gsl ran gamma pdf, gsl ran gaussian, gsl ran gaussian pdf, gsl ran gaussian ratio method,
gsl ran gaussian tail, gsl ran gaussian tail pdf, gsl ran geometric , gsl ran geometric pdf,
gsl ran gumbel1, gsl ran gumbel1 pdf, gsl ran gumbel2, gsl ran gumbel2 pdf, gsl ran hypergeometric,
gsl ran hypergeometric pdf, gsl ran landau, gsl ran landau pdf, gsl ran laplace, gsl ran laplace pdf,
gsl ran levy, gsl ran levy skew, gsl ran logarithmic, gsl ran logarithmic pdf, gsl ran logistic,
gsl ran logistic pdf, gsl ran lognormal, gsl ran lognormal pdf, gsl ran negative binomial,
gsl ran negative binomial pdf, gsl ran pareto, gsl ran pareto pdf, gsl ran pascal, gsl ran pascal pdf,
gsl ran poisson, gsl ran poisson pdf, gsl ran rayleigh, gsl ran rayleigh pdf, gsl ran rayleigh tail,
gsl ran rayleigh tail pdf, gsl ran sample, gsl ran shuffle, gsl ran tdist, gsl ran tdist pdf,
gsl ran ugaussian, gsl ran ugaussian pdf, gsl ran ugaussian ratio method, gsl ran ugaussian tail,
gsl ran ugaussian tail pdf, gsl ran weibull, gsl ran weibull pdf, GSL REAL, gsl rng alloc,
gsl rng borosh13, gsl rng clone, gsl rng cmrg, gsl rng coveyou, gsl rng env setup, gsl rng fishman18,
gsl rng fishman20, gsl rng fishman2x, gsl rng free, gsl rng get, gsl rng gfsr4, gsl rng knuthran,
gsl rng knuthran2, gsl rng lecuyer21, gsl rng max, gsl rng memcpy, gsl rng min, gsl rng minstd,
gsl rng mrg, gsl rng mt19937, gsl rng name, gsl rng print state, gsl rng r250, gsl rng ran0,
gsl rng ran1, gsl rng ran2, gsl rng ran3, gsl rng rand, gsl rng rand48, gsl rng random bsd,
gsl rng random glibc2, gsl rng random libc5, gsl rng randu, gsl rng ranf, gsl rng ranlux,
gsl rng ranlux389, gsl rng ranlxd1, gsl rng ranlxd2, gsl rng ranlxs0, gsl rng ranlxs1,
gsl rng ranlxs2, gsl rng ranmar, gsl rng set, gsl rng size, gsl rng slatec, gsl rng state,
gsl rng taus, gsl rng taus2, gsl rng transputer, gsl rng tt800, gsl rng types setup, gsl rng uni,
gsl rng uni32, gsl rng uniform, gsl rng uniform int, gsl rng uniform pos, gsl rng vax,
gsl rng waterman14, gsl rng zuf
C.2.27 Racines unidimensionnelles
gsl root fdfsolver alloc, gsl root fdfsolver free, gsl root fdfsolver iterate, gsl root fdfsolver name,
103
La biblioth`eque GSL
gsl root fdfsolver newton, gsl root fdfsolver root, gsl root fdfsolver secant, gsl root fdfsolver set,
gsl root fdfsolver steffenson, gsl root fsolver alloc, gsl root fsolver bisection, gsl root fsolver brent,
gsl root fsolver falsepos, gsl root fsolver free, gsl root fsolver iterate, gsl root fsolver name,
gsl root fsolver root, gsl root fsolver set, gsl root fsolver x lower, gsl root fsolver x upper,
gsl root test delta, gsl root test interval , gsl root test residual
gsl set error handler, gsl set error handler off
C.2.28 Fonctions sp´eciales
Airy
gsl sf airy Ai, gsl sf airy Ai deriv, gsl sf airy Ai deriv e, gsl sf airy Ai deriv scaled,
gsl sf airy Ai deriv scaled e, gsl sf airy Ai e, gsl sf airy Ai scaled, gsl sf airy Ai scaled e,
gsl sf airy Bi, gsl sf airy Bi deriv, gsl sf airy Bi deriv e, gsl sf airy Bi deriv scaled,
gsl sf airy Bi deriv scaled e, gsl sf airy Bi e, gsl sf airy Bi scaled, gsl sf airy Bi scaled e,
gsl sf airy zero Ai, gsl sf airy zero Ai deriv, gsl sf airy zero Ai deriv e, gsl sf airy zero Ai e,
gsl sf airy zero Bi, gsl sf airy zero Bi deriv, gsl sf airy zero Bi deriv e, gsl sf airy zero Bi e
Divers
gsl sf angle restrict pos, gsl sf angle restrict pos e, gsl sf angle restrict symm,
gsl sf angle restrict symm e, gsl sf atanint, gsl sf atanint e
Bessel
gsl sf bessel I0, gsl sf bessel I0 e, gsl sf bessel I0 scaled, gsl sf bessel i0 scaled, gsl sf bessel I0 scaled e,
gsl sf bessel i0 scaled e, gsl sf bessel I1, gsl sf bessel I1 e, gsl sf bessel I1 scaled, gsl sf bessel i1 scaled,
gsl sf bessel I1 scaled e, gsl sf bessel i1 scaled e, gsl sf bessel i2 scaled, gsl sf bessel i2 scaled e,
gsl sf bessel il scaled, gsl sf bessel il scaled array, gsl sf bessel il scaled e, gsl sf bessel In,
gsl sf bessel In array, gsl sf bessel In e, gsl sf bessel In scaled, gsl sf bessel In scaled array,
gsl sf bessel In scaled e, gsl sf bessel Inu, gsl sf bessel Inu e, gsl sf bessel Inu scaled,
gsl sf bessel Inu scaled e, gsl sf bessel J0, gsl sf bessel j0, gsl sf bessel j0 e, gsl sf bessel J0 e,
gsl sf bessel J1, gsl sf bessel j1, gsl sf bessel J1 e, gsl sf bessel j1 e, gsl sf bessel j2 ,
gsl sf bessel j2 e, gsl sf bessel jl, gsl sf bessel jl array, gsl sf bessel jl e, gsl sf bessel jl steed array,
gsl sf bessel Jn, gsl sf bessel Jn array, gsl sf bessel Jn e, gsl sf bessel Jnu, gsl sf bessel Jnu e,
gsl sf bessel K0, gsl sf bessel K0 e, gsl sf bessel K0 scaled, gsl sf bessel k0 scaled,
gsl sf bessel K0 scaled e, gsl sf bessel k0 scaled e, gsl sf bessel K1, gsl sf bessel K1 e,
gsl sf bessel K1 scaled, gsl sf bessel k1 scaled, gsl sf bessel K1 scaled e, gsl sf bessel k1 scaled e,
gsl sf bessel k2 scaled, gsl sf bessel k2 scaled e, gsl sf bessel kl scaled, gsl sf bessel kl scaled array,
gsl sf bessel kl scaled e, gsl sf bessel Kn, gsl sf bessel Kn array, gsl sf bessel Kn e, gsl sf bessel Kn scaled,
gsl sf bessel Kn scaled array, gsl sf bessel Kn scaled e, gsl sf bessel Knu, gsl sf bessel Knu e,
gsl sf bessel Knu scaled, gsl sf bessel Knu scaled e, gsl sf bessel lnKnu, gsl sf bessel lnKnu e,
gsl sf bessel sequence Jnu e, gsl sf bessel y0, gsl sf bessel Y0, gsl sf bessel y0 e, gsl sf bessel Y0 e,
gsl sf bessel y1, gsl sf bessel Y1, gsl sf bessel Y1 e, gsl sf bessel y1 e, gsl sf bessel y2,
gsl sf bessel y2 e, gsl sf bessel yl, gsl sf bessel yl array, gsl sf bessel yl e, gsl sf bessel Yn,
gsl sf bessel Yn array, gsl sf bessel Yn e, gsl sf bessel Ynu, gsl sf bessel Ynu e, gsl sf bessel zero J0,
gsl sf bessel zero J0 e, gsl sf bessel zero J1, gsl sf bessel zero J1 e, gsl sf bessel zero Jnu,
gsl sf bessel zero Jnu e
104
C.2 Sous programmes
Beta, Coniques,Elliptiques, ...
gsl sf beta, gsl sf beta e, gsl sf beta inc, gsl sf beta inc e, gsl sf Chi, gsl sf Chi e,
gsl sf choose, gsl sf choose e, gsl sf Ci, gsl sf Ci e, gsl sf clausen, gsl sf clausen e, gsl sf complex cos e,
gsl sf complex dilog e, gsl sf complex log e, gsl sf complex logsin e, gsl sf complex sin e,
gsl sf conicalP 0, gsl sf conicalP 0 e, gsl sf conicalP 1 , gsl sf conicalP 1 e, gsl sf conicalP cyl reg,
gsl sf conicalP cyl reg e, gsl sf conicalP half, gsl sf conicalP half e, gsl sf conicalP mhalf,
gsl sf conicalP mhalf e, gsl sf conicalP sph reg, gsl sf conicalP sph reg e, gsl sf cos,
gsl sf cos e, gsl sf cos err, gsl sf cos err e, gsl sf coulomb CL array , gsl sf coulomb CL e,
gsl sf coulomb wave F array, gsl sf coulomb wave FG array, gsl sf coulomb wave FG e,
gsl sf coulomb wave FGp array , gsl sf coulomb wave sphF array, gsl sf coupling 3j,
gsl sf coupling 3j e, gsl sf coupling 6j, gsl sf coupling 6j e, gsl sf coupling 9j, gsl sf coupling 9j e,
gsl sf dawson, gsl sf dawson e, gsl sf debye 1, gsl sf debye 1 e, gsl sf debye 2, gsl sf debye 2 e,
gsl sf debye 3, gsl sf debye 3 e, gsl sf debye 4, gsl sf debye 4 e, gsl sf dilog, gsl sf dilog e,
gsl sf doublefact, gsl sf doublefact e, gsl sf ellint D, gsl sf ellint D e, gsl sf ellint E,
gsl sf ellint E e, gsl sf ellint Ecomp, gsl sf ellint Ecomp e, gsl sf ellint F, gsl sf ellint F e,
gsl sf ellint Kcomp, gsl sf ellint Kcomp e, gsl sf ellint P, gsl sf ellint P e, gsl sf ellint RC,
gsl sf ellint RC e, gsl sf ellint RD, gsl sf ellint RD e, gsl sf ellint RF, gsl sf ellint RF e,
gsl sf ellint RJ, gsl sf ellint RJ e, gsl sf elljac e, gsl sf erf, gsl sf erf e, gsl sf erf Q, gsl sf erf Q e,
gsl sf erf Z, gsl sf erf Z e, gsl sf erfc, gsl sf erfc e, gsl sf eta, gsl sf eta e, gsl sf eta int,
gsl sf eta int e, gsl sf exp, gsl sf exp e, gsl sf exp e10 e , gsl sf exp err e, gsl sf exp err e10 e,
gsl sf exp mult, gsl sf exp mult e, gsl sf exp mult e10 e, gsl sf exp mult err e, gsl sf exp mult err e10 e,
gsl sf expint 3, gsl sf expint 3 e, gsl sf expint E1, gsl sf expint E1 e, gsl sf expint E2,
gsl sf expint E2 e, gsl sf expint Ei, gsl sf expint Ei e, gsl sf expm1, gsl sf expm1 e,
gsl sf exprel, gsl sf exprel 2, gsl sf exprel 2 e, gsl sf exprel e, gsl sf exprel n, gsl sf exprel n e,
gsl sf fact, gsl sf fact e, gsl sf fermi dirac 0, gsl sf fermi dirac 0 e, gsl sf fermi dirac 1,
gsl sf fermi dirac 1 e, gsl sf fermi dirac 2, gsl sf fermi dirac 2 e, gsl sf fermi dirac 3half,
gsl sf fermi dirac 3half e, gsl sf fermi dirac half, gsl sf fermi dirac half e, gsl sf fermi dirac inc 0,
gsl sf fermi dirac inc 0 e, gsl sf fermi dirac int, gsl sf fermi dirac int e, gsl sf fermi dirac m1,
gsl sf fermi dirac m1 e, gsl sf fermi dirac mhalf, gsl sf fermi dirac mhalf e, gsl sf gamma,
gsl sf gamma e, gsl sf gamma inc P, gsl sf gamma inc P e, gsl sf gamma inc Q, gsl sf gamma inc Q e,
gsl sf gammainv , gsl sf gammainv e, gsl sf gammastar, gsl sf gammastar e, gsl sf gegenpoly 1,
gsl sf gegenpoly 1 e, gsl sf gegenpoly 2, gsl sf gegenpoly 2 e, gsl sf gegenpoly 3, gsl sf gegenpoly 3 e,
gsl sf gegenpoly array, gsl sf gegenpoly n, gsl sf gegenpoly n e, gsl sf hydrogenicR, gsl sf hydrogenicR 1,
gsl sf hydrogenicR 1 e, gsl sf hydrogenicR e, gsl sf hyperg 0F1, gsl sf hyperg 0F1 e,
gsl sf hyperg 1F1, gsl sf hyperg 1F1 e, gsl sf hyperg 1F1 int, gsl sf hyperg 1F1 int e,
gsl sf hyperg 2F0, gsl sf hyperg 2F0 e, gsl sf hyperg 2F1, gsl sf hyperg 2F1 conj, gsl sf hyperg 2F1 conj e,
gsl sf hyperg 2F1 conj renorm , gsl sf hyperg 2F1 conj renorm e, gsl sf hyperg 2F1 e,
gsl sf hyperg 2F1 renorm, gsl sf hyperg 2F1 renorm e, gsl sf hyperg U , gsl sf hyperg U e,
gsl sf hyperg U e10 e, gsl sf hyperg U int, gsl sf hyperg U int e, gsl sf hyperg U int e10 e,
gsl sf hypot, gsl sf hypot e, gsl sf hzeta, gsl sf hzeta e, gsl sf laguerre 1, gsl sf laguerre 1 e,
gsl sf laguerre 2, gsl sf laguerre 2 e, gsl sf laguerre 3 , gsl sf laguerre 3 e, gsl sf laguerre n,
gsl sf laguerre n e, gsl sf lambert W0, gsl sf lambert W0 e, gsl sf lambert Wm1, gsl sf lambert Wm1 e,
gsl sf legendre array size, gsl sf legendre H3d, gsl sf legendre H3d 0, gsl sf legendre H3d 0 e,
gsl sf legendre H3d 1, gsl sf legendre H3d 1 e, gsl sf legendre H3d array, gsl sf legendre H3d e,
gsl sf legendre P1, gsl sf legendre P1 e, gsl sf legendre P2, gsl sf legendre P2 e, gsl sf legendre P3,
gsl sf legendre P3 e, gsl sf legendre Pl, gsl sf legendre Pl array, gsl sf legendre Pl e,
105
La biblioth`eque GSL
gsl sf legendre Plm, gsl sf legendre Plm array, gsl sf legendre Plm e, gsl sf legendre Q0,
gsl sf legendre Q0 e, gsl sf legendre Q1, gsl sf legendre Q1 e, gsl sf legendre Ql, gsl sf legendre Ql e,
gsl sf legendre sphPlm, gsl sf legendre sphPlm array, gsl sf legendre sphPlm e, gsl sf lnbeta,
gsl sf lnbeta e, gsl sf lnchoose, gsl sf lnchoose e, gsl sf lncosh, gsl sf lncosh e, gsl sf lndoublefact,
gsl sf lndoublefact e, gsl sf lnfact, gsl sf lnfact e, gsl sf lngamma, gsl sf lngamma complex e,
gsl sf lngamma e, gsl sf lngamma sgn e, gsl sf lnpoch, gsl sf lnpoch e, gsl sf lnpoch sgn e,
gsl sf lnsinh, gsl sf lnsinh e, gsl sf log, gsl sf log 1plusx, gsl sf log 1plusx e, gsl sf log 1plusx mx,
gsl sf log 1plusx mx e, gsl sf log abs, gsl sf log abs e , gsl sf log e, gsl sf log erfc, gsl sf log erfc e,
gsl sf multiply e, gsl sf multiply err e, gsl sf poch, gsl sf poch e, gsl sf pochrel, gsl sf pochrel e,
gsl sf polar to rect, gsl sf pow int, gsl sf pow int e, gsl sf psi, gsl sf psi 1 int, gsl sf psi 1 int e,
gsl sf psi 1piy, gsl sf psi 1piy e, gsl sf psi e, gsl sf psi int, gsl sf psi int e, gsl sf psi n,
gsl sf psi n e, gsl sf rect to polar, gsl sf Shi, gsl sf Shi e, gsl sf Si, gsl sf Si e, gsl sf sin,
gsl sf sin e, gsl sf sin err, gsl sf sin err e, gsl sf sinc, gsl sf sinc e, gsl sf synchrotron 1,
gsl sf synchrotron 1 e, gsl sf synchrotron 2, gsl sf synchrotron 2 e, gsl sf taylorcoeff,
gsl sf taylorcoeff e, gsl sf transport 2, gsl sf transport 2 e, gsl sf transport 3, gsl sf transport 3 e,
gsl sf transport 4, gsl sf transport 4 e, gsl sf transport 5, gsl sf transport 5 e, gsl sf zeta,
gsl sf zeta e, gsl sf zeta int, gsl sf zeta int e,
gsl siman solve
C.2.29 Tris
gsl sort, gsl sort index, gsl sort largest, gsl sort largest index, gsl sort smallest, gsl sort smallest index,
gsl sort vector, gsl sort vector index, gsl sort vector largest, gsl sort vector largest index,
gsl sort vector smallest, gsl sort vector smallest index, gsl heapsort, gsl heapsort index
C.2.30 Lissage
gsl spline alloc, gsl spline eval, gsl spline eval deriv, gsl spline eval deriv2, gsl spline eval deriv2 e,
gsl spline eval deriv e, gsl spline eval e, gsl spline eval integ, gsl spline eval integ e,
gsl spline free, gsl spline init
C.2.31 Statistique
gsl stats absdev, gsl stats absdev m, gsl stats covariance, gsl stats covariance m,
gsl stats kurtosis, gsl stats kurtosis m sd, gsl stats lag1 autocorrelation ,
gsl stats lag1 autocorrelation m, gsl stats max, gsl stats max index, gsl stats mean,
gsl stats median from sorted data, gsl stats min, gsl stats min index, gsl stats minmax,
gsl stats minmax index,
gsl stats quantile from sorted data, gsl stats sd, gsl stats sd m, gsl stats sd with fixed mean,
gsl stats skew, gsl stats skew m sd, gsl stats variance, gsl stats variance m
, gsl stats variance with fixed mean, gsl stats wabsdev, gsl stats wabsdev m, gsl stats wkurtosis,
gsl stats wkurtosis m sd, gsl stats wmean, gsl stats wsd, gsl stats wsd m, gsl stats wsd with fixed mean,
gsl stats wskew, gsl stats wskew m sd, gsl stats wvariance, gsl stats wvariance m,
gsl stats wvariance with fixed mean
gsl strerror
106
C.2 Sous programmes
C.2.32 Transform´ees de Levin
gsl sum levin u accel, gsl sum levin u alloc, gsl sum levin u free, gsl sum levin utrunc accel,
gsl sum levin utrunc alloc, gsl sum levin utrunc free
C.2.33 Vecteurs
gsl vector add, gsl vector add constant, gsl vector alloc, gsl vector calloc,
gsl vector complex const imag, gsl vector complex const real , gsl vector complex imag,
gsl vector complex real, gsl vector const subvector , gsl vector const subvector with stride,
gsl vector const view array, gsl vector const view array with stride, gsl vector div, gsl vector fprintf,
gsl vector fread, gsl vector free, gsl vector fscanf, gsl vector fwrite, gsl vector get, gsl vector isnull,
gsl vector max, gsl vector max index, gsl vector memcpy, gsl vector min, gsl vector min index,
gsl vector minmax, gsl vector minmax index, gsl vector mul, gsl vector ptr, gsl vector ptr,
gsl vector reverse, gsl vector scale, gsl vector set, gsl vector set all, gsl vector set basis,
gsl vector set zero, gsl vector sub, gsl vector subvector, gsl vector subvector with stride,
gsl vector swap, gsl vector swap elements, gsl vector view array gsl vector view array with stride
Nous renvoyons au manuel pour une pr´esentation d´etaill´ee de chacune de
ces fonctions.
107
La biblioth`eque GSL
108
Bibliographie
[1] W. H. Press, S.A. Teukolsky, W.T. Vetterling, B.P. Flannery, Numerical
Recipes in C, Cambridge University Press (1992).
[2] http ://sources.redhat.com/gsl/
[3] http ://www.netlib.org/lapack/
[4] http ://www.netlib.org/blas/
[5] http ://beige.ucs.indiana.edu/B673/
[6] http ://dmawww.epfl.ch/rappaz.mosaic/index.html
109
BIBLIOGRAPHIE
110
Table des mati`eres
1 Int´egration et sommes discr`etes 3
1.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2 Les m´ethodes de Cˆ otes . . . . . . . . . . . . . . . . . . . . . . . . 4
1.2.1 Trap`eze . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.2.2 Simpson . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.3 M´ethode de Romberg . . . . . . . . . . . . . . . . . . . . . . . . 7
1.4 M´ethodes de Gauss . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.5 M´ethode de Gauss-Kronrod et m´ethodes adaptatives . . . . . . . 9
1.6 Int´egrales multiples . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2 Fonctions sp´eciales et ´evaluation de fonctions 13
2.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.2 Fonctions transcendantes simples . . . . . . . . . . . . . . . . . . 14
2.3 Fonction Gamma . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.3.1 D´efinition et propri´et´es . . . . . . . . . . . . . . . . . . . 14
2.3.2 Fonctions reli´ees : Ψ, B . . . . . . . . . . . . . . . . . . . 16
2.4 Fonctions de Bessel . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.5 Fonctions Hyperg´eom´etriques . . . . . . . . . . . . . . . . . . . . 20
2.5.1 Fonction Hyperg´eom´etrique Gaussienne . . . . . . . . . . 20
2.5.2 Fonctions Hyperg´eom´etriques g´en´eralis´ees . . . . . . . . . 20
2.6 Fonction erreur, exponentielle int´egrale . . . . . . . . . . . . . . . 21
2.7 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
3 Racines d’´equations 23
3.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
3.2 Dichotomie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
3.3 M´ethode de Ridder . . . . . . . . . . . . . . . . . . . . . . . . . . 25
3.3.1 M´ethode de la position fausse . . . . . . . . . . . . . . . . 25
3.3.2 M´ethode de Ridder . . . . . . . . . . . . . . . . . . . . . . 26
3.4 M´ethode de Brent . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3.5 Newton-Raphson . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3.6 Racines de Polynˆ omes . . . . . . . . . . . . . . . . . . . . . . . . 28
3.6.1 R´eduction polynomiale . . . . . . . . . . . . . . . . . . . . 28
3.6.2 M´ethode de Laguerre . . . . . . . . . . . . . . . . . . . . 29
111
TABLE DES MATI
`
ERES
4 Equations diff´erentielles 31
4.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
4.2 D´efinitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
4.3 Equations diff´erentielles “sp´eciales” . . . . . . . . . . . . . . . . . 32
4.3.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 32
4.3.2 Equations du premier ordre . . . . . . . . . . . . . . . . . 33
4.3.3 Equation diff´erentielles du second ordre . . . . . . . . . . 34
4.3.4 Equation de Bessel . . . . . . . . . . . . . . . . . . . . . . 35
4.3.5 Equation diff´erentielle erreur . . . . . . . . . . . . . . . . 35
4.3.6 Equation diff´erentielle d’Hermite . . . . . . . . . . . . . . 35
4.4 M´ethodes d’int´egration ` a pas s´epar´e . . . . . . . . . . . . . . . . 35
4.4.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 35
4.4.2 M´ethode d’Euler . . . . . . . . . . . . . . . . . . . . . . . 36
4.4.3 M´ethode RK explicites ` a un point . . . . . . . . . . . . . 37
4.4.4 M´ethodes RK implicites ` a un point . . . . . . . . . . . . . 37
4.4.5 M´ethodes RK explicites ` a 2 points interm´ediaires . . . . . 37
4.4.6 M´ethodes RK explicites ` a 3 points interm´ediaires . . . . . 38
4.4.7 Formule g´en´erale des m´ethodes RK explicites . . . . . . . 38
4.5 M´ethode d’int´egration ` a pas variables . . . . . . . . . . . . . . . 39
4.5.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 39
4.6 M´ethodes de Runge-Kutta “embarqu´ees” . . . . . . . . . . . . . . 39
4.7 M´ethode de Bulirsh-Stoer . . . . . . . . . . . . . . . . . . . . . . 40
4.8 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
5 Transform´ee de Fourier rapide et algorithmes de tri 43
5.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
5.2 Propri´et´es . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
5.3 Discr´etisation de la transform´ee de Fourier . . . . . . . . . . . . . 46
5.3.1
´
Echantillonage . . . . . . . . . . . . . . . . . . . . . . . . 46
5.3.2 Transform´ee de Fourier discr`ete . . . . . . . . . . . . . . . 47
5.4 Transform´ee de Fourier rapide . . . . . . . . . . . . . . . . . . . . 48
5.5 Algorithmes de tri . . . . . . . . . . . . . . . . . . . . . . . . . . 50
5.5.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 50
5.5.2 M´ethode d’insertion . . . . . . . . . . . . . . . . . . . . . 50
5.5.3 Tri ` a bulles . . . . . . . . . . . . . . . . . . . . . . . . . . 51
5.5.4 Tri rapide . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
6 Equations aux d´eriv´ees partielles 53
6.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
6.2 Equations avec conditions aux fronti`eres . . . . . . . . . . . . . . 56
6.2.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 56
6.2.2 Diff´erences finies . . . . . . . . . . . . . . . . . . . . . . . 56
6.2.3 M´ethodes matricielles . . . . . . . . . . . . . . . . . . . . 57
6.2.4 M´ethodes de relaxation . . . . . . . . . . . . . . . . . . . 57
6.2.5 M´ethodes de Fourier . . . . . . . . . . . . . . . . . . . . . 58
6.3 Equations avec conditions initiales . . . . . . . . . . . . . . . . . 60
6.3.1 Equations ` a flux conservatif . . . . . . . . . . . . . . . . . 60
112
TABLE DES MATI
`
ERES
6.3.2 Une approche na¨ıve . . . . . . . . . . . . . . . . . . . . . 61
6.3.3 Crit`ere de Stabilit´e de Von Neumann . . . . . . . . . . . . 61
6.3.4 M´ethode de Lax . . . . . . . . . . . . . . . . . . . . . . . 62
6.4 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
7 Alg`ebre lin´eaire 65
7.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
7.2
´
Elimination de Gauss-Jordan . . . . . . . . . . . . . . . . . . . . 67
7.2.1 Rappels sur les matrices . . . . . . . . . . . . . . . . . . . 67
7.2.2 M´ethode sans pivot . . . . . . . . . . . . . . . . . . . . . 67
7.2.3 M´ethode avec pivot . . . . . . . . . . . . . . . . . . . . . 68
7.3
´
Elimination gaussienne avec substitution . . . . . . . . . . . . . . 68
7.4 D´ecomposition LU . . . . . . . . . . . . . . . . . . . . . . . . . . 69
7.4.1 Principe . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
7.4.2 R´esolution d’un syst`eme lin´eaire . . . . . . . . . . . . . . 70
7.5 Matrices creuses . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
7.5.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 71
7.5.2 Matrices tridiagonales . . . . . . . . . . . . . . . . . . . . 72
7.5.3 Formule de Sherman-Morison . . . . . . . . . . . . . . . . 72
7.6 D´ecomposition de Choleski . . . . . . . . . . . . . . . . . . . . . 72
7.7 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
8 Analyse spectrale 75
8.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
8.2 Propri´et´es des matrices . . . . . . . . . . . . . . . . . . . . . . . 76
8.3 M´ethodes directes . . . . . . . . . . . . . . . . . . . . . . . . . . 78
8.3.1 M´ethode de Jacobi . . . . . . . . . . . . . . . . . . . . . . 78
8.3.2 R´eduction de Householder . . . . . . . . . . . . . . . . . . 80
8.3.3 Algorithme QL . . . . . . . . . . . . . . . . . . . . . . . . 82
8.3.4 Factorisation de Schur . . . . . . . . . . . . . . . . . . . . 83
8.4 M´ethode it´eratives . . . . . . . . . . . . . . . . . . . . . . . . . . 84
8.4.1 M´ethodes des puissances . . . . . . . . . . . . . . . . . . . 84
8.4.2 M´ethode de Lancz` os . . . . . . . . . . . . . . . . . . . . . 85
9 Equations int´egrales 87
9.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
9.2 Equation de Fredholm . . . . . . . . . . . . . . . . . . . . . . . . 87
9.2.1 Equation de premi`ere esp`ece . . . . . . . . . . . . . . . . 87
9.2.2 Equation de seconde esp`ece . . . . . . . . . . . . . . . . . 88
9.3 Equation de Volterra . . . . . . . . . . . . . . . . . . . . . . . . . 89
9.3.1 Equation de premi`ere esp`ece . . . . . . . . . . . . . . . . 89
9.3.2 Equation de seconde esp`ece . . . . . . . . . . . . . . . . . 89
9.4 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
A Coordonn´ees hypersph´eriques 91
113
TABLE DES MATI
`
ERES
B Les biblioth`eques BLAS et Lapack 93
B.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
B.2 Terminologie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
C La biblioth`eque GSL 95
C.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
C.2 Sous programmes . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
C.2.1 BLAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
C.2.2 fonctions simples . . . . . . . . . . . . . . . . . . . . . . . 98
C.2.3 interfaces entre GSL et le BLAS . . . . . . . . . . . . . . 98
C.2.4 Blocs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
C.2.5 S´eries de Chebyshev. . . . . . . . . . . . . . . . . . . . . . 98
C.2.6 Combinatoire . . . . . . . . . . . . . . . . . . . . . . . . . 98
C.2.7 Complexes . . . . . . . . . . . . . . . . . . . . . . . . . . 98
C.2.8 Hankel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
C.2.9 D´eriv´ees . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
C.2.10 Valeurs et vecteurs propres . . . . . . . . . . . . . . . . . 99
C.2.11 Transform´ees de Fourier . . . . . . . . . . . . . . . . . . . 99
C.2.12 Ajustements . . . . . . . . . . . . . . . . . . . . . . . . . . 99
C.2.13 Histogrammes . . . . . . . . . . . . . . . . . . . . . . . . . 100
C.2.14 IEEE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
C.2.15 Int´egration . . . . . . . . . . . . . . . . . . . . . . . . . . 100
C.2.16 Interpolation . . . . . . . . . . . . . . . . . . . . . . . . . 100
C.2.17 Alg`ebre lin´eaire . . . . . . . . . . . . . . . . . . . . . . . . 101
C.2.18 Matrices . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
C.2.19 Minimisation . . . . . . . . . . . . . . . . . . . . . . . . . 101
C.2.20 Monte Carlo . . . . . . . . . . . . . . . . . . . . . . . . . 101
C.2.21 Ajustements non-lin´eaires . . . . . . . . . . . . . . . . . . 102
C.2.22 Equations diff´erentielles . . . . . . . . . . . . . . . . . . . 102
C.2.23 Permutation . . . . . . . . . . . . . . . . . . . . . . . . . 102
C.2.24 Polynˆ omes . . . . . . . . . . . . . . . . . . . . . . . . . . 103
C.2.25 Puissances . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
C.2.26 Nombres al´eatoires . . . . . . . . . . . . . . . . . . . . . . 103
C.2.27 Racines unidimensionnelles . . . . . . . . . . . . . . . . . 103
C.2.28 Fonctions sp´eciales . . . . . . . . . . . . . . . . . . . . . . 104
C.2.29 Tris . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
C.2.30 Lissage . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
C.2.31 Statistique . . . . . . . . . . . . . . . . . . . . . . . . . . 106
C.2.32 Transform´ees de Levin . . . . . . . . . . . . . . . . . . . . 107
C.2.33 Vecteurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
114

Ce cours est une introduction aux m´thodes d’analyse num´rique tr`s lare e e gement utilis´es en physique afin de r´soudre les ´quations alg´briques ou dife e e e f´rentielles que l’on rencontre dans la mod´lisation de ph´nom`nes physiques, e e e e chimiques ou biologiques. Ce domaine particuli`rement vaste n´cessite simultan´ment des connaise e e sances math´matiques, informatiques et physiques. De larges classes de proe bl`mes num´riques sont abord´es dans ces notes et montrent la n´cessit´ de e e e e e bien caract´riser les propri´t´s math´matiques du probl`me consid´r´ afin de e ee e e ee choisir la m´thode num´rique la mieux adapt´e pour le traitement num´rique. e e e e

2

Chapitre 1

Int´gration et sommes e discr`tes e
Contenu
1.1 1.2 Introduction . . . . . . . . . . . . . . . . . . . . . . . 3 Les m´thodes de Cˆtes . . . . . . . . . . . . . . . . . e o 4 1.2.1 Trap`ze . . . . . . . . . . . . . . . . . . . . . . . . . . 5 e 1.2.2 Simpson . . . . . . . . . . . . . . . . . . . . . . . . . . 6 M´thode de Romberg . . . . . . . . . . . . . . . . . . e 7 M´thodes de Gauss . . . . . . . . . . . . . . . . . . . e 7 M´thode de Gauss-Kronrod et m´thodes adaptatives 9 e e Int´grales multiples . . . . . . . . . . . . . . . . . . . e 11

1.3 1.4 1.5 1.6

1.1

Introduction

Les sciences physiques se fixent l’objectif de pr´dire les ph´nom`nes a partir e e e ` de la connaissance d’un nombre fini de grandeurs microscopiques intervenant dans la mod´lisation. Celle-ci doit, dans un premier temps, d´crire les faits e e exp´rimentaux observ´s et, dans un second temps, permettre d’en pr´dire de e e e nouveaux. La description des ph´nom`nes peut ˆtre soit microscopique, soit e e e ph´nom´nologique. e e La mod´lisation se divise naturellement en trois ´tapes : une premi`re ´tape e e e e consiste a d´terminer les param`tres microscopiques essentiels qui interviennent ` e e pour d´crire le ph´nom`ne puis a choisir le mod`le adapt´ pour d´crire le ph´e e e ` e e e e nom`ne. La second ´tape consiste a ´tablir les ´quations (tr`s souvent diff´rene e `e e e e tielles) qui d´crivent le ph´nom`ne. La troisi`me ´tape consiste a r´soudre les e e e e e ` e ´quations pr´c´demment ´tablies afin de donner des r´ponses quantitatives. Ces e e e e e r´ponses permettent de valider ou d’invalider le mod`le, soit en comparant les e e pr´dictions avec l’exp´rience, soit en analysant la coh´rence interne du mod`le e e e e a travers ses pr´dictions. ` e Dans la situation la plus optimiste o` il a ´t´ possible de r´aliser les trois u ee e ´tapes pr´c´dentes, l’obtention d’un r´sultat num´rique n´cessite au moins le e e e e e e e e calcul d’une int´grale simple. Pour r´aliser ce ’simple’ travail, il existe bien 3

(1.4) o` K est une constante finie. b]. Cela revient a supposer que la d´riv´e de la u ` e e fonction f n’est jamais singuli`re sur le support [a. e e On peut calculer l’int´grale d’une fonction plus g´n´rale a condition que cette fonction ait e e e ` la mˆme mesure (mesure d´finie au sens de Lebesgue) qu’une fonction de classe C 1 . e 1 4 . Pour que u e l’´valuation num´rique soit correcte. on peut se ramener au cas pr´c´dent sur chaque intervalle. Roger e Cˆtes s’est int´ress´ a des m´thodes de calculs num´riques et exacts pour l’ino e e` e e t´gration et explique que les m´thodes suivantes portent son nom. b]. et donc ´valuer e e e l’int´grale sur l’ensemble de l’intervalle [a.1) par une somme e e ` e e discr`te sur un nombre fini de points. N IN = i=1 ai f (xi ) (1. La derni`re restriction impos´e a la fonction est e e e ` que |f (x)| < K ∀x ∈ [a. contemporain et collaborateur de Newton. b]2 . e 2 Si la fonction est continˆment d´rivable par morceaux sur un nombre fini d’intervalles sur u e l’intervalle [a. b] (1. b]. il est n´cessaire d’imposer que toute m´e e e e thode v´rifie que e lim IN = I (1. Il existe des logiciels e ` e e e e gratuits ou payants qui utilisent les m´thodes num´riques que nous allons rencontrer dans ce cours .1) Comme l’´valuation de la fonction f pour une infinit´ de points est impossible. e 1.3) N →∞ Au del` de la v´rification de ce crit`re Eq. citons les ensembles d´nombrables. la connaissance de ces m´thodes est donc un pr´alable e e pour choisir la mani`re de r´soudre un probl`me num´rique donn´ le plus effie e e e e cacement possible. (1. (1.3). e e e e Dans la suite nous allons consid´rer des fonctions de classe C1 1 (continˆment e u d´rivable) sur le support [a. la qualit´ d’une m´thode a e e e e sera ´valu´e par la mani`re dont la convergence vers le r´sultat exact s’effectue. Comme exemple simple e d’ensemble de mesure nulle. Ce cours a donc pour objectifs de pr´senter quelques e algorithmes associ´s a chacun des probl`mes rencontr´s. Ce principe est tr`s g´n´ral e e e e et s’applique a l’ensemble des probl`mes num´riques que nous allons aborder ` e e tout au long de ce cours.2) o` ai et xi sont des variables que nous allons pr´ciser dans la suite.2 Les m´thodes de Cˆtes e o Math´maticien anglais. c’est-`-dire e e a que les fonctions ne diff`rent que sur un ensemble de mesure nulle.Int´gration et sommes discr`tes e e souvent plusieurs m´thodes et la tˆche principale consiste a s´lectionner celle e a ` e qui est la mieux adapt´e pour satisfaire l’objectif. e e l’int´gration num´rique consiste a remplacer l’int´grale Eq. Le cas typique d’une int´grale d´finie a ´valuer est e e `e b I= a f (x)dx.

7) ` e e Les m´thodes les plus simples que l’on peut utiliser pour calculer une int´e e grale simple sont celles o` les abscisses sont choisies de mani`re r´guli`rement u e e e espac´es. Pour simplifier les notations.5 2 y 1.2 Les m´thodes de Cˆtes e o 2.1 Trap`ze e La m´thode des trap`zes consiste a approximer la fonction entre deux abse e ` cisses successives par une droite (voir Fig. ce qui donne.6) 1. (1. xi+1 f (x)dx = xi h (fi + fi+1 ) + O(h3 f ).1. i est un entier allant de 0 a N et h est appel´ le pas de ` e l’int´gration. on rep`re celles-ci simplement par la relation e e xi = x0 + ih (1. 2 (1.7) Le terme d’erreur indique la qualit´ de l’´valuation de l’int´gration et d´pend de e e e e mani`re cubique du pas d’int´gration .1 – Illustration de la m´thode des trap`zes : la partie gris´e correspond e e e a l’aire calcul´e par l’´quation (1.5 1 0 0. 1.5 1 1.5) avec x0 = a. on pose e fi = f (xi ) (1. f se r´f`re a un point situ´ a l’int´rieur e e ee ` e` e 5 .2. xN = b.1)).5 3 Fig.5 x 2 2. Si on a N + 1 abscisses.

8) o` on a utilis´ que h = (b − a)/N u e 1. Sachant que cette derni`re m´thode converge en 1/N 2 . o e Sur l’intervalle [a. en choisissant N pair. e e e e e la premi`re fois avec N points et la seconde avec 2N points.Int´gration et sommes discr`tes e e de l’intervalle. x2 ]. (1. Mais il est possible de mieux utiliser la m´thode e e e des trap`zes.10) Sur un intervalle complet. on en d´duit que la formule (1. Pour que cette m´thode converge rapidement il est n´cessaire de e e choisir un pas h inf´rieur a f . e ` On peut aussi d´terminer la formule a 4 points qui est aussi exacte pour les e ` polynˆmes de degr´ 3. b]. la m´thode de Simpson e donne une estimation de l´int´grale sur l´intervalle [a. e 6 .12) donne une estimation fonction paire de 1/N e de l’int´grale en 1/N 4 . on peut e e e ´valuer l’int´grale deux fois sur le mˆme intervalle par la m´thode des trap`zes .12) Sachant que le d´veloppement asymptotique de la m´thode des trap`zes est une e e e 2 . b].11) La m´thode de Simpson est donc de deux ordres de grandeur plus efficace e que la m´thode des trap`zes. Cette formule s’appelle aussi Simpson 3/8 a cause des o e ` coefficients du d´veloppement e xi+3 f (x)dx = h xi 9 9 3 3 fi + fi+1 + fi+2 + fi+3 8 8 8 8 + O(h5 f (4) ).2 Simpson La m´thode de Simpson consiste a remplacer la fonction par un polynˆme e ` o de degr´ 2 sur un intervalle constitu´ de trois abscisses cons´cutives e e e xi+2 f (x)dx = h xi 1 4 1 fi + fi+1 + fi+2 3 3 3 + O(h5 f (4) ). pui en combinant e les deux r´sultats de la mani`re suivante e e 4 1 S = S2N − SN 3 3 (1. et ce r´sultat redonne une ´valuation analogue a la e e e ` m´thode de Simpson.9) Il se trouve que cette formule est exacte jusqu’` des polynˆmes de degr´ 3 ce a o e qui implique que l’erreur d´pende de h a la puissance 5. (1.2. e b f (x) = a h f0 + f N + 2 3  N/2−1 i=1 (2f2i−1 + f2i ) + O  1 N4 (1. A noter que cette formule devient exacte quand e ` la fonction est un polynˆme de degr´ 1 sur l’intervalle [x1 . on a b N −1 f (x) = h a i=1 fi + h (f0 + fN ) + O 2 (b − a)3 f N2 (1.

on s´appuie sur la construction de e e polynˆmes orthogonaux. .13) Sk+1 (h) = Sk (h) + (4k − 1) Le tableau 1. cela implique que pour N points d´int´gration. ce qui augmente la pr´cision de l´´valuation sans qu’il soit e e e n´cessaire d´augmenter le nombre de points a calculer. Les m´thodes de Gauss e e utilise le fait si les abscisses et les poids sont des inconnues a d´terminer .1 – Table de Romberg 1.4 M´thodes de Gauss e Dans les m´thodes pr´c´dentes. . on pouvait grandement am´liorer la convergence de la e e e m´thode. N/2k−1 . la ` e e ` a o formule d´int´gration de Gauss a N points devient exacte jusqu’` des polynˆmes de degr´ 2N − 1. Si on calcule successivement par la m´thode des trae e e k .3 M´thode de Romberg e L’id´e de la m´thode de Romberg s’inspire directement de la remarque faite e e au paragraphe pr´c´dent. e ` Pour d´terminer ces 2N param`tres. on peut p`zes les int´grales avec un nombres de points N/2 e e rapidement avoir une estimation de l’int´grale avec une erreur en O(1/N 2k ) o` e u k est le nombre de fois que l’on a calcul´ l’int´grale.14) Quand les abscisses sont r´guli`rement espac´es. nous avons vu qu’en changeant les coeffie e e cients de pond´ration des valeurs de la fonction a int´grer aux abscisses r´e ` e e guli`rement espac´es.1 r´sume la proc´dure r´cursive employ´e dans la m´thode de e e e e e Romberg. . Pas h 2h 4h 8h Trap`zes e S1 (h) S1 (2h) S1 (4h) S1 (8h) Simpson S2 (h) S2 (2h) S2 (4h) Boole S3 (h) S3 (2h) troisi`me am´lioration e e S4 (h) Tab. N . e e e Soit W (x) une fonction strictement positive sur l´intervalle [a. Le principe de cette construction remonte a Gauss et o ` 7 .3 M´thode de Romberg e 1. 1. . on peut e obtenir une ´valuation exacte de l´int´grale jusqu’` un polynˆme de degr´ N −1 e e a o e si N est pair (trap`zes) et N si N est impair (Simpson). Les m´thodes de Gauss ajoutent aux m´thodes pr´c´dentes de poue e e e e voir utiliser des abscisses non r´guli`rement espac´es. les coefficients inconnus e e e sont les poids wi .1. La formule it´rative utilis´e e e e e est la suivante (Sk (h) − Sk (2h)) (1. appel´e e fonction de poids. on choisit une suite de points xi telle que l’int´grale soit e approch´e par une somme discr`te de la forme e e b N W (x)f (x)dx = a i=1 wi f i (1. b].

18). Eq.22) (1. on peut montrer en utilisant la relation de r´currence.17) (1. on ee e e introduit le produit scalaire de deux fonctions f et g avec la fonction de poids W par : b < f |g >≡ W (x)f (x)g(x)dx a (1.19) (1. o e e o Avec ce choix. La relation de r´currence est la suivante. Un ensemble orthonorm´ de fonctions e e est un ensemble de fonctions toutes normalis´es et orthogonales deux a deux. o Les N racines du polynˆme pN sont choisies comme abscisses dans l’´valuao e tion de l’int´grale de Gauss et les poids wi sont calcul´s a partir de la formule e e ` wi = pN −1 (xi )pN (xi ) dN < pN −1 |pN −1 > = dN −1 pN −1 (xi )pN (xi ) 1 < pN −1 | x−xi |pN −1 > (1. e p−1 (x) = 0 p0 (x) = 1 pi+1 (x) = (x − ai )pi (x) − bi pi−1 (x) avec les coefficients ai et bi d´termin´s de la mani`re suivante e e e ai = < xpi |pi > < pi |pi > < xpi |pi−1 > bi = < pi−1 |pi−1 > (1. la formule 4.22) 3 8 .16) (1. b].18) Si l’on divise chaque polynˆme par < pi |pi >1/2 . on obtient alors des polynˆmes o o normalis´s. (1. Soit un intervalle (a. e que < pi |p1 >= 0. A titre d’exemples voici les fonctions de poids classiques que l’on utilise pour calculer une int´grale par la m´thode de Gauss e e Attention.20) (1.9 de la r´f´rence[1] est incorrecte et doit ˆtre remlac´e par l’´quaee e e e tion (1. b).23) o` le symbole prime d´signe la d´riv´e du polynˆme et dn le coefficient du u e e e o monˆme le plus ´lev´ du polynˆme pN 3 . Chaque racine du polynˆme pi se trouve entre deux racines cons´cutives o e du polynˆme pi+1 .21) (1. La fonction est normalis´e quand < f |f >= 1. e ` On peut construire de mani`re syst´matique une suite de polynˆmes telle e e o que le coefficient du monˆme de degr´ le plus ´lev´ soit ´gal a un et telle qu’ils o e e e e ` soient tous orthogonaux.5.15) Les fonctions sont dites orthogonales si leur produit scalaire est nul. e Une propri´t´ fondamentale de ces polynˆmes ainsi construits est la suiee o vante : Le polynˆme pi a exactement j racines distinctes plac´es sur l’intervalle o e [a.Int´gration et sommes discr`tes e e Jacobi et a ´t´ largement d´velopp´ par Christoffel.

29) (1. ei et fi sont donn´s par les relations u e ci = 2(i + 1)(i + α + β + 1)(2i + α + β) di = (2i + α + β + 1)(α − β ) 2 2 (1. La relation de r´currence pour les polynˆmes de Jacobi est e o ci Pi+1 = (di + ei x)Pi (α. +∞[. e 4 9 . La relation e de r´currence pour les polynˆmes d’Hermite est e o Hi+1 = 2xHi − 2iHi−1 (1. 1].β) (1.27) o` les coefficients ci . 1[.31) ei = (2i + α + β)(2i + α + β + 1)(2i + α + β + 2) fi = 2(i + α)(i + β)(2i + α + β + 2) On peut utiliser des fonctions de poids qui sont int´grables sur l´intervalle. 1]. La relation e o de r´currence pour les polynˆmes de Laguerre est α (i + 1)Lα = (−x + 2i + α + 1)Lα − (i + α)Li−1 i+1 i (1.26) – Gauss-Jacobi La fonction de poids est W = (1 − x)α (1 + x)β sur l’intervalle ] − 1.32) 1.1.30) (1.24) – Gauss-Hermite La fonction de poids est W = exp(−x2 ) sur la droite r´elle. e e e – Gauss-Chebyshev4 La fonction de poids est W = (1 − x2 )−1/2 sur l’intervalle [−1. di . e o Ti+1 = 2xTi − Ti−1 (1. La relation de r´currence pour les polynˆmes de Legendre est e o (i + 1)Pi+1 = (2i + 1)xPi − iPi−1 (1.28) (1. son nom est g´n´ralee c e e ment orthographi´ Tchebytchev. puisqu´il s’agit d´une traduction phon´tique.5 M´thode de Gauss-Kronrod et m´thodes adape e tatives Pour d´terminer la pr´cision num´rique d’une int´grale. il est n´cessaire de e e e e e faire deux ´valuations diff´rentes et d’utiliser la formule de Romberg pour obtee e nir une estimation de la pr´cision.25) – Gauss-Laguerre La fonction de poids est W = xα e−x sur l’intervalle [0. e sans ˆtre n´cessairement born´es.5 M´thode de Gauss-Kronrod et m´thodes adaptatives e e – Gauss-Legendre La fonction de poids est W = 1 sur l’intervalle [−1. Avec une m´thode de Cˆtes. En Fran¸ais. dans lesquelles e e o Pafnuty Lvovich Chebyshev (1821-1894) a un nom dont l´orthographe varie un peu selon les langues.β) (α.β) − fi Pi−1 (α. La relation de r´currence pour les polynˆmes de Chebyshev.

40) . x)dx 10 (1. on le syst`me d’´quation e o e e e 1 G(n + p.34) et h(x) = bk xk k=0 (1.. x) = i=1 ai P (2i − 2. Notons G(p + n. x)dx = 0 −1 (1. on peut sans effort de calcul suppl´e e e e mentaire (essentiellement le coˆt provient de l’´valuation de la fonction aux u e diff´rentes abscisses) obtenir une ´valuation de l’int´grale en utilisant un point e e e sur deux. x)P (k. x)P (n.. x)h(x)dx = 0 −1 (1. x)P (n. x)P (k.. on a K(n + 1.35) On impose les poids pour la nouvelle formule telle que g(x) soit int´gr´e exace e tement.36) Comme tout polynˆme de degr´ p − 1 peut s’exprimer comme une combinaison o e lin´aire de Polynˆme de Legendre de degr´ p − 1. Dans une m´thode e de Gauss.37) avec k = 0. x) = K(n + 1. x) (1.33) ak xk p−1 (1. .. x) qui e u est une fonction paire et se d´compose sur les polynˆmes de Legendre comme e o n+3 2 K(n + 1. x)P (n...39) Les coefficients ai sont calcul´s par les relations e n+3 2 1 ai i=1 −1 P (2i − 2.38) avec k = 0. 1. Un polynˆme de e o degr´ n + 2p − 1 peut s’exprimer sous la forme e f (x) = G(n + p)h(x) + g(x) o` u g(x) = k=0 n+p−1 (1.p − 1. 1. on note G(2n + 1. x)dx = 0 −1 (1.1) est alors donn´e par e 1 K(n + 1. . math´maticien russe a montr´ que l’on peut choisir un polynˆme de n + p dont n racines sont les racines du polyo nˆme de Gauss. x) le polynˆme de degr´ p + n dont les racines o o e correspondent aux n + p abscisses de la formule d’int´gration.Int´gration et sommes discr`tes e e les abscisses sont r´guli`rement espac´s. Consid´rant le cas o` n est impair. les z´ros de d’un polynˆme de Gauss ne coˆ e o ıncident jamais avec ceux o e ee e e e d’un polynˆme de degr´ plus ´l´v´. x). Cette condition s’exprime de la mani`re suivante e 1 G(n + p. La condition Eq (2. Kronrod. ce qui donne une estimation pour un pas double. x)P (k.p − 1 Si p = n + 1.

(http ://pascal.viot. .6 Int´grales multiples e pour k = 1. Si la fonction varie rapidement dans un intervalle restreint de l’ensemble du domaine d’int´gration. Par exemple dans un espace a trois dimensions. . n (on choisit a0 = 1). e e par exemple la sym´trie sph´rique dans un espace de dimension d.1.com) e 11 . il est pr´f´rable d’augmenter e ee la pr´cision du calcul dans cette r´gion que sur la totalit´ de l’intervalle. Si la fonction poss`de une sym´trie importante.6 Int´grales multiples e Le probl`me de l’´valuation des int´grales multiples est ´troitement li´ a la e e e e e` difficult´ de l’´valuation num´rique d’un tr`s grand nombre de points pour la e e e e fonction consid´r´e. les ´quations restantes permettent d’´valuer les coefficients e e ai (cette m´thode s’appelle m´thode de Patterson). . on compare l’estimation de l’erreur par rappport a la tol´rance ` e oppos´e et de proc´der a une nouvelle division de l’intervalle dans les r´gions e e ` e les plus difficiles. on peut ramee e e e ner le calcul de l’int´grale de dimension n a celui d´une int´grale de dimension e ` e n << n o` les m´thodes pr´c´dentes peuvent encore s’appliquer. u e e e Dans le cas o` il n’existe pas de sym´trie. 1. la m´thode la plus efficace est la u e e m´thode dite de Monte Carlo dont le principe est d´crit dans le cours Simulation e e num´rique en Physique Statistique. Les e e e m´thodes adaptatives consistent donc a couper le segment en deux et ´valuer e ` e chaque partie. e e Les m´thodes adaptatives partent du principe que l’erreur commise dans e le calcul de l’int´grale d´pend souvent de la portion du segment o` les ´valuae e u e tions de fonctions sont faites. on peut se e e ramener de mani`re analytique a une int´grale a une dimension (Voir appendice e ` e ` A). . Pour k pair. en utilisant une sym´trie de la fonction. ces ´quations sont automatie quement satisfaites. De mani`re g´n´rale. si on utilise ee ` e 30 points dans chacune des directions. il est n´cessaire de calculer la fonction pour 303 points. La situation s’aggrave tr`s rapidement quand la dimension de e l’espace augmente ! Le calcul des int´grales multiples est n´anmoins possible e e dans un certain nombre de cas.

Int´gration et sommes discr`tes e e 12 .

. . . . . .5. . . e e 2. . . . .1 Introduction Les fonctions sp´ciales sont d´finies de mani`re assez impr´cise. . . . . . . . . . 13 14 14 Fonctions transcendantes simples . . . . . . . . .. . . . . Parmi ces fonctions.5. . . . . . . puisqu’elles e e e e regroupent les fonctions que l’usage (ou la fr´quence d’utilisation) a fini par ase socier a un nom. . 2. . 16 e 18 20 2.4 2. . . . . . . . . 20 e e e e e 21 22 .1 2. .7 Fonction erreur.). .1 2. . exponentielle int´grale . .6 2. . . . . . .1 2. . .. . . . . . Dans la suite de ce cours. e Conclusion 2. . . . . Les fonctions sp´e ciales sont disponibles en programmation sous la forme de biblioth`ques. . . . . . . . . . . . . . B .Chapitre 2 Fonctions sp´ciales et e ´valuation de fonctions e Contenu 2. . car elles appaee e raissent tr`s souvent.3. . .5 Fonctions de Bessel . . . . . . . .2 Fonction Hyperg´om´trique Gaussienne . . . .2 D´finition et propri´t´s . . . . . . . . Ces fonctions sont toutefois tr`s utiles. . nous allons d´finir une partie d’entre elles et d´crire les m´thodes num´riques utilis´es dans e e e e e les biblioth`ques de programmes pour le calcul de ces fonctions. . . 20 e e Fonctions Hyperg´om´triques g´n´ralis´es . d`s que l’on cherche a r´soudre des ´quations diff´rentielles e e ` e e e du second ordre dont les coefficients ne sont pas constants.3. . . . . . . . .3 Introduction . . . . . . . . . . . . . . . 14 e ee Fonctions reli´es : Ψ.2 2. . Fonction Gamma . . . . . . 2. . . on trouve un grand nombre de fonctions ` qui sont des solutions d’´quations diff´rentielles du second ordre. e 13 . . Fonctions Hyperg´om´triques . . Elles e e sont aussi d´finies pour un grand nombre d’entre elles dans les logiciels de calcul symbolique (Maple. . . . . . . . . . . sans que cette e e propri´t´ soit exclusive. . .. . . . . Mathematica. . .

Fonctions sp´ciales et ´valuation de fonctions e e 20 15 10 5 Γ(x) 0 -5 -10 -15 -20 -4 -3 -2 -1 0 1 2 3 4 Fig. la soustraction.1 – La fonction Γ(x) en fonction de x. arcsin) ainsi que leurs fonctions ine verses. voire de second e cycle universitaire. la multiplication et la division. arccos.1) quand la partie r´elle de z est strictement positive.2 Fonctions transcendantes simples Les fonctions les plus simples que l’on rencontre lors de l’apprentissage des math´matiques sont tout d’abord les monˆmes. et enfin les e o o fractions rationnelles. puis les polynˆmes.3. Les premi`res fonctions transcendantes que l’on rencontre sont alors les fonce tions trigonom´triques (sin. 2. 2.3 2.1 Fonction Gamma D´finition et propri´t´s e e e La fonction Gamma est g´n´ralement d´finie par l’int´grale suivante e e e e ∞ Γ(z) = 0 tz−1 e−t dt (2. Les fonctions exp et log repr´sentent g´n´ralement le reste de l’arsenal e e e des fonctions transcendantes d´finies dans un cursus de premier. e 14 . Re(z) > 0). cos. Le calcul de la valeur de la fonction pour un argument r´el ou complexe n´cessite un nombre fini des quatre op´rations ´l´mentaires e e e ee que sont l’addition. 2.tan.

Tous les nombres qui interviennent dans ce calcul sont exponentiellement plus petits que ceux qui apparaissent dans un calcul direct.1)).1).4) (2. e e 15 . Chacun des termes peut ˆtre tr`s impore e e tant. D’apr`s l’´quation (2.3 Fonction Gamma La formule d’Euler donne une expression de la fonction Γ pour toute valeur de z complexe hormis les valeurs de z enti`res n´gatives o` la fonction poss`de e e u e des pˆles : o n!nz Γ(z) = lim (2. mais le rapport est souvent un nombre relativement modeste. on a | | < 2. Cela r´sulte de la croissance tr`s rapide de la fonction Γ.10−10 . + + z+1 z+2 z+N o` est le param`tre estimant l’erreur. la fonction Γ apparaˆ comme un prolongement analytique e ıt de la fonction factorielle d´finie sur N.. La formule la plus pr´cise est celle de Lancz`s. la fonction Γ a e e e un pˆle en 0 et pour toutes les valeurs enti`res n´gatives (voir Fig. . N = 6 u e et c0 tr`s voisin de 1. (z + n) En int´grant par parties l’´quation (2. la fonction Γ apparaˆ a la fois au num´rateur ıt ` e et au d´nominateur d’une expression. il est n´cessaire de d´velopper cette fonction sur la base des polynˆmes et o e e o des exponentielles. .2). La formule qui s’inspire de la formule de e ` Stirling bien connue pour la fonction factorielle n’est valable que pour Re(z) > 0 et est donn´e par e Γ(z + 1) = × 1 z+γ+ 2 √ 2π c0 + 1 z+ 2 e−(z+γ+ 2 ) (2. e Il est difficile de calculer la fonction Γ pour des valeurs de z un peu importantes. Dans de nombreuses formules. Ce d´velope o e pement est sp´cifique a la fonction Γ. comme de maıt ni`re analogue on montre que l’exponentielle croˆ plus vite que tout polynˆme.. on obtient par r´currence que e e Γ(n + 1) = n! (2.5) Pour calculer num´riquement la fonction Γ pour une valeur de z en dehors des e pˆles. Ainsi la fraction est alors l’exponentielle de la diff´rence de deux e logarithmes. On peut e e montrer que la fonction Γ croˆ plus vite que toute exponentielle. e ıt o On dit parfois que la fonction Γ a une croissance super-exponentielle.2) n→∞ z(z + 1) . on peut facilement montrer que e e Γ(z + 1) = zΓ(z) En v´rifiant que Γ(1) = 1.6) 1 c2 cN c1 + + . il est pr´f´rable de calculer ln(Γ(z)) (voir e ee Fig. o e e La formule suivante permet de relier la fonction entre les valeurs situ´es e u u dans le demi-plan complexe o` Re(z) > 1 et celui o` Re(z) < 1 : Γ(1 − z) = π Γ(z) sin(πz) (2. Pour calculer num´riquement ce type d’expression. Pour le choix particulier γ = 5. (2.2). on ´vite e ainsi le d´passement de capacit´ de l’ordinateur.2. 2.3) Avec cette d´finition.

2 – La fonction ln(Γ(x)) en fonction de x. x) = 0 ta−1 e−t dt (2.2 Fonctions reli´es : Ψ. x) = γ(a.3. appel´e aussi fonction Digamma est d´finie comme la d´riv´e logarithmique e e e e Noter que dans le logiciel Maple. 2. La variation e ` e e entre ces deux valeurs apparaˆ autour de l’abscisse a − 1 et sur une largeur de ıt √ l’ordre de a (voir figure 2.7) La fonction normalis´e suivante P (a.3). 2. On peut montrer que e e P (a. la fonction e c Ψ.Fonctions sp´ciales et ´valuation de fonctions e e 20 15 ln(Γ(x) 10 5 0 0 2 4 x 6 8 10 Fig. En raison de e e e leur grande fr´quence d’utilisation. e 1 16 . la fonction Gamma et les fonctions Gamma incompl`tes e sont les seules fonctions d´finies avec des lettres capitales. x) Γ(a) (2. x) est monotone croissante avec x. La fonction est tr`s proche de 0 quand e x est inf´rieur a a − 1 et proche de 1 quand x est tr`s sup´rieur. Ainsi. x) e P (a. B e A partir de la fonction Γ. On d´finit la fonction γ incompl`te1 comme e e x γ(a. elles ont “re¸u” un nom.8) est parfois appel´e aussi fonction Gamma incompl`te. on d´finit des fonctions d´riv´es.

x) 0. est la constante d´Euler. pour des ee valeurs enti`res. 2. on a e n−1 Ψ(n) = −γ + i=1 1 i (2. x) en fonction de x pour trois valeurs de a (a = 1. de la fonction Gamma2 : Ψ(x) = d ln(Γ(x)) dx (2.3 Fonction Gamma 1 0. 10). . .12) 2 On d´finit aussi les fonctions polygamma comme une g´n´ralisation de la fonction Die e e gamma dn Ψ(x) Ψ(n.11) o` γ = 0.577 .3 – La fonction P (a. x) = (2.8 a=1 a=3 a=10 0.4 0. notons que.10) Parmi les propri´t´s remarquables de la fonction Ψ. 3.6 P(a.2. u Les fonctions Beta qui sont not´es paradoxalement avec un B sont d´finies e e par la relation : B(z.2 0 0 2 4 6 x 8 10 12 14 Fig.9) dxn 17 . w) = Γ(z)Γ(w) Γ(z + w) (2.

dans les logiciels de calcul symboe e lique comme Maple et dans un logiciel graphique comme xmgrace. Ces fonctions sont pr´sentes dans toutes les biblioe e e e th`ques math´matiques de programmation.4 repr´sente graphiquement les fonctions de Bessel de premi`re e e et de seconde esp`ces pour les quatre premi`res valeurs enti`res de ν e e e Le comportement asymptotique des fonctions de Bessel de premi`re et de e 18 .4 – Les quatre premi`res fonctions de Bessel enti`res de premi`re ese e e p`ce et de deuxi`me esp`ce. Si ν n’est pas un entier.13) Les solutions de cette ´quation sont appel´es fonctions de Bessel de premi`re e e e et de deuxi`me esp`ce : La solution finie a l’origine et not´e Jν (x) est appel´e e e ` e e fonction de Bessel de premi`re esp`ce et la seconde solution not´e Y ν (x) est e e e appel´e fonction de Bessel de deuxi`me esp`ce.14) La figure 2.Fonctions sp´ciales et ´valuation de fonctions e e 1 0.5 0 Yν(x).5 J0 J1 J2 J3 Y0 Y1 Y2 Y3 -2 0 2 4 x 6 8 10 Fig.5 -1 -1.Jν(x) -0. 2. ces e e e fonctions sont reli´es par la relation suivante : e Yν (x) = Jν (x) cos(νπ) − J−ν (x) sin(νπ) (2. 2.4 Fonctions de Bessel Les fonctions de Bessel sont d´finies de la mani`re suivante : consid´rons e e e l’´quation diff´rentielle du second ordre e e x2 y + xy + (x2 − ν 2 )y = 0 (2.

15) (2. e e e e e 19 . Ces fonctions sont reli´es par la relation e e e suivante : π(Iν (−x) − Iν (x)) (2. Ces fonctions sont pr´sentes dans toutes les bie e e e blioth`ques math´matiques de programmation.5 0 I0 I1 I2 I3 K0 K1 K2 K3 0 2 x 4 Fig.Iν(x) 2 1. 2.5 Kν(x).2.5 – Les quatre premi`res fonctions de Bessel enti`res modifi´es de pree e e mi`re et de deuxi`me esp`ce.5 repr´sente graphiquement les fonctions de Bessel modifi´es de e e premi`re et de deuxi`me esp`ce pour les quatre premi`res valeurs enti`res de ν.5 1 0.16) Soit l’´quation diff´rentielle du second ordre e e x2 y + xy − (x2 − ν 2 )y = 0 (2. La e e e solution finie a l’origine et not´e Iν (x) est appel´e fonction de Bessel modifi´e ` e e e de premi`re esp`ce et la seconde solution not´e Kν (x) est appel´e fonction de e e e e Bessel modifi´e de seconde esp`ce. dans les logiciels de calcul syme e bolique comme Maple et dans un logiciel graphique comme xmgrace.17) Les solutions de cette ´quation sont appel´es fonctions de Bessel modifi´es . seconde esp`ce est le suivant e Jν (x) Yν (x) 2 (cos(x − νπ/2 − π/4)) πx 2 (sin(x − νπ/2 − π/4)) πx (2.4 Fonctions de Bessel 4 3.18) Kν (x) = 2 sin(νπ) La figure 2.5 3 2.

. . c.z = b1. D`s que a.ν and H2. .5.5. 2.1 Fonctions Hyperg´om´triques e e Fonction Hyperg´om´trique Gaussienne e e Les fonctions hyperg´om´triques gaussiennes sont d´finies comme ´tant les e e e e e e solutions de l’´quation diff´rentielle suivante. 1. . . a − b et c − a − b sont non entiers.ν sont appel´es fonctions de Bessel de e troisi`me esp`ce et sont d´finies par la relation e e e H1. . z) = Γ(c) Γ(a)Γ(b) ∞ n=0 Γ(a + n)Γ(b + n) z n Γ(c + n) n! (2.24) La fonction F peut ˆtre exprim´e sous la forme d’une s´rie e e e F (a. z) = −z 2. b. la solution g´n´rale de cette ´quation e e e est y = F (a.25) Cette s´rie converge uniform´ment a l’int´rieur du disque unit´. b2 . ap . b. b − c + 1.21) (2. x) (2. x) + Bx1−c F (a − c + 1.27) .ν (x) =Jν (x) + iYν (x) H2.20) Les fonctions de Hankel H1. .23) u o` a. (ap )k xk (b1 )k (b2 )k .ν (x) =Jν (x) − iYν (x) (2.22) 2. a2 . (bq )k k! (2. Si c. b.19) (2. bq ∞ k=0 (a1 )k (a2 )k .26) o` on a utilis´ la notation de Pochhammer u e (a)k = Γ(a + k) Γ(a) 20 (2. la fonction hyperg´om´trique peut se r´duire a une fonction e e e ` −1 ln(1 − z) transcendante plus simple.5 2. . . . b e e ` e e e ou c sont entiers.Fonctions sp´ciales et ´valuation de fonctions e e Le comportement asymptotique des fonctions de Bessel modifi´es est le suie vant : Iν (x) Kν (x) ez √ 2πx π −z e 2x (2. c. b et c sont des constantes. x(1 − x)y + [c − (a + b + 1)x]y − aby = 0 (2. 2 F1 (1. Par exemple. . 2 − c. z) ≡ 2 F1 (a.2 Fonctions Hyperg´om´triques g´n´ralis´es e e e e e On d´finit des fonctions hyperg´om´triques g´n´ralis´es de la mani`re suie e e e e e e vante : soit le rapport p Fq a1 . c. .

exponentielle int´grale e La fonction erreur et la fonction erreur compl´mentaire sont d´finies comme e e x 2 2 e−t dt erf (x) = √ π 0 erf c(x) = 1 − erf (x) ∞ 2 2 =√ e−t dt π x (2.30) (2.29) La fonction erf est aussi pr´sente dans toutes les biblioth`ques standard de e e programmation. 2. dans les logiciels de calcul symbolique comme Maple et dans un logiciel graphique comme xmgrace.2. La fonction exponentielle int´grale Ei est d´finie comme la valeur principale e e de l´int´grale suivante pour x > 0. exponentielle int´grale e 4 E1 E2 E3 E4 3 En(x) 2 1 0 0 1 2 x 3 4 Fig. 2.6 – Les quatre premi`res fonctions exponentielles int´grales (fonctions e e En . Ces fonctions sont pr´sentes dans toutes les biblioth`ques math´matiques e e e de programmation.31) = −∞ et t 21 .6 Fonction erreur.28) (2.6 Fonction erreur. e ∞ Ei(x) = − x −x e−t dt t (2.

33) De mani`re g´n´rale. . e les fonctions de Fresnel. on d´finit les exponentielles int´grales E n (x) comme e e e e e ∞ En (z) = 1 e−zt dt tn (2. les fonctions de Meier. x) (2. il e e e existe de nombreuses autres fonctions dites sp´ciales : les fonctions elliptiques.. −x) (2. x (2.Fonctions sp´ciales et ´valuation de fonctions e e Le d´veloppement en s´rie de cette fonction donne e e ∞ Ei(x) = γ + ln(x) + n=1 xn n n! (2.37) 2.6 repr´sente les quatre premi`res exponentielles int´grales.32) Pour des grandes valeurs de x.35) La fonction Ei (1. on a le d´veloppement asymptotique suivant e Ei(x) ex x 1 1 + . Le d´veloppement de biblioe th`ques qui permettent de calculer les valeurs de ces fonctions est un secteur e tr`s actif et nous disposerons dans les ann´es futures de biblioth`ques encore e e e plus performantes. Le d´e e e e veloppement en s´rie de cette fonction donne e ∞ E1 (x) = −(γ + ln(x)) + (−1)n n=1 xn n n! (2. e e on a Ei (x) = −Ei (1.36) On peut noter que les exponentielles int´grales En (x) sont reli´es a la fonce e ` tion γ par la relation En (x) = xn−1 γ(1 − n.. 22 . ..34) La Figure 2. .7 Conclusion Cette introduction aux fonctions sp´ciales est tr`s loin d’ˆtre exhaustive . x) n´est d´finie que pour des arguments r´els : Pour x < 0.

Chapitre 3

Racines d’´quations e
Contenu
3.1 3.2 3.3 Introduction . . . . . . . . . . . . . . . . . . . Dichotomie . . . . . . . . . . . . . . . . . . . . M´thode de Ridder . . . . . . . . . . . . . . . e 3.3.1 M´thode de la position fausse . . . . . . . . . e 3.3.2 M´thode de Ridder . . . . . . . . . . . . . . . e 3.4 M´thode de Brent . . . . . . . . . . . . . . . . e 3.5 Newton-Raphson . . . . . . . . . . . . . . . . . 3.6 Racines de Polynˆmes . . . . . . . . . . . . . o 3.6.1 R´duction polynomiale . . . . . . . . . . . . . e 3.6.2 M´thode de Laguerre . . . . . . . . . . . . . e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 24 25 25 26 27 27 28 28 29

. .

. .

3.1

Introduction

L’une des tˆches rencontr´es fr´quemment lors d’un calcul est la recherche a e e e e e e e de la racine d’une ´quation. Sans perte de g´n´ralit´, on peut toujours ´crire une ´quation o` le membre de droite est ´gal a z´ro, e u e ` e f (x) = 0 (3.1)

Si x est une variable scalaire, le probl`me est unidimensionnel. Si x est une e variable vectorielle (` N dimensions) et que l’on a N ´quations a satisfaire, on a e ` peut formellement ´crire sous une notation vectorielle e f (x) = 0 (3.2)

Malgr´ la similarit´ des ´quations (3.1) et (3.2), un syst`me d’´quations a N e e e e e ` variables est consid´rablement plus compliqu´ a r´soudre qu’un syst`me unidie e` e e mensionnel. La raison vient du fait que la m´thode g´n´rale pour la recherche de e e e racines est li´e a la capacit´ d’encadrer num´riquement la r´gion o` le syst`me e ` e e e u e e e e d’´quations poss`de une racine particuli`re. On exclut de ce chapitre le cas des syst`mes lin´aires qui sera trait´ dans e e e le chapitre de l’alg`bre lin´aire. Le principe dominant la recherche de racines e e 23

Racines d’´quations e

d’´quations est celui de m´thodes it´ratives, o` en partant d’une valeur d’essai e e e u (ou un couple de valeurs d’essai), on s’approche de plus en plus pr`s de la e solution exacte. Il est ´vident qu’une estimation de d´part raisonnable associ´e e e e a une fonction f qui varie suffisamment lentement est n´cessaire pour obtenir ` e une convergence vers la solution recherch´e. e e e Nous allons consid´rer le probl`me unidimensionnel pour lequel plusieurs m´thodes sont disponibles afin de choisir la m´thode la mieux adapt´e compte e e e tenu des informations que l’on dispose sur la fonction f . Une derni`re partie de e ce chapitre sera consacr´e aux m´thodes plus sp´cifiques pour la recherche de e e e racines de polynˆmes o

3.2

Dichotomie

Comme nous l’avons mentionn´ ci-dessus, la cl´ de la recherche de racines e e d’´quations repose sur l’existence d’un encadrement pr´alable de cette racine. e e S’il existe un couple (a, b) tel que le produit f (a)f (b) < 0 et si la fonction est continue, le th´or`me de la valeur interm´diaire nous dit que fonction s’annule e e e au moins une fois a l’int´rieur de cet intervalle. ` e La m´thode de dichotomie est une m´thode qui ne peut pas ´chouer, mais e e e sa rapidit´ de convergence n’est pas la meilleure en comparaison avec les autres e m´thodes. L’id´e de cette m´thode est la suivante : soit une fonction f monotone e e e sur un intervalle [a0 , b0 ] telle que f (a0 )f (b0 ) < 0 , on sait alors qu’il existe une et une seule racine comprise dans cet intervalle. L´algorithme de la m´thode de dichotomie est le suivante : tout d’abord, e on calcule f ( a0 +b0 ). 2 – Si f ( a0 +b0 )f (a0 ) < 0, on d´finit un nouvel encadrement de la racine par e 2 le couple (a1 , b1 ) tel que a1 = a 0 a0 + b0 b1 = . 2 (3.3) (3.4)

– Si f ( a0 +b0 )f (a0 ) > 0, alors on d´finit un nouvel encadrement de la racine e 2 par le couple (a1 , b1 ) tel que a1 = a0 + b0 2 b1 = b0 . (3.5) (3.6)

En it´rant cette m´thode, on obtient une suite de couple (an , bn ) telle que e e e n = bn − an v´rifie la relation
n+1

=

n

2

(3.7)

o` 0 = (b0 − a0 )/2 Cela signifie que si l’on se fixe la tol´rance qui repr´sente u e e la pr´cision a laquelle on souhaite obtenir la racine, on a un nombre d’it´rations e ` e a effectuer ´gal a ` e ` |b0 − a0 | (3.8) n = ln2 24

3.3 M´thode de Ridder e

o` la notation ln2 signifie le logarithme en base 2. u Le choix de la valeur de la tol´rance n´cessite quelques pr´cautions. Si la e e e racine recherch´e est de l’ordre de l’unit´, on peut tr`s raisonnablement choisir 0 e e e de l’ordre de 10−6 a 10−13 selon que l’on travaille en simple ou double pr´cision. ` e Par contre pour une racine dont la valeur est de l’ordre de 1010 , une pr´cision e −4 sera la valeur maximale que l’on peut atteindre en double pr´cision. de 10 e Inversement, pour une racine proche de z´ro, la pr´cision peut ˆtre meilleure e e e que 10−14 .

3.3
3.3.1

M´thode de Ridder e
M´thode de la position fausse e

La m´thode de dichotomie sous-exploite le fait que l’on peut mieux utiliser la e fonction a l’int´rieur de l’encadrement effectu´ a chaque it´ration. La m´thode ` e e` e e de la position fausse approche la fonction de mani`re lin´aire dans l’intervalle e e consid´r´. ee Soit la droite y = cx+d passant par f (a0 ) et f (b0 ) en a0 et b0 respectivement, on obtient facilement que f (b0 ) − f (a0 ) b0 − a0 b0 f (a0 ) − a0 f (b0 ) d= b0 − a0 c= (3.9) (3.10)

La nouvelle abscisse estim´e pour la racine de l’´quation est donn´e par y = e e e cx + d = 0, ce qui donne x=− d c a0 f (b0 ) − b0 f (a0 ) = f (b0 ) − f (a0 ) (3.11) (3.12)

soit encore

x = a0 − (b0 − a0 )

f (a0 ) f (b0 ) − f (a0 ) f (b0 ) = b0 − (b0 − a0 ) f (b0 ) − f (a0 )

(3.13) (3.14)

On reprend a ce stade le principe de l’algorithme pr´c´dent si f (x)f (a 0 ) > 0 ` e e alors a1 = x b1 = b0 sinon a1 = a 0 b1 = x La figure 25 (3.17) (3.18) (3.15) (3.16)

19) La solution positive est donn´e par e z= f (x) + sgn(f (x)) f (x)2 − f (a0 )f (b0 ) f (b0 ) (3. x4 ] comme nouvel encadrement. On ´value la fonction au point x3 = 2 et on r´sout e l’´quation en z e f (a0 ) − 2f (x)z + f (b0 )z 2 = 0 (3. b]. sinon si on consid`re le produit f (a0 )f (x4 ) . e e e 26 . On e it`re ensuite le proc´d´. sinon on prend [x4 . x4 ]. on obtient une approximation de la racine. e ` mais a f (a0 ). f (x3 ) et f (b0 ).. notons que x4 est toujours situ´e a l’int´rieur ee e ` e de l’intervalle [a0 . Les lignes en e pointill´ correspondent aux interpolations lin´aires. A partir de l’encadrement e e rep´r´ par les points 1 et 2. 3. e si celui est n´gatif. b0 ]. le nouvel encadrement est [a0 .2 M´thode de Ridder e Une variante de la m´thode pr´c´dente qui est tr`s efficace est bas´e sur e e e e e a0 +b0 e l’algorithme suivant. f (x3 )z et f (b0 )z 2 .5 3 Fig..3.1 – Sch´ma illustrant le principe de la position fausse.Racines d’´quations e 2 4 2 3 0 4 1 -2 0 0. on prend l´intervalle e [x3 . Si le produit f (x3 )f (x4 ) est n´gatif. le processus it´ratif conduit aux points 3. ` not´e x4 et donn´e par e e x4 = x3 + (x3 − a0 ) sgn(f (a0 ) − f (b0 ))f (x) f (x)2 − f (a0 )f (b0 ) (3.20) En appliquant la m´thode de la position fausse non pas a f (a0 ).5 2 2.5 1 1. puis 4.21) Parmi les propri´t´s remarquables. ee e 3.

5 Newton-Raphson Toutes les m´thodes pr´c´dentes ne n´cessitaient que la connaissance de la e e e e fonction en diff´rents points de l’intervalle encadrant la racine. ` e e Les it´rations successives de la m´thode de Newton-Raphson sont bas´es sur e e e le d´veloppement limit´ de la fonction autour d’un point e e f (x + δ) = f (x) + f (x)δ + 27 f (x) 2 δ + . e e La m´thode de Newton-Raphson n´cessite de plus que la fonction f dont e e on cherche a d´terminer une racine. e e e 3.22) comme e e x=b+ o` P et Q sont donn´s par u e P = S[T (R − T )(c − b) − (1 − R)(b − a)] (3..29) . b est une premi`re estimation de la racine et Q une petite correce P tion. soit d´rivable au voisinage de celle-ci. S et T s’expriment comme u R= f (b) f (c) f (b) S= f (a) f (a) T = f (c) (3.28) P En pratique.26) (3. f (c)) la formule d’interpolation est donn´e par e x= (y − f (a))(y − f (b))c (f (c) − f (a))(f (c) − f (b)) (y − f (b))(y − f (c))a (y − f (c))(y − f (a))b + + (f (a) − f (b))(f (a) − f (c)) (f (b) − f (c))(f (b) − f (a)) P Q (3. seule une hypoth`se de e continuit´ est n´cessaire. on peut ´crire l’´quation (3. f (a)). et l’interpolation quadratique inverse. Sous r´serve e e que la variation de la fonction ne soit pas trop rapide. Cela n´cessite de connaˆ e ıtre trois valeurs de la fonction f dont la racine est a d´terminer. Soit (a.4 M´thode de Brent e Le principe de cette m´thode est de combiner les avantages des m´thodes e e pr´c´demment expos´es en utilisant.25) (3. et (c. 2 (3. la e e e dichotomie. f (b)).3. le principe de l’encadrement de la racine..27) (3.22) En choisissant y = 0. Quand Q → 0 la valeur de Q peut devenir tr`s grande et l’it´ration par la e e m´thode de Brent est remplac´e par une it´ration de dichotomie.24) (3. ` e (b.23) Q = (T − 1)(R − 1)(S − 1) o` R.4 M´thode de Brent e 3.

on peut n´gliger les termes non lin´aires et une e e estimation de la racine est donn´e par f (x + δ) = 0. sous peine que l’estimation de δ devienne tr`s grande et ne permette pas a la m´thode de converger. e ` e Si les conditions pr´c´demment ´nonc´es sont v´rifi´es. Successivement. on a une m´thode e e e e e e e qui converge de mani`re quadratique.31) f (xi ) En posant i+1 = xi+1 − x. o` x est la racine exacte. e on obtient 2 f (xi ) (3. la m´thode de Newton-Raphson se r´duit a une m´thode d’ine e ` e tersection et la convergence de celle-ci est moins rapide que la convergence quadratique. e e A noter que si la d´riv´e de la fonction n’est pas connue analytiquement. th´oriquement. e e l’´valuation num´rique de sa d´riv´e est possible par une formule d’accroissee e e e ment f (x + ∆x) − f (x) (3.33) i+1 = − i 2f (xi ) La m´thode converge donc tr`s rapidement par comparaison avec les m´thodes e e e pr´c´dentes. une fois obteu o e e nue une premi`re racine.34) f (x) ∆x Dans ce cas.Racines d’´quations e Si δ est suffisamment petit.6. 3. e En effet.35) o` Pn−1 (x) est un polynˆme de degr´ n−1. on peut recommencer la recherche d’une autre racine e pour une polynˆme de degr´ strictement inf´rieur.30) On voit imm´diatement qu’il est n´cessaire que la d´riv´e de la fonction ne e e e e s’annule pas dans le voisinage de x.32) Si on utilise un d´veloppement limit´ de f au deuxi`me ordre au point xi (ce e e e qui suppose que la fonction est deux fois d´rivable au voisinage de la racine). Si on obtient une premi`re racine. la relation de r´currence entre estimations successives est donn´e e e par f (xi ) xi+1 = xi − (3. on poursuit o e e cette proc´dure jusqu’` l’obtention de l’ensemble des n racines du polynˆme e a o 28 . on a u i+1 = i − f (xi ) f (xi ) (3.1 Racines de Polynˆmes o R´duction polynomiale e La recherche de racines d’un polynˆme se construit de la mani`re suivante : o e soit Pn (x) un polynˆme de degr´ n. e δ=− f (x) f (x) (3. Ainsi.6 3. on peut o e e ´crire e Pn (x) = (x − x1 )Pn−1 (x) (3.

37).36).40) Soit la racine x1 a d´terminer.6. (3. il vient e e − d2 ln(|Pn (x)|) = dx2 = n i=1 1 (x − xi )2 2 Pn (x) Pn (x) =H − Pn (x) Pn (x) (3. on obtient n ln(|Pn (x)|) = i=1 ln(|x − xi |) n i=1 (3. Rappelons que les polynˆmes a coefficients complexes se factorisent en o ` un produit de monˆmes de degr´ 1.3. on suppose que la valeur de d´part x est situ´e ` e e e a une distance a de x1 et que l’ensemble des autres racines sont situ´es a une ` e ` distance suppos´e identique et qui vaut b e x − x1 = a x − xi = b (3. n Pn (x) = i=1 (x − xi ) (3. La m´thode de e e e Laguerre utilise le fait que les d´riv´es logarithmiques successives d’un polynˆme e e o divergent au voisinage d’une racine. on obtient e e d ln(|Pn (x)|) = dx = 1 x − xi (3.44) .43) (3.42) dans les ´quations (3.37) En d´rivant l’´quation (3. on e e e en d´duit respectivement les relations suivantes e 1 n−1 + =G a b n−1 1 + 2 =H 2 a b 29 (3.39) Pn (x) Pn (x) =G En d´rivant l’´quation (3.41) et (3. n] (3.2 M´thode de Laguerre e Les m´thodes de recherche de z´ros de polynˆmes sont nombreuses et une e e o pr´sentation d´taill´e d´passe largement le cadre de ce cours. e 3.38) (3.41) i ∈ [2.36) (C est un corps alg´briquement clos). Cette propri´t´ exprime le fait que les poo e ee lynˆmes a coefficients complexes ont l’ensemble de leurs racines dans le plan o ` complexe.6 Racines de Polynˆmes o Pn (x). Nous avons choisi e e e e de pr´senter une m´thode dont le principe est assez simple. En prenant le logarithme de l’´quation e (3.42) En ins´rant les ´quations (3.38).40).38).

on peut calculer l’ensemble des racines. la valeur de a est e e a= n G± (n − 1)(nH − G2 ) (3.45) Le signe plac´ devant la racine du d´nominateur est choisi tel que le d´nominae e e teur soit le plus grand possible. x−a devient alors la nouvelle valeur de d´part et e on it`re le processus. comme chaque racine n’est d´termin´e qu’avec une pr´cision finie. il est n´cessaire d’ajouter e e e e une proc´dure dite de lissage pour ´viter les probl`mes d’instabilit´ num´rique. e e e e e 30 . En pratique.Racines d’´quations e Apr`s ´limination de b. En combinant cette m´thode avec celle de la r´duction poe e e lynomiale.

.1 Introduction . .6 M´thodes RK explicites a 3 points interm´diaires e ` e 4.4 4. . . . . . . . . . . . . 4. . . . e e a 4. .7 4. . . . . . . . . . . e e a e e 4. . . . . . . . . . . e e e M´thode d’int´gration ` pas variables . . . . . . . e Conclusion . . . . . .2 M´thode d’Euler . . . . e M´thodes d’int´gration ` pas s´par´ . D´finitions . . . . . . .3 Introduction . . ou 31 . . . . . . 4. . .6 4. . . . .6 Equation diff´rentielle d’Hermite . . . . . . e 4. .2 4. . . . . . . . . .5 M´thodes RK explicites a 2 points interm´diaires e ` e 4. . . e e M´thode de Bulirsh-Stoer . . . . . . .3. . . . . . . . . 4.Chapitre 4 Equations diff´rentielles e Contenu 4. . . .3. . . .4. . e ıtre e e ` e Les m´thodes les plus standards que nous allons pr´senter sont largement pr´e e e sentes dans les logiciels de calcul comme Maple. . . .3. . e Equations diff´rentielles “sp´ciales” . . . . Le but de ce chapitre est de montrer que la meilleure m´thode. . . . . . . . . . . . . . . . . . . . . . . .1 Introduction . faute de l’existence de solutions analytiques. .4.1 Introduction . . . . . . . . . . . . . .4. . . ou la plus efficace a utiliser pour obtenir une e ` solution. . .8 4. . . . . . e 4. . 4. .3 Equation diff´rentielles du second ordre . . . . . . . . . . . . .4 M´thodes RK implicites a un point . . . . . . . . .5 Equation diff´rentielle erreur .3. . . e ` 4. . . . . . . . . . . . . . . .3. . . . . M´thodes de Runge-Kutta “embarqu´es” . . n´cessite de connaˆ la nature de l’´quation diff´rentielle a r´soudre. . . . .4. .5.4 Equation de Bessel . . e 4. . .4.3 M´thode RK explicites a un point . . . e ` 4. . . . . . . . . . . .4.1 4. . . . .5 4. . . .3. . . .2 Equations du premier ordre . . 31 32 32 32 33 34 35 35 35 35 35 36 37 37 37 38 38 39 39 39 40 41 . . . . . . . . e e 4. . .4. . . . 4. .1 Introduction La r´solution num´rique d’´quations diff´rentielles est tr`s souvent n´cese e e e e e saire. . . . . . . . . Octave. . . . . . . . . . . . .7 Formule g´n´rale des m´thodes RK explicites . Scilab. . . . . . . . . . . . . . . . Matlab. . . . . . .

y (p−1) ) (4. u e e e e ` e e etc. y.2 D´finitions e Soit une fonction num´rique not´e y(x) d´finie sur un intervalle de R et de e e e classe Cp (continˆment d´rivable d’ordre p). . y .. y. e NAG. On appelle ´quation diff´rentielle u e e e d’ordre p une ´quation de la forme e F (x. L’ordre du syst`me diff´rentiel correspond a l’ordre de e e e e ` e e e d´rivation le plus ´lev´ parmi l’ensemble des fonsctions. yp = f (x. d’´quations diff´rentielles ont des e e solutions math´matiques sous la forme de fonctions transcendantes ou de fonce tions sp´ciales en g´n´ral. . Nous allons donc donner un rapide aper¸u de ces e e e c 32 . .1 Equations diff´rentielles “sp´ciales” e e Introduction Une classe restreinte. ee 4. e ee Il est facile de v´rifier que toute ´quation diff´rentielle canonique peut ˆtre e e e e ´crite comme un syst`me d’´quations diff´rentielles du premier ordre.. . mais importante. .. y . . yp = y (p−1) on peut exprimer l’´quation (4.2) sous la forme e y1 = y 2 y2 = y 3 . . et surtout dans les biblioth`ques pour la programmation (IMSL. Plus g´n´ralement.1) o` y repr´sente la d´riv´e premi`re par rapport a x. . On appelle solution de l’´quation diff´rentielle (4. y (p) ) = 0 (4. y.Equations diff´rentielles e Mathematica. y la d´riv´e seconde. y2 .4) (4. y . e e On appelle forme canonique d’une ´quation diff´rentielle une expression du e e type y (p) = f (x.3 4..2) Seul ce type d’´quations sera consid´r´ dans ce chapitre.. .3. yp ) (4. y1 .. e e e e Si on introduit p − 1 fonctions d´finies comme e y1 = y y2 = y . Il est donc pr´f´rable d’utiliser ces biblioth`ques plutˆt que de ee e o r´´crire un code peu performant et probablement faux dans un premier temps.1). y . on appelle syst`me diff´rentiel un ensemble d’´quations e e e e e diff´rentielles reliant une variable x et un certain nombre de fonction yi (x) e ainsi que leurs d´riv´es.3) 4. GSL).1) toute fonction y(x) de e e classe Cp qui v´rifie l’´quation (4.

7) o` f (x) et g(x) sont des fonctions arbitraires.5) Equation lin´aire e Une ´quation diff´rentielle lin´aire a pour forme g´n´rale e e e e e dy + f (x)y(x) = g(x) dx (4. dont l’immense majorit´ ne peut ˆtre r´solue que e e e e e num´riquement.3. e 4.3 Equations diff´rentielles “sp´ciales” e e ´quations diff´rentielles particuli`res qui contient en autres quelques ´quations e e e e diff´rentielles non-lin´aires. e e e e 33 (4.8) Equation de Bernouilli L’´quation de Bernouilli a pour forme g´n´rale e e e dy + f (x)y(x) + g(x)y(x)a = 0 dx (4.9) o` f (x) et g(x) sont des fonctions arbitraires.2 Equations du premier ordre Equation ` coefficients constants a Les ´quations diff´rentielles a coefficients constants de forme g´n´rale e e ` e e a ont pour solution g´n´rale e e y(x) = e−b/ax dt c(t) b/at e + Cste a (4. En introduisant le changement u de fonction y(x) = u(x) 1−a 1 (4. La solution de cette ´quation u e diff´rentielle est e y(x) = e− Rx f (u)du ( dtg(t)e Rt f (u)du + Cste (4.10) l’´quation diff´rentielle devient une ´quation diff´rentielle du premier ordre e e e e du = (a − 1) (u(x)f (x) + g(x)) dx qui s’int´gre alors comme une ´quation diff´rentielle lin´aire.4.6) dy + by(x) = c(x) dx (4.11) .

dy − ay(x)2 − bxc = 0 (4. e (4.12) Ce type d’´quation diff´rentielle admet une solution lin´aire de la forme e e e y(x) = Cx + g(C) (4. La forme e ee e dite sp´ciale de l’´quation de Riccatti est d´finie par l’´quation diff´rentielle e e e e e suivante .3 Equation diff´rentielles du second ordre e Equations diff´rentielles ` coefficients constants e a Les ´quations diff´rentielles a coefficients constants de forme g´n´rale e e ` e e a ont pour solution compl`te e 2 d2 y dy +b + cy(x) = d(x) 2 dx dx 2ad(t) −uj t dt √ e b2 − 4ac (4.16) dx o` f (x).21) et uj est la seconde racine de l’´quation caract´ristique quand ui est la premi`re. on peut exprimer la solution de l’´quation sous forme param´trique e e e x(s) = −g (s) Equation de Riccatti La forme d’une ´quation de Riccatti est donn´e la formule suivante e e dy − f (x)y(x)2 − g(x)y(x) − h(x) = 0 (4. La d´riv´e seconde de f (x) est diff´rente de u e e e z´ro. on peut obtenir une expression analytique de l’´quation e diff´rentielle de Riccati. Il n’y a pas de solutions u g´n´rales pour l’´quation de Riccatti.13) o` C est une constante arbitraire.15) y(s) = g(s) − sg (s) 4.Equations diff´rentielles e Equation de Clairaut Une ´quation de Clairaut est une ´quation de la forme e e y(x) = x dy +g dx dy dx (4.3. on retrouve la forme e e e d’une ´quation de Bernouilli dont la solution a ´t´ donn´e plus haut.19) y(x) = i=1 eui x C i + e− a bx (4.20) o` les ui sont les solutions de l’´quation caract´ristique u e e au2 + bu + c = 0 (4. Quand h(x) = 0. e e e 34 .18) c= 2i − 1 avec i entier relatif. g(x) et h(x) sont des fonctions arbitraires.17) dx Si de plus c est de la forme −4 ∗ i (4.14) (4.

4.4 M´thodes d’int´gration a pas s´par´ e e ` e e 4. e e On cherche a calculer une approximation de la solution y(x) en un certain ` nombre de points x1 . b].22) x2 2 + x dx dx et dy d2 y − (x2 − n2 )y(x) = 0 (4.4). e e e 4. On suppose que la e e e e fonction f satisfait une condition de Lipschitz afin d’ˆtre certain que la solution e existe.4 4. .4.3. avec x0 = a et xN = b 35 . la solution est une combinaison g´n´rale de fonction de e e e e e WhittakerM. xN de l’intervalle [a.23) x2 2 + x dx dx ce qui donne respectivement pour solutions les ´quations de Bessel J et Y pour e la premi`re et les ´quations de Bessel modifi´es I et K pour la seconde.26) y(x) = cx + d(e−x + πerf (x)x) De mani`re g´n´rale.24) u u u o` c et d sont des constantes arbitraires.5 Equation diff´rentielle erreur e On appelle equation diff´rentielle erreur l’´quation suivante e e dy d2 y − 2ny(x) = 0 + 2x dx2 dx o` n est un entier.25) (4. x2 .4 Equation de Bessel Les ´quations diff´rentielles de Bessel sont d´finies par les ´quations suie e e e vantes d2 y dy + (x2 − n2 )y(x) = 0 (4.3. appel´ maillage de l’intere valle. 4. la solution est de la forme √ 2 (4. .27) De mani`re g´n´rale. 4. puisque on a e e d2 y dy + 2ny(x) = 0 − 2x 2 dx dx (4. Dans le cas o` o` n = 1.6 Equation diff´rentielle d’Hermite e L’´quation diff´rentielle d’Hermite est tr`s proche de l’´quation diff´rentielle e e e e e pr´c´dente. . Pour n = 0 la solution est de la forme u y(x) = c + derf (x) (4.1 M´thodes d’int´gration ` pas s´par´ e e a e e Introduction Soit l’´quation diff´rentielle d´finie par les ´quations (4. la solution est aussi une combinaison g´n´rale de fonction e e e e e de WhittakerM.3. est unique et que le probl`me est bien pos´.

Des am´e e e liorations sont possibles d`s que l’on consid`re des points interm´diaires. . 1. yk−r . .31) Cette m´thode est d´finie par e e avec y0 donn´. h)) ≤ Kh (4. xk ) (4. b]. si la solution est suffisamment d´rivable. h)) = − f (y(xk ). N On appelle m´thode d’int´gration a pas s´par´ toute formule de r´currence e e ` e e e de la forme yk+1 = yk + hφ(xk .28) 4.2 M´thode d’Euler e yk+1 = yk + hf (yk . xk .33) . h)) = h (4.30) la fonction φ est suppos´e continue par rapport aux trois variables x.29) avec k = 0. e e (b − a) N (4. on aura e 1 max (y(xk + h) − y(xk ) − φ(yk (xk ).32) (4. ce que e e e nous allons voir ci-dessous en consid´rant des m´thodes dites de Runge-Kutta e e 36 h2 y (xk + θh) 2 h2 y (xk + θh) 2 (4. . .34) ou 1 y (xk + θh) (y(xk + h) − y(xk ) − φ(yk (xk ). on peut ´crire e e y(xk + h) = y(xk ) + hy (xk ) + avec 0 ≤ θ ≤ 1.35) h 2 Si la d´riv´e seconde de y est born´e par une constante K dans l’intervalle e e e d’int´gration [a. yk . . N avec y0 donn´ e (4. 1. y. . h) k = 0. . xk .Equations diff´rentielles e Nous supposons que la suite des points est choisie de mani`re a ce que la e ` distance entre deux points cons´cutifs soit constante et on pose e h= ce qui donne xk = a + kh (4. En effet. mais peu pr´cise quand on int`gre sur plusieurs pas de temps. h. xk . yk−1 .36) h ce qui montre que la m´thode est d’ordre un. . xk ) + D’apr`s la d´finition de la m´thode e e e 1 y(xk + h) − y(xk ) (y(xk + h) − y(xk ) − φ(yk (xk ). . e e ` Cette m´thode revient a approximer la solution au voisinage de xk par sa tangente et nous allons voir qu’elle est d’ordre 1. e La m´thode d’Euler est une m´thode num´rique peu coˆteuse num´riquee e e u e ment. ce qui donne y(xk + h) = y(xk ) + hf (yk .4. xk ) h h (4. . e On appelle m´thode a pas multiples les m´thodes telles que yk+1 d´pend de e ` e e plusieurs valeurs pr´c´dentes yk .

39) Ces deux m´thodes sont d’ordre 3. la m´thode est d’ordre 2 et s’appelle la m´thode des trap`zes. e e 4.5 M´thodes RK explicites ` 2 points interm´diaires e a e Ces m´thodes sont d´finies par les relations e e yk.2 4 3 (4. yk ) + αf (xk + y0 donn´ e avec α un nombre r´el compris entre 0 et 1. yk ) 3 h 2h f xk + .37) o` θ est un nombre r´el appartenant a l’intervalle ]0.4 M´thodes RK implicites ` un point e a La formule de r´currence est d´finie par la relation e e yk+1 = yk + h[(1 − θ)f (xk . Si θ = 1/2.2 ) (4.1 = yk + h f (xk . yk.1 = yk + 3 3 h 2h = yk + f (xk .4.3 M´thode RK explicites ` un point e a yk.38) yk.1 2 h xk + . yk. yk. yk ) + θf (xk+1 .2 yk+1 ou par yk.1 = yk + yk. yk ) + 3f xk + .1 ) 2α yk+1 = yk + h(1 − α)f (xk . 37 . Ces m´thodes sont d’ordre 2.2 = yk + h f (xk . yk. e e 4. yk ) 2 xk + h . 1] (si θ = 0.4.4. yk.1 2 h f (xk . yk+1 )] (4. la m´thode est d’ordre 1. Si θ = 1/2.4 M´thodes d’int´gration a pas s´par´ e e ` e e 4.4. yk ) + 4f + f (xk+1 .1 = yk + h f (xk . Les valeurs de α couramment e utilis´es sont α = 1. α = 1/2 et α = 3/4. on retrouve la u e ` e e e m´thode d’Euler). yk ) 2α h . yk ) + 2f yk+1 = yk + h 6 f (xk . yk. La premi`re est parfois appel´e m´thode de e e e e Heun.

Les relations de e e r´currence sont les suivantes.2 + f (xk+1 .n α2. αij = 0 pour j ≥ i.2 = yk + f xk + .41) donne e e θ1 θ2 .1 α2..n αn. αn.41) Les coefficients sont d´termin´s afin que l’ordre soit le plus ´lev´ possible. . .. θn γ1 α1. . yk + α1..Equations diff´rentielles e 4.n Kn )] .. . γn Kn ] (4. yk.2 . Kn = h[f (xk + θn h. e 4.7 Formule g´n´rale des m´thodes RK explicites e e e Les m´thodes de Runge Kutta s’´crivent de mani`re g´n´rale e e e e e K1 = h[f (xk + θ1 h.n Avec cette repr´sentation. yk ) + 2f xk + . yk..3 = yk + f xk + ..n Kn )] yk+1 = yk + h[γ1 K1 + γ2 K2 + .1 + 2f xk + . On e e e e note A la matrice de coefficients (αi. sinon elle est totalement e implicite. . la m´thode Runge-Kutta explicite a deux points e e ` qui est d’ordre 4 est repr´sent´e par le tableau suivant e e 0 1/2 1/2 1 1/6 0 1/2 0 0 1/3 0 0 1/2 0 38 1/3 0 0 0 1 1/6 0 0 0 0 . γn α1.2 K2 + ..4. yk + α2. yk. + α2. .. yk. la m´thode est dite implicite .1 K1 + α1.1 2 2 h h yk.6 M´thodes RK explicites ` 3 points interm´diaires e a e La m´thode suivante est de loin la plus connue et utilis´e. αij = 0 pour j > i. e h yk..1 .. Quand la matrice A est triangulaire inf´rieure stricte. e on dit que la m´thode est explicite.. yk.2 K2 + . yk + αn..j ).n Kn )] K2 = h[f (xk + θ2 h.2 2 2 h h h f (xk . . + α1.. Si seule la partie triangulaire sup´rieure est e e nulle..2 ...4.1 K1 + αn.2 K2 + .2 α2. + αn.1 γ2 α1..3 ) yk+1 = yk + 6 2 2 (4. αn.1 K1 + α2. . . yk ) 2 h h yk... .1 = yk + f (xk . . . Γ le vecteur des coefficients γi et Θ le vecteur des coefficients θi ..40) Cette m´thode est d’ordre 4.. Une repr´sentation en forme de tableau des ´quations (4.

1 M´thode d’int´gration ` pas variables e e a Introduction Un int´grateur “intelligent” poss`de une proc´dure de contrˆle de la m´thode e e e o e de convergence. La premi`re ´quation correspond a une int´gration avec un pas ´gal a 2h tandis e e ` e e ` que la seconde correspond a deux int´grations successives avec un pas de h. Le calcul de cette estimation entraˆ un surcoˆt de calcul. Il utilise le fait qu’en choisissant des valeurs particuli`res ` e de γi (voir section 4.4.43) u ` o` φ est une fonction qui reste constante sur l’intervalle x.5. est donn´ par la relation e e ` e h0 = h 1 39 ∆0 ∆1 1/5 (4. e 4.47) Pour d´terminer la valeur du pas la plus adapt´e.7).46) y2 = y(x) + ce qui conduit a une estimation de l’erreur ` 6 ∆= i=1 ∗ (γi − γi )Ki (4.44) fournit une estimation de l’erreur commise avec un pas d’int´gration h. on note tout d’abord que ∆ e e 5 .5 4. ıne u qu’il convient de bien g´rer afin de minimiser cet effort suppl´mentaire.4. on a ` y(x + 2h) = y1 + (2h)5 φ + O(h6 ) y(x + 2h) = y2 + 2(h )φ + O(h ) 5 6 (4. La ` e diff´rence e ∆ = y2 − y1 (4.45) (4. c’est a dire un moyen d’estimer l’erreur commise par le calcul ` sur un pas d´int´gration et la possibilit´ de choisir en cons´quence un nouveau e e e pas si le syst`me diff´rentiel aborde une r´gion o` la fonction prend des valeurs e e e u plus importantes. e 6 y1 = y(x) + i=1 6 γi Ki + 0(h6 ) ∗ γi Ki + 0(h5 ) i=1 (4.48) .6 M´thodes de Runge-Kutta “embarqu´es” e e Une autre m´thode pour estimer l’erreur commise par l’utilisation d’un pas e h est due a Fehlberg. on peut changer l’ordre de l’´valuation de la solution e pour un pas de temps h donn´.5 M´thode d’int´gration a pas variables e e ` 4. le pas h est calcul´ a l’ordre h e` 1 1 0 donn´ pour une erreur ∆0 fix´e a l’avance. h et 2h. Si on a un pas h qui donne une erreur ∆ . Soit y(x + 2h) la solution exacte a x + 2h e e ` et y(x + h) la solution exacte a x + h.42) (4. e e L’id´e la plus simple pour estimer cette erreur consiste a calculer la solution e ` e donn´e par un algorithme (de Runge-Kutta d’ordre 4 par exemple) pour deux pas d´int´gration diff´rents. x + 2h a l’ordre h 5 .

La g´n´ralisation de la proc´dure ´bauch´e reste possible. Ce point est tr`s comparable a celui de la m´thode de Romberg e ` e d´crite pour l’int´gration. e e e e e mais nous ne d´taillerons pas ce type de subtilit´ dans ce chapitre. mais qui tend vers une limite finie (ind´pendante de e e h) . L’estimation de l’erreur est alors donn´e a e e ` e ` priori par un vecteur. e 40 . e e 4. on cherche a estimer la valeur exacte du syst`me diff´rentiel a int´grer en ` e e ` e calculant pour diff´rents pas et en prenant la limite d’un pas tendant vers z´ro.Equations diff´rentielles e Il est donc possible. La limite d’un pas de temps nul correspond a la solution exacte donn´e par la courbe ` e en trait plein. e ` Une difficult´ apparaˆ pour ce type de m´thode quand on consid`re un syse ıt e e t`me diff´rentiel a plusieurs variables.1 illustre graphiquement les diff´rentes estimations de la valeur e e e de la fonction solution en utilisant trois pas d’int´gration diff´rents. e e La figure 4.7 M´thode de Bulirsh-Stoer e L’id´e de cette m´thode repose sur les trois principes suivants : la r´solution e e e de l’´quation diff´rentielle pour un accroissement de ∆x est donn´e par une e e e fonction qui d´pend de h. e e Le second principe de la m´thode consiste a extrapoler cette limite non pas e ` sur la base de d´veloppements polynˆmiaux mais de d´veloppements en frace o e tions rationnelles. Le troisi`me principe consiste a utiliser des fonctions d’erreur e ` qui sont paires en pas d´int´gration. pour une valeur de |∆0 | donn´e a l’avance de diminuer h0 e ` pour obtenir une erreur plus faible ou d’augmenter h0 de mani`re raisonnable e si ∆1 est inf´rieur en valeur absolue a |∆0 |.

4.8 Conclusion Les m´thodes expos´es ci-dessus permettent d’obtenir une solution de plus e e en plus pr´cise pour des syst`mes diff´rentiels o` le nombre de fonctions n’est e e e u pas tr`s important. 4. La courbe en trait plein correspond a la solution exacte.5 2 2.8 Conclusion 10 8 1 2 4 3 6 2 0 -2 0.5 Fig.(http ://pascal. qui est une propri´t´ satisfaite pour les syst`mes ee e hamiltoniens.com) 41 . Les algorithmes satisfaisant cette propri´t´ sont appel´s symplecee e tiques .1 – Sch´ma illustrant le principe de la m´thode de Burlish-Stoer.viot. Les e e lignes en pointill´ correspondent aux int´grations r´alis´es avec trois pas d’ine e e e t´gration diff´rents.5 1 1.5 3 3. un crit`re de e e e qualit´ pour le choix d’une m´thode est le respect de la propri´t´ d’invariance e e ee par renversement du temps. un exemple de ce type d’algorithme est l´algorithme dit de Verlet dont le principe est d´crit dans le cours Simulation num´rique en Physique Statise e tique. e e ` 4. En simulation de Dynamique Mol´culaire.

Equations diff´rentielles e 42 .

. Plus sp´cifiquement. o` u le nombre d’op´rations croˆ comme N 2 cette m´thode a re¸u le nom de transe ıt e c form´e de Fourier rapide (FFT. . . . . . 43 44 46 46 47 48 50 50 50 51 51 . . . . . . . depuis pr`s de 40 ans est apparu un e e e algorithme performant pour le calcul de la transform´e de Fourier dont le temps e de calcul varie essentiellement comme N ln2 (N ) o` N est le nombre de points u o` la fonction f a ´t´ ´valu´e. . . .5. . . . . . . . Fast Fourier Transform. . . e e e e ` Profitant du fait que l’une des op´rations essentielles de la transform´e de e e Fourier est un r´arrangement des ´l´ments d’un tableau. . . . . . Par opposition a une approche trop na¨ u ee e e ` ıve. . 5.3 . . . 5. . . . . . . . . . . . e 5.1 Introduction Largement utilis´e en Physique. .4 Transform´e de Fourier rapide . .5. . e e ´ 5. ` 5. . . .3 Tri a bulles . . . . . . . . e e 5. . . . . . 5. . . . . . . .2 M´thode d’insertion . . . . . . . . . . . . .2 Transform´e de Fourier discr`te . . .4 Tri rapide . . en anglais). . . . . . . . . . . . . . . .5. . la transform´e de Fourier d’une fonction e e d´pendant d’une variable (par exemple du temps) est devenue si naturelle que e sa repr´sentation graphique est g´n´ralement aussi utile. . . . .1 Echantillonage . nous allons voir les e ee 43 . . . . . . . . . . . . . . . . . . . e e Discr´tisation de la transform´e de Fourier . . . . . . 5. .2 5. . . . . . nous allons pr´senter le principe de la m´thode num´rique de l’´valuation e e e e de cette transform´e. . . Apr`s un rappel des propri´t´s ´l´mentaires et fondae e e e ee mentales des transform´es de Fourier pour la r´solution de probl`mes math´mae e e e tiques. . . . . . .1 Introduction . . . .5. . . . .3. .Chapitre 5 Transform´e de Fourier rapide e et algorithmes de tri Contenu Introduction . . . . .1 5. voire plus. . que celle e e e de la fonction elle-mˆme. . .3. . . e 5. . . .5 Algorithmes de tri . . . . Propri´t´s . . . . . . . . . . . . . . . . . . . . que toute e biblioth`que math´matique propose g´n´ralement a son catalogue. . . . . . . . . . . . . . . . 5. .

e e e il est fortement recommand´ de tester la transform´e de Fourier num´rique que e e e 1 Pour sym´triser les expressions. e e ˆ la fonction f ˆ f (ν) = +∞ f (t)e2πiνt dt (5.4) 2π −∞ et la transform´e de Fourier inverse comme e 1 f1 (t) = √ 2π Z +∞ −∞ ˆ f (ω)e−iωt dω (5. la transform´e de Fourier est parfois d´finie comme e e e Z +∞ 1 ˆ f (ω) = √ f (t)eiωt dt (5. la transform´e de Fourier est d´finie d’une mani`re e e e encore diff´rente ! e +∞ ˆ f (t)e−iωt dt (5.5) 44 . il y a identit´ entre la fonction f1 et la fonction e e f . hormis ´ventuellement sur un support de R de mesure nulle.2) Pour une fonction f int´grable.8) Compte tenu des diff´rentes d´finitions des transform´es de Fourier et en e e e l’absence de documentation pr´cise dans certaines biblioth`ques math´matiques.2 Propri´t´s e e Soit une fonction f d´finie sur R.7) f (ω) = −∞ avec bien entendu la transform´e de Fourier inverse correspondante e f1 (t) = 1 2π +∞ −∞ ˆ f (ω)eiωt dω (5.1) −∞ La transform´e de Fourier inverse est d´finie comme e e +∞ f1 (t) = −∞ ˆ f (ν)e−2πiνt dν (5. e Une autre d´finition de la transform´e de Fourier rencontr´e dans la litt´rae e e e ture est celle qui correspond a une repr´sentation en pulsation au lieu de celle ` e en fr´quence donn´e ci-dessus.Transform´e de Fourier rapide et algorithmes de tri e principaux algorithmes de tri que l’on peut utiliser pour r´ordonner les ´l´ments e ee d’un tableau. on appelle transform´e de Fourier de f .3) La transform´e de Fourier inverse correspondante est d´finie comme 1 e e f1 (t) = 1 2π +∞ −∞ ˆ f (ω)e−iωt dω (5.6) Avec le logiciel Maple. 5. e e ˆ f (ω) = +∞ −∞ f (t)eiωt dt (5.

e – Si f (t) est impaire et imaginaire. la transform´e de Fourier des fr´quences n´gatives est e e e e ˆ ˆ complexe conjugu´e de celle des arguments positifs f (−ν) = (f (ν))∗ .9) Ainsi.11) Par inversion de cette relation. la transform´e de Fourier est donn´e par f (ν)e2πiνt0 . e La distribution δ est d´finie a partir de la relation suivante e ` +∞ −∞ dxf (x)δ(x − x0 ) = f (x0 ) (5. la transform´e de Fourier des fr´quences n´gatives e e e est ´gale a l’oppos´e du complexe conjugu´ de celle des arguments positifs e ` e e ˆ ˆ f (−ν) = −(f (ν))∗ .12) 45 . la transform´e de Fourier est donn´e par f (bν). sa transform´e de Fourier est donn´e par |a| f ( ν ). |b| |b| ˆ – Soit f (t − t0 ). ce code serait en g´n´ral tr`s peu performant compar´ aux nombreux programmes e e e e disponibles. Cela renforce l’aspect e e ee e e totalement inutile de la r´´criture d’un code r´alisant la dite transform´e. ˆ – Soit f (t)e e e 0 Une identit´ particuli`rement utile concernant les transform´es de Fourier e e e concerne la distribution de Dirac δ : soit f une fonction continue d´finie sur R. Des propri´t´s compl´mentaires sont associ´es aux op´rations de translation ee e e e et dilatation 1 ˆ – Soit f (at). la transform´e de Fourier est imaginaire et e e impaire.5. on a la repr´sentation int´grale de la distribution e e δ +∞ δ(x) = −∞ dke−2πikx (5. e e a ˆ e e – Soit 1 f ( t ). la transform´e de Fourier l’est aussi. on en d´duit facilement que e +∞ −∞ dxδ(x − x0 )e2πkix = e2πkix0 +∞ −∞ (5. Au del` du principe g´n´ral de la transform´e de e a e e e Fourier rapide. – Si f (t) est paire et r´elle. la transform´e de Fourier est r´elle et e e impaire.2 Propri´t´s ee l’on va utiliser. e – Si f (t) est imaginaire. Dans le cas o` la fonction f poss`de des sym´tries. il existe des optimisations possibles compte tenu de l’architecture de l’ordinateur sur lequel le programme sera ex´cut´. la transform´e de Fourier est donn´e par f (ν − ν ). en testant une fonction dont la transform´e de Fourier est connue e analytiquement pour d´terminer de mani`re simple la convention utilis´e dans e e e la biblioth`que disponible. ˆ ˆ – Si f (t) est paire. f e ˆ −f (ν). e ˆ(−ν) = – Si f (t) est impaire. la transform´e de Fourier est aussi paire. sa transform´e de Fourier u e e e pr´sente des sym´tries en quelque sorte duales de la fonction initiale e e – Si f (t) est r´elle.10) et donc que dxδ(x)e2πikx = 1 (5. f (−ν) = f (ν). la transform´e de Fourier est aussi impaire. e e – Si f (t) est impaire et r´elle. la transform´e de Fourier l’est aussi. e e −2πiνt0 . – Si f (t) est paire et imaginaire.

3. L’op´rateur de convolution est e e e commutatif.19) 5. car la multiplication de deux nombres complexes l’est aussi.18) |f (t)|2 dt = +∞ −∞ ˆ |f (ν)|2 dν (5.3 5. . La transform´e de Fourier de la convolution de deux fonctions f et g est e ´gale au produit de leurs transform´es de Fourier. . 2.13) La propri´t´ sans doute la plus importante concernant les transform´es de Fouee e rier concerne la convolution. ce qui donne e ˆ Cf (ν) = |f (ν)|2 Cette relation est appel´e th´or`me de Wiener-Khinchin. on a fn = f (n∆) avec n = . on d´finit la fonction d’autocorr´lation comme e e e Cf (t) = −∞ duf (u)f (t + u) (5. il existe une fr´quence critique.1 Discr´tisation de la transform´e de Fourier e e ´ Echantillonage Dans la situation la plus fr´quemment rencontr´e.3. e e ˆ g (f ∗ g)(ν) = f (ν)ˆ(ν) +∞ (5. Soit ∆ le pas s´parant deux “mesures” cons´cue ` e e e tives. −2.16) e e La transform´e de Fourier de la fonction Cf est alors donn´e par ˆ ˆ ˆ Cf (ν) = f (ν)f (−ν) (5. on d´finit e e la convolution de f avec g not´e f ∗ g comme e +∞ (f ∗ g)(t) = −∞ f (τ )g(t − τ )dτ (5. . on montre que e e δ(x) = 1 2π +∞ −∞ dke−ikx (5. (5. .Transform´e de Fourier rapide et algorithmes de tri e De mani`re ´quivalente. −1.14) On v´rifie imm´diatement que f ∗ g = g ∗ f . appel´e fr´quence de Nyquist. 1.17) ˆ ˆ Compte tenu du fait que f est r´elle.20) e e e Pour le pas de l’´chantillonnage ∆. 0.15) Soit une fonction r´elle f . on a f (−ν) = (f (ν))∗ .21) νc = 2∆ 46 . e e e Le th´or`me de Parseval donne que e e +∞ −∞ (5. . la fonction f est ´chane e e tillonn´e a intervalle r´gulier. . Soit deux fonctions f et g d´finie sur C. e 1 (5.

Cela se manifeste de la mani`re suivante : supposons e que la transform´e de Fourier exacte d’une fonction ait un spectre plus large e que celui donn´ par l’intervalle de Nyquist.3.5. les points ´chantillonn´s sont exactement les mˆmes.22) Si la fonction f (t) est multipli´e par la fonction e2πν1 t avec ν1 qui est un e multiple de 1/∆. . e e ` elle est minimale au point suivant et ainsi de suite. Une e e e cons´quence de cette propri´t´ est l’apparition du ph´nom`ne de duplication e ee e e (“aliasing” en anglais).26) Ces transform´es de Fourier sont d´finies ind´pendamment des abscisses core e e respondant aux valeurs originales o` la fonction h a ´t´ ´valu´e.3 Discr´tisation de la transform´e de Fourier e e au del` de laquelle il n’est pas possible d’avoir une information sur le spectre a de la fonction ´chantillonn´e. le spectre situ´ a droite se replie a e e` ` gauche et celui a droite se replie a gauche. . on d´finit la transform´e de Fourier e e e discr`te comme e N −1 ˆn = 1 h hk e2πikn/N (5.23) Avec N nombres fournis. Supposons que la fonction soit une sinuso¨ de e e ıde fr´quence ´gale a celle de Nyquist. . Il est toutefois u eee e possible de relier la transform´e de Fourier discr`te a la transform´e de Fourier e e ` e de d´part par la relation e ˆ ˆ f (νn ) ∆fn (5. mais comme les bornes ine e ` f´rieure et sup´rieure de l’intervalle en fr´quence correspondent aux bornes d´e e e e finies par la fr´quence critique de Nyquist. il semble ´vident que l’on peut obtenir N fr´quences e e e pour la transform´e de Fourier. .25) N k=0 La transform´e de Fourier discr`te inverse est donn´e par e e e N −1 hk = n=0 ˆ hn e−2πikn/N (5. N/2 (5. Soit la suite νn = n N∆ avec n = −N/2. .24) Le nombre de fr´quences est a priori ´gale a N + 1. N − 1 (5. La cons´quence de ce r´sultat est que si on sait que le support de la transe e e e` form´e de Fourier est strictement limit´ a l’intervalle [−νc .2 Transform´e de Fourier discr`te e e Soit un nombre fini de points o` la fonction f a ´t´ ´chantillonn´e u eee e fk = f (tk ) avec k = 0. . e Soit un nombre fini de points not´ hk . ` ` 5. . . 2. .27) 47 . . νc ]. la fonction f (t) est alors donn´e par la formule e +∞ f (t) = ∆ n=−∞ fn sin(2πνc (t − n∆)) π(t − n∆) (5. 1. Si la fonction est maximale pour un point. 0. les valeurs obtenues pour n = −N/2 e et n = N/2 sont identiques et nous avons donc bien N points ind´pendants. . .

28) (5. Sans utiliser d’astuces particuli`res. Pour am´liorer de mani`re spectaculaire la e e e rapidit´ de ce traitement. e On peut noter que les diff´rences entre la transform´e de Fourier discr`te et e e e son inverse sont au nombre de deux : un changement de signe dans l’exponentielle complexe et un facteur de normalisation en 1/N . Ces faibles diff´rences e expliquent pourquoi les proc´dures sont souvent identiques pour le calcul de la e transform´e de Fourier et de son inverse dans les biblioth`ques math´matiques. r´elle ou imaginaire u e se transposent compl`tement au cas de la transform´e de Fourier discr`te.Transform´e de Fourier rapide et algorithmes de tri e 2 Notons que les propri´t´s ´tablies pour les transform´es de Fourier au d´but de ee e e e ce chapitre. en supposant que le nombre N est e pair.32) Ainsi le vecteur h de composante hk est multipli´ par une matrice de coefficients e ank = W nk . ce qui explique que les propri´t´s e ee ´tablies pour l’une restent vraies pour la seconde.4 Transform´e de Fourier rapide e L’id´e de base de la transform´e de Fourier rapide repose sur la remarque e e suivante : posons W = e2πi/N La composante de Fourier de h s’exprime alors comme N −1 (5. Les e e e r`gles concernant la convolution se retrouvent bien ´videmment et par exemple e e l’expression du th´or`me de Parseval est alors e e N −1 k=0 ˆ |h k |2 = 1 N N −1 k=0 |hk |2 (5.30) Le passage de la transform´e de Fourier continue a la transform´e de Fourier e ` e discr`te est en fait un changement de mesure.31) ˆ hn = k=0 W nk hk (5. e e e 5. En effet.29) ≈∆ 48 . le temps de calcul pour une e telle op´ration est alors en N 2 . selon le cas o` la fonction est paire ou impaire. on note que la transform´e de Fourier discr`te de e e e longueur N peut ˆtre ´crite comme la somme de deux transform´es de Fourier e e e discr`te chacune de longueur N/2. on peut s´parer la contribution des termes pairs et celle des termes impairs e 2 La transform´e de Fourier continue est approch´e de la mani`re suivante e e e ˆ f (νn ) = Z +∞ −∞ N −1 X k=0 f (t)e2πiνn t dt fk e2πiνn tk (5.

ppi Fk = fn (5. e e Pour it´rer ce type de proc´dure. 49 . on a la transform´e de Fourier pour e cet intervalle qui est ´gale au nombre fn correspondant.. . Le nombre d’indices e pour caract´riser ce nombre est ´gal a ln2 (N ) e e ` iipip. nous allons supposer que le nombre de e e points de la fonction de d´part est dor´navant une puissance de deux. qui permettent d’obtenir la transform´e de Fourier pour un nombre de points diff´rent e e d’une puissance de deux. on a l’expression invers´e en binaire de chaque valeur e de n. La proc´dure de transform´e de Fourier rapide est alors constitu´e d’une pree e e mi`re op´ration de tri pour r´ordonner la matrice selon la lecture de l’alphabet e e e g´n´r´. .37) On remarque donc que pour chaque valeur de n on a un alphabet fini d’indice iipip . A noter que ces deux come posantes sont p´riodiques en k avec une p´riode N/2. Une fois obtenue un intervalle de longueur 1. puis on calcule successivement les composantes de Fourier de longueur e ee 2.5.34) = j=0 e 2πijk/(N/2) f2j + W k j=0 e2πijk/(N/2) f2j+1 (5.. Si on e pose que i = 1 et p = 0. La figure 5. ppi constitu´ de i et de p. puis 4. De nombreuses variantes de cet algorithme original sont disponibles. On peut e e alors exprimer chaque composante de Fourier en fonction de deux nouvelles composantes de Fourier sur un intervalle de longueur N/4 et ainsi de suite.35) (5.33) = j=0 N/2−1 e 2πi(2j)k/N f2j + j=0 e2πi(2j+1)k/N f2j+1 N/2−1 (5. Cette correspondance est biunivoque.36) p i =Fk + W k Fk e e o` Fk repr´sente la ki`me composante de Fourier pour les composantes paires u p i de la fonction de d´part et Fk repr´sente la ki`me composante de Fourier pour e e e les composantes impaires de la fonction de d´part.1 illustre le nombre d’op´rations a effectuer a e ` pour inverser les ´l´ments du tableau selon le m´canisme du renversement de ee e bits. jusqu’` N .4 Transform´e de Fourier rapide e dans l’´quation e N −1 Fk = j=0 e2πijk/N fj N/2−1 N/2−1 (5.

Une e ee e op´ration tr`s classique consiste a changer l’ordre initial (qui peut ˆtre al´atoire) e e ` e e en respectant un crit`re d´fini par l’utilisateur. On peut en cr´ant un tableau e e e suppl´mentaire construire une correspondance entre l’ordre obtenu par un tri et e l’indice occup´ par l’´l´ment du tableau correspondant dans le tableau initial. e e e e e les op´rations de tri peuvent aussi r´alis´es sur plusieurs champs de mani`re s´quentielle . cette op´ration est appel´e op´ration de tri multiple e e e e 5. qui sont eux-mˆmes des nombres et des chaˆ e ınes de caract`res. (a) Sur un tableau de 8 ´l´ments ´tiquett´s en binaire.Transform´e de Fourier rapide et algorithmes de tri e 000 001 010 011 100 101 110 111 (a) 000 001 010 011 100 101 110 111 000 001 010 011 100 101 110 111 (b) Fig. e e ee 5.5. on ee e e note les op´rations de d´placements. c’est-`-dire un tableau dont l’´l´ment de base est une structure comprenant a ee des champs. on dispose d’un tableau d’objets.5 5.1 Algorithmes de tri Introduction Un tableau est une suite d’´lements rep´r´s par un entier appel´ indice. ee Les op´rations pr´c´dentes sont destructrices dans le sens que l’ordre initial e e e du tableau est perdu une fois l’op´ration effectu´e.5. au lieu d’utiliser un tableau de nombres. e ee Si. Une op´ration voisine e e est la recherche du plus petit ou du grand ´l´ment de ce tableau.2 M´thode d’insertion e Supposons que l’on veuille trier des ´l´ments d’un tableau de nombre seee lon un ordre croissant. (b) Bilan des d´placements a effectuer : e e e ` deux op´rations d’´change d’´l´ments.1 – Sch´ma illustrant le principe de la mise en ordre du tableau par e renversement de bits.L’algorithme de la m´thode d’insertion est le suivant : on e 50 . Une op´ration de base consiste a e e e ` trier des nombres selon un ordre croissant ou d´croissant. 5.

hormis pour des raisons p´dagogiques. soit le nouvel ´l´ment est plus grand que le pr´c´dent ` ee e e et on place cet ´l´ment a la deuxi`me place. Si le test est positif. sinon. Il est facile de voir que le nombre d’op´rations en moyenne ` e ´volue comme N 2 . ou dans les logiciels scientifiques o` les e u 51 . si l’ordre est correct. sinon on e ee e e d´place l’´l´ment plac´ en num´ro deux en num´ro trois et on teste si le nouvel e ee e e e ´l´ment est plus grand que l’´l´ment un. On peut choisir de construire un nouveau tableau ou ee ` de r´utiliser le tableau existant. et on effectue un test a nouveau. not´ a 1 . e 5. On continue cet algorithme jusqu’au dernier ´l´ment ee ee du tableau a trier. Apr`s N − 1 e ee ` e op´rations de ce type. sinon on d´place le premier ´l´ment en deux et on place ee e e ee le nouvel ´l´ment en un.4 Tri rapide Connu par son nom anglais “quicksort”. On peut plaee ee cer a1 a la bonne place dans le tableau final et on applique l’algorithme du ` tri rapide sur chacun des deux sous-tableaux. on teste si celui-ci est plus grand que le e ee deuxi`me. o` N est le nombre d’´l´ments a trier. de chercher a r´´crire un e ` ee programme pour ces algorithmes. N´anmoins. cet ´l´ment est plac´ en troisi`me place. on peut alors recommencer sur le tableau restant des N − 1 ´l´ments . On proc`de donc de mani`re it´rative jusqu’au dernier ee e e e e ´l´ment du tableau a trier. on a plac´ le plus grand ´l´ment du tableau en derni`re e e ee e position . le tri dit rapide proc`de de la mae e ee ` e ni`re suivante : on prend le premier ´l´ment du tableau a trier.5.5 Algorithmes de tri place un a un les ´l´ments du tableau a la bonne place du nouveau tableau rem` ee ` plir des ´l´ments tri´s. un e ee e algorithme de type insertion reste suffisamment efficace si N < 20. on proc`de de mani`re suivante. 5. que cela soit en programmation o` de nomu breuses biblioth`ques sont disponibles. on place le nouvel ee ee ´l´ment en num´ro deux. A nouveau.5. e e e e e il est inutile. on d´place l’´l´ment initialeee ` e e ee ment plac´ a la seconde place et l’on place le nouvel ´l´ment a la premi`re place. mais il est possible d’obtenir des situations o` u 2· l’algorithme est en N Des variantes de cet algorithme puissant existent pour par exemple ´viter e la r´cursivit´ qui p´nalise la rapidit´ d’ex´cution du programme.5. ee cet algorithme est bien ´videmment un algorithme en N 2 et ne peut servir que e pour des valeurs de N tr`s modestes. Pratiquement. On construit avec les autres ´l´ments deux sous tableaux : le premier contient les ee ´l´ments plus petits que a1 et le second les ´l´ments plus grands. On tire le second ´l´ment : on augmente d’un ´l´ment la taille du tableau a trier . Si le test est positif. on ne ee fait rien sinon on ´change les deux ´l´ments : on passe alors au couple suivant e ee constitu´ des ´l´ments 2 et 3.3 Tri ` bulles a Le tri a bulles es un algorithme en N 2 qui op`re de la mani`re suivante : ` e e On compare les deux premiers ´l´ments du tableau . On peut montrer qu’en moyenne l’algorithme est en N log2 (N ). e` ee ` e On choisit alors un troisi`me ´l´ment . Comme nous allons le e u ee ` voir ci-dessous les algorithmes de type “tri rapide” sont beaucoup plus efficaces car ceux-ci d´pendent du nombre d’´l´ments comme N log 2 (N ). e e e On choisit le premier ´l´ment : il est automatiquement bien plac´ dans un taee e ` ee ee ee bleau a un ´l´ment.

52 . mais il convient de tester la m´thode la plus e adapt´e car le “d´sordre initial” du tableau a trier influe de mani`re significative e e ` e sur la performance des algorithmes.Transform´e de Fourier rapide et algorithmes de tri e instructions de tri sont disponibles.

. .3 Equations avec conditions initiales . . . . . . . . . . 6. e 6. . . . . . e e 6. .3. . . . e 6.1 6. . . . .2 Introduction . . 53 56 56 56 57 57 58 60 60 61 61 62 63 . . . ` 6. . . . . .2. . . . .2. . . . . . . . . . . . . . . .1) . . . .2. . . . . . . . .Chapitre 6 Equations aux d´riv´es e e partielles Contenu 6.5 M´thodes de Fourier . . . . . . . . . . . .1 Equations a flux conservatif . .4 Conclusion . . . . . Ces ´quations o e e e diff´rentielles n’ont g´n´ralement pas de solutions analytiques et une r´solution e e e e num´rique de ces ´quations est alors n´cessaire. . . . . . .1 Introduction . . . . . . . . . . . . . . . . .3. e 6. .2 Une approche na¨ ıve . . . . . . . . . . . .2 Diff´rences finies . .3 M´thodes matricielles . .3. . . . . . . . . . . . . .2. . . . .3 Crit`re de Stabilit´ de Von Neumann . . .1 Introduction Les ´quations aux d´riv´es partielles interviennent dans de nombreux doe e e maines de physique. .4 M´thodes de relaxation .4 M´thode de Lax . . . . . . . . . . L’ordre de l’´quation est donn´ par l’ordre le ` e e e e plus ´l´v´ des d´riv´es partielles apparaissant dans l’´quation. . . . . . 6. . . qui comprennent les probl`mes de diffusion. . . . ainsi que le domaine de la m´canique des fluides d´crite par e e les ´quations hydrodynamiques comme celles de Navier-Stokes et l’´quation de e e Schr¨dinger d´pendante du temps pour la m´canique quantique. e 6. . . . . . . . . . . . . . 6. . . . . . . . . . e e e Une ´quation aux d´riv´es partielles est une relation liant une fonction de n e e e variables a ses d´riv´es partielles. . . . . . . . . e 6.2. . . La forme g´n´rale ee e e e e e e d’une ´quation aux d´riv´es partielles lin´aires est e e e e L[f (x)] = g(x) 53 (6. . 6. . . . . . . . . . . . . . . . . Equations avec conditions aux fronti`res . . . . .3. les ph´nom`nes e e e de propagation. . . . . . . e 6.

on dit que l’´quation est homog`ne.2) Si g(x) = 0.j=1 pij (x)∂i ∂j + . une solution unique existe si la ee e e relation appel´´ ´quation aux caract´ristiques ee e e p12 ± p2 − p11 p22 12 =0 p11 (6. Si la valeur du membre de gauche de l’´quation (6. . x2 . . Une premi`re classification non exhaustive fait ape e e e paraˆ trois types d’´quations : ´quations hyperboliques.3) est r´elle. e e On peut illustrer ces trois cat´gories par les exemples physiques suivants : e 54 . e e Dans ce cours d’introduction. o` un x est un vecteur de composante (x1 .3) est vraie. Si la valeur est complexe.Equations aux d´riv´es partielles e e 6 5 4 Conditions aux limites 3 t 2 1 Conditions initiales 0 -1 0 1 2 3 x 4 5 6 7 8 9 Fig. on a une ´quation parabolique. on dit que l’on e a une ´quation elliptique et si elle est nulle. (6. . paraboliques et ellipıtre e e tiques. Cette classification provient de l’analyse des d´riv´es partielles d’ordre e e le plus ´l´v´. 6. . Pour les ´quations d’ordre deux. xn ) et o` L est un op´rateur u u e d´fini par la relation e n n L = p0 (x) + i=1 pi (x)∂i + i.1 – Sch´ma illustrant le principe de la r´solution d’une ´quation aux e e e d´riv´es partielles avec des conditions initiales et des conditions aux limites : e e La propagation de la solution le long de l’axe temporel (axe vertical) se fait par “tranche horizontale”. on dit e e que l’on a une ´quation hyperbolique. . nous allons nous limiter aux ´quations aux e d´riv´es partielles lin´aires. .

t) la densit´ locale instantan´e u e e des particules diffusantes. En dimensions deux. Equation elliptique. y) le potentiel ´lectrostau e e tique a d´terminer. y) est la densit´ locale de charge et V (x.6. y.6) o` ρ(x. y) = ∂ 2 V (x. La propagation des ondes dans un milieu continu (unidimensionnel) ob´it a l’´quation suivante e ` e ∂ 2 u(x. t) ∂ 2 u(x. t) ∂ 2 V (x. t) =D ∂t ∂x2 (6. Equation parabolique.1 Introduction 6 Conditions aux bords 5 4 y 3 2 1 0 -1 0 1 2 3 x 4 5 6 7 8 9 Fig.2 – Sch´ma illustrant le principe de la r´solution d’une ´quation aux e e e d´riv´es partielles avec des conditions aux bords : l´ensemble des points de la e e grille doit ˆtre gard´ tout au long du calcul. t) + ∂x2 ∂y 2 (6. y. t) = c2 ∂t2 ∂x2 (6. ` e 55 .4) o` u(x.5) o` D est la constante de diffusion et ρ(x. e e Equation hyperbolique. t) ∂ 2 ρ(x. La diffusion de particules dans un milieu continu ob´it a l’´quation suivante e ` e ∂ρ(x. t). 6. le potentiel coulombien induit par une densit´ de charges ´lectriques satisfait l’´quation suivante (avec e e e des unit´s choisies de mani`re appropri´e) e e e −ρ(x. t) peut d´signer une variable scalaire comme la densit´ locale u e e ρ(x. t) ou une variable vectorielle comme la vitesse locale v(x.

ce qui implique de garder en m´moire la totalit´ e ` e e e ` e e e de valeurs de la fonction V a d´terminer tout au long de la r´solution num´rique (voir figure 6.k+1 + Vj.2.2. voire des conditions e ` e mixtes. On note Vjk = V (xj .. On approxime le laplacien u par la formule de diff´rence finie suivante e Vj. . e e ` e Dans le premier cas.k + = −ρjk 2 ∆ ∆2 56 (6. Il n’est donc pas n´cessaire de garder en m´moire la e e e e e solution a tous les temps. 6. la solution est unique une fois donn´e la fonce e tion ρ(x.k−1 − 2Vj.7) (6. Avant de proc´der a la r´solution num´rique. .1 Equations avec conditions aux fronti`res e Introduction Le prototype de ces ´quations est la r´solution de l’´quation de Poisson. yk ).k + Vj−1.. y). la r´solution de l’´quation se fait pour un temps donn´ en fonction des e e e valeurs de la fonction a l’instant ant´rieur pr´c´dent (ou de quelques instants ` e e e ant´rieurs pr´c´dents).9) .k Vj+1. ` Pour l’´quation de Poisson.2 6. condition de Neumann qui e ` e sp´cifie les valeurs des gradients normaux a la fronti`re. 6.Equations aux d´riv´es partielles e e La r´solution num´rique repose sur une distinction importante entre ces e e type d’´quations : Les deux premi`res ´quations correspondent a une ´volution e e e ` e temporelle tandis que la troisi`me ´quation correspond a un probl`me statique. on obtient un sch´ma du type de celui illustr´ par la figure 6. il est important de bien distine ` e e guer le type de conditions aux fronti`res du probl`me : condition de Dirichlet. que nous allons discuter dans la section suivante. y) xi = x0 + j∆ yk = x0 + k∆ j = 0. il est n´cessaire de ` e ` e e e proc´der a des r´ajustements.2 Diff´rences finies e La premi`re ´tape consiste a choisir un maillage r´gulier de l’espace (que e e ` e nous choisissons bidimensionnel dans notre exemple)..2). en compl´ment on e e e doit tenir compte des conditions au limites du probl`me.. J k = 0..k − 2Vj. Ces e e e ´quations sont a priori plus simples a r´soudre car le probl`me de la stabilit´ e ` e e e de l’algorithme se pose moins fr´quemment que dans pour des ´quations avec e e conditions initiales. e e e e e e En effet pour une ´quation d´pendante du temps du type ´quation de diffusion. La solution ne pouvant ˆtre obtenue num´riquement directement e e a partir de l’int´gration a partir d’une fronti`re du syst`me.1. la solution est donn´e a partir d’une fonction (ou condition e ` initiale) que l’on doit propager le long de l’axe du temps . Soit la fonction de deux variables V (x. e e qui sp´cifie les valeurs des points a la fronti`re . 1. K (6. 1.8) o` ∆ est le pas de la grille.. En discr´tisant la r´solution.

11) L’´quation (6. e Pratiquement. y) 2 ∂x2 ∂x ∂y ∂V ∂2V + d(x. y) ∂V ∂2V ∂2V +b(x. y) ∂y ∂x∂y (6.k+1 + Vj.11).k−1 − 4Vj.. les m´thodes de Fourier et les m´thodes matricielles directes. On d´e e e e compose la matrice A comme A=E−F 57 (6.4 M´thodes de relaxation e Les m´thodes de relaxation reposent sur le sch´ma it´ratif suivant.13) En choisissant une classification tr`s rapide.10) Ce syst`me d’´quations lin´aires peut s’exprimer sous une forme matricielle en e e e utilisant l’indexation suivante i = j(K + 1) + k j = 0. A. J et k = 0. 1.12) La matrice A est une matrice tridiagonale avec des franges.9) est correcte pour l’ensemble des points int´rieurs au rectangle.14) ..3 M´thodes matricielles e Les m´thodes matricielles ou m´thodes directes consistent a d´terminer les e e ` e valeurs de la fonction V en calculant la matrice inverse de A.k = −∆2 ρjk (6.2 Equations avec conditions aux fronti`res e que l’on peut ´crire simplement e Vj+1. On obtient finalement la structure matricielle e e e suivante. y) + e(x... la matrice inverse est facile a obtenir quand les ´l´ments de ` ee matrice ne d´pendent pas des abscisses du r´seau (cas d’une ´quation elliptique e e e a coefficients constants).. y)V = g(x. .k + Vj.6. y) + f (x. contenant 108 ´l´ments. et compte tenu de l’´quation (6. les valeurs de V ou de ces d´riv´es sont done e e n´es par le probl`me lui-mˆme.. . K (6. La difficult´ e de cette m´thode repose sur la taille consid´rable de la matrice que l’on doit e e inverser. 1.k + Vj−1. Il est donc n´cessaire e ee e que cette matrice soit tr`s creuse et de structure simple afin que le calcul de e son inverse soit effectu´ avec un algorithme rapide. on peut dire qu’il existe trois e types de m´thodes pour r´soudre ce type d’´quations : les m´thodes de relaxae e e e tion. le vecteur Y est un vecteur a JK composantes (Yi ≡ Vjk ) et le vecteur b a JK composantes (bi ≡ ` ` −ρjk ) Ce type de repr´sentation est similaire pour des ´quations elliptiques du e e second ordre a(x. ` 6. e e 6.2. En effet. la matrice A est alors une matrice e carr´e de taille 10000 × 10000. e e Pour les points aux fronti`res.2. y) + c(x. si on consid`re un r´seau bidimensionnel dont la taille est e e 100×100.Y = b (6.

u(r−1) + b (6. e Noter que la transform´e de Fourier obtenue donne les relations suivantes e ujk = uj+J. 58 . A partir de l’´quation (6. les compoe e e santes de Fourier de V sont reli´es a celles de ρ par la relation e ` ˆ Vmn e2iπm/K + e−2iπm/K + e2iπn/L + e−2iπn/L − 4 = −ˆmn ∆2 ρ −ˆmn ∆2 ρ 2πm 2 cos K + cos (6.16) La convergence de la m´thode est obtenue quand la diff´rence entre deux valeurs e e (r) − u(r−1) < .18) En prenant la transform´e de Fourier discr`te de l’´quation (6.17) Vkl = KL m=0 n=0 Une expression analogue pour la fonction ρ peut ˆtre obtenue e ρkl = 1 KL K−1 L−1 ρmn e−2iπkm/K e−2iπln/L ˆ m=0 n=0 (6.20) : ˆ Vmn ˆ – Calculer la transform´e de Fourier inverse de V pour obtenir V .10).2.u(r) = F. il faut modifier la solution choisie pour V comme nous allons le voir ci-dessous. 6.Equations aux d´riv´es partielles e e o` E est une matrice facilement inversible et F le reste.u + b (6.20). La norme u d´signe par de la fonction est inf´rieure a .19) ce qui peut se r´´crire plus simplement pour si n et m diff´rents de z´ro comme ee e e ˆ Vmn = 2πn L −2 (6.21) ce qui en d’autres termes correspond a une solution satisfaisant des conditions ` aux limites p´riodiques.k+K (6. Si cette derni`re relation choisir V e e ˆ e n’est pas satisfaite. K−1 L−1 1 ˆ Vmn e−2iπkm/K e−2iπln/L (6. on voit que l’on peut e e ˆ00 = 0. on proc`de a la succession de calculs suivants e ` E. u e ` e exemple ij |uij |2 . La m´thode de r´solution num´rique est donc la suivante : e e e – Calculer les composantes de Fourier de ρ : ρmn ˆ – Calculer les composantes de Fourier de V en utilisant la relation (6.k = uj.20) La relation alg´brique entre les composantes de Fourier de V et de ρ indique e que le calcul dans l’espace de Fourier est ´l´mentaire et revient a multiplier ee ` individuellement chaque composante de ρ par un scalaire.u = F. On peut ´crire alors u e que E. mais qu’il est n´c´ssaire que ρ00 = 0.15) En choisissant un vecteur u(0) .5 M´thodes de Fourier e Principe On exprime la transform´e de Fourier discr`te de V dans les deux directions e e Ox et Oy.

A nouveau. e e De mani`re analogue. cela revient a r´soudre le probl`me de Neumann en ` ` e e modifiant le terme de source. on obtient ` e 2 (6. En utilisant une d´composition analogue e e a celle introduite ci-dessus. Le calcul de u est effectu´ en ajoutant un terme de source a ρ. Le mˆme sch´ma donn´ ci-dessus s’applique alors. 59 . En ´crivant la solution sous la forme e u = u + uB avec uB = 0 sauf uB = f a la fronti`re. e Vkl = 2 KL K−1 L−1 ˆ Vmn sin m=0 n=0 πkm K sin πln L (6. e Vkl = 2 KL K−1 L−1 ˆ Vmn cos m=0 n=0 πkm K cos πln L (6. cela ajoute e ` une contribution sur la ligne situ´e juste avant la fronti`re.22) Une expression similaire pour la fonction ρ peut ˆtre ´crite. on d´compose la solution d’une premi`re contribution e e ` e correspondant a la solution du probl`me de Neumann et d’une seconde contribution nulle en dehors de la fronti`re. mais vaut u = f (y) sur la fronti`re oppos´e (j = J). c’est-`-dire a u = 0 pour j = 0 et j = J et pour k = 0 et k = K. la transform´e de e Fourier adapt´e est alors celle en cosinus. les composantes de Fourier sont reli´es e par la relation (6. e e e Conditions complexes Ceci repr´sente le cas g´n´ral o` par exemple la fonction u(x.20).6. et la m´thode de calcul donn´e dans le paragraphe pr´c´dent e e e e s’applique a nouveau a condition de consid´rer les transform´es de Fourier en ` ` e e sinus. Pratiquement. Un calcul simple e e montre que la relation (6.25) ce qui montre que la fonction satisfait alors une condition de Dirichlet.20) relie les composantes de Fourier en sinus des deux fonctions.24) u =− 2 B u +ρ (6.23) ainsi que pour la fonction ρ. y) s’annule sur e e e u l’une des fronti`res (j = 0). Condition de Neumann Si on impose des conditions de Neumann aux bords du rectangle.2 Equations avec conditions aux fronti`res e Condition de Dirichlet Si on impose des conditions de Dirichlet aux bords du rectangle. si la condition aux fronti`res est donn´e par un grae e e dient normal non nul. e e e La m´thode consiste alors a ´crire que la solution de ce probl`me est la somme e `e e de deux contributions : celle de la solution de l’´quation pour une condition e ` e de Dirichlet et celle de la solution qui est nulle a l’int´rieur du rectangle. la transform´e de Fourier e adapt´e est alors celle en sinus. c’est-`a dire u = 0 pour j = 0 et j = J et pour k = 0 et k = K.

mais e e nous allons chercher a construire une proc´dure num´rique pour d´terminer la ` e e e solution.34) ∂t ∂x La solution de cette ´quation est bien ´videmment connue u = f (x − ct).27) Si de plus on a une relation constitutive.28) et l’´quation de propagation s’exprime alors par un ensemble de deux ´quations e e aux d´riv´es partielles du premier ordre e e ∂r ∂s =c ∂t ∂x ∂s ∂r =c ∂t ∂x (6.29) (6.3.u (6.(ρv) ∂t (6.31) (6. e e Par souci de simplicit´.1 Equations avec conditions initiales Equations ` flux conservatif a Les ´quations a flux conservatif dans un espace unidimensionel peuvent e ` s’´crire sous la forme e ∂F (u) ∂u =− (6. par exemple) se ram`ne a ce type d’´quation. F = ρv = −D (ρ). comme la loi de Fick. e ∂2v ∂2v = c2 2 ∂t2 ∂x on introduit les fonctions auxiliaires r et s r=c ∂v ∂x ∂v s= ∂t (6.Equations aux d´riv´es partielles e e 6. nous allons consid´rer par la suite l’´quation a flux e e e ` conservatif suivante ∂u ∂u = −c (6.33) F (u) = −c 0 . on obtient l’´quation parabolique de la diffusion. l’´quation de e e propagation est alors donn´e par l’´quation (6. En effet soit e e ` e l’´quation des ondes suivante.32) Ainsi les ´quations a flux conserv´ comprennent a la fois les ´quations aux e ` e ` e d´riv´es partielles paraboliques et hyperboliques. l’´quation de propagation des ondes (sonores ou ´lece e tromagn´tiques. e Si u est un vecteur.26) avec la relation matricielle e e suivante 0 −c . F est appel´ flux u e conserv´.30) (6.26) ∂t ∂x o` u et F sont des fonctions soit scalaires soit vectorielles .3 6. on peut citer l´exemple de l’´quation de la conservation de la masse e e (correspondant a une fonction u scalaire) ` ∂ρ = − . 60 Si on consid`re que r et s sont les deux composantes du vecteur u.

35) (6. .39) (6. u La difficult´ r´side maintenant dans le choix de l’algorithme d’int´gration.n un+1 − un j j ∆t + O(∆t) (6. e j j+1 j−1 j On parle de m´thode explicite. Cela revient a dire ` que l’algorithme est instable d`s qu’il existe un vecteur d’onde k0 tel que e |ξ(k0 )| > 1 61 (6.3. En d’autres termes. un et un . . Afin que la solution soit stable. . . . e e e 6.3 Equations avec conditions initiales 6. il est n´cessaire m´trique pour les valeurs de uj e e que les modes exponentiellement divergents n’existent pas.37) Mˆme si la pr´cision de l’algorithme n’est pas tr`s importante. on dit qu’il est instable.n un − u n j+1 j−1 + O(∆x2 ) 2∆x (6. u e e On voit facilement que l’int´gration temporelle conduit a une progression g´oe ` e n . J n = 0. on suppose que les coefe ficients de l’´quation aux diff´rences varient tr`s peu dans l’espace et le temps.38) = −c un − u n j+1 j−1 2∆x un − u n j+1 j−1 2∆x (6. 1.42) .2 Une approche na¨ ıve Une premi`re ´tape consiste a discr´tiser l’espace et le temps sur un r´seau e e ` e e r´gulier e xj = x0 + j∆x tn = t0 + n∆t j = 0. . e e e La m´thode la plus simple consiste a utiliser un algorithme de type Euler e ` ∂u ∂t = j. ce sch´ma tr`s simple ne e e e fonctionne pas en ce sens qu’il ne permet pas d’obtenir une solution correcte de l’´quation aux d´riv´es partielles.6. on utilise un algorithme du second ordre e ∂u ∂x ce qui donne finalement un+1 − un j j ∆t soit encore n+1 uj = un − c∆t j = j. 1. Malheureusement. N (6. cela permet e e e d’exprimer la solution a l’instant n + 1 uniquement en fonction de l’instant n.3. ` Pour int´grer spatialement.41) j o` k est un vecteur d’onde r´el et ξ(k) une fonction complexe qui d´pend de k. e e e Les modes propres solutions de cette ´quation peuvent alors s’´crire sous la e e forme un = ξ(k)n eikj∆x (6.36) o` ∆x et ∆t sont les pas d’espace et de temps respectivement.3 Crit`re de Stabilit´ de Von Neumann e e Pour faire l’analyse de la stabilit´ des algorithmes.40) La d´termination de un+1 se fait en fonction des trois points : un .

46) ∆x 62 . e e e 6.43) Le module de ξ(k) est strictement sup´rieur a 1 pour tous les vecteurs d’onde. e ` hormis ceux o` k∆x = pπ o` p est un entier.41) dans l’´quation (6. 6.Equations aux d´riv´es partielles e e 5 4.5 2 1.45).44) En ins´rant la solution (6.5 1 Stable (b) 1 2 3 4 x 5 6 7 8 1 2 3 4 x 5 6 7 8 Fig.41) dans l’´quation (6.4 M´thode de Lax e Pour corriger le grave probl`me d’instabilit´ de la m´thode pr´c´dente.5 1 t t 5 Instable (a) 4. Ceci permet de comprendre la u u nature catastrophique de la m´thode pr´c´dente.3 – Sch´ma illustrant le principe de la r´solution d’une ´quation aux e e e d´riv´es partielles avec la m´thode de Lax : La zone hachur´e indique la zone e e e e de d´pendance (a) M´thode instable (b) M´thode stable e e e En ins´rant l’´quation (6.5 4 3. Lax a e e e e e n provenant de la d´riv´e temporelle propos´ la modification suivante : le terme uj e e e est remplac´ par la moyenne sur les deux points adjacents : e 1 n un → (un + uj−1 ) j 2 j+1 ce qui donne la relation it´rative suivante e un − u n 1 j+1 j−1 n+1 uj = (un + un ) + ∆t j−1 2 j+1 2∆x (6.45) (6.5 3 2.5 4 3. on obtient une expression e e pour ξ(k) c∆t ξ(k) = cos(k∆x) − i sin(k∆x) (6.5 3 2.5 2 1.3.39) et on obtient e e e ξ(k) = 1 − i c∆t sin(k∆x) ∆x (6.

4 Conclusion Les difficult´s des m´thodes num´riques pour la r´solution des ´quations e e e e e e e e d´riv´es partielles ont des origines diverses : elles proviennent soit des subtilit´s li´es au choix de l´algorithme comme dans le cas des ´quations avec conditions e e initiales. e 6. soit des probl`mes de stockage en m´moire dans le cas des ´quations e e e avec conditions aux fronti`res. consid´rons les figures suivantes : les zones e e hachur´es correspondent a la solution donn´e par la solution exacte de l’´quation e ` e e de propagation : si la valeur du point a l’´tape n + 1 d´pend des valeurs des ` e e points situ´es dans la zone hachur´e.6. De tels d´veloppements d´passent largement le cadre de ce cours introductif. Le domaine de e la r´solution des ´quations aux d´riv´es partielles reste un domaine tr`s actif e e e e e de recherche en analyse num´rique. soulignant a la fois l’int´rˆt de nouvelles e ` ee m´thodes et la n´cessite d’obtenir des m´thodes de plus en plus performantes.4 Conclusion La condition de stabilit´ |ξ(k)| < 1 ´quivaut a choisir e e ` c∆t ≤1 ∆x (6. Des difficult´s suppl´mentaires apparaissent pour e e e e e e e u des ´quations aux d´riv´es partielles non-lin´aires (cas de l’hydrodynamique) o` il est n´cessaire d’introduire des nouveaux crit`res pour l’analyse de la stabilit´ e e e des algorithmes. l’algorithme est instable. le sommet de cette zone d´pend de points situ´s a l’ext´rieur e e ` e de la zone hachur´e et l’algorithme est stable. Il est facile de comprendre que la discr´tisation spatioe e ` temporelle doit se faire a une vitesse qui est donn´e par ∆x inf´rieur a la vitesse ` e ∆t de propagation du ph´nom`ne c. Pour comprendre graphiquement la raison e e pour laquelle le rapport du pas en temps sur celui de la position ne doit pas exc´der la vitesse de propagation. e e mais cela illustre la grande complexit´ de ce sujet. Inversement dans e e la figure de droite.47) Cette condition. dite de Courant est appel´e aussi condition de stabilit´ de e e Courant-Friedrichs-Lewy. e e e 63 . En effet.

Equations aux d´riv´es partielles e e 64 .

. . . . . . .3 M´thode avec pivot .1 7. . on peut ´crire celles-ci comme e e A. . . . . . . . . . . 7. . .4.1 Introduction Les deux chapitres qui suivent concernent le traitement num´rique des mae trices Ce premier chapitre est consacr´ aux m´thodes employ´es pour r´soudre e e e e les quatre tˆches les plus fr´quemment rencontr´es pour les syst`mes lin´aires. e ´ Elimination gaussienne avec substitution . . . . . . . . . .5.  . . . . . . 7. . . . . . .2 Introduction . . . . . . . .1) (7. . .1 Principe . . . . . . . . . . . . . . . . 7. . . . . . . . . . . 7. . . . . . . . . . . . aM 1 aM 2 . . . .6 7. 7. . . . . . .5 7. . . . . . . . . 7. 7. . . . .7 7.3 7. . . . . . e 7. . . . . . . . . . .2) . . 7. e Conclusion . e e e Matrices creuses . .1 Introduction . . .3 Formule de Sherman-Morison . . ´ Elimination de Gauss-Jordan . .5. . .. . . . . . a2N     . . . . . . . . . . . . . . . . . . .2. . . . . . . . e 7. . . . . . . . D´composition LU . . . . .1 Rappels sur les matrices .x = b o` A est une matrice M × N u   a11 a12 . . . . a e e e e Par d´finition. . . . . . . . . . a1N  a21 a22 . . . . . .  . . . . . . . . . . . . . . . .2 Matrices tridiagonales . . . . . . . . . . . .4. .. . D´composition de Choleski . . . . . . . .2 R´solution d’un syst`me lin´aire .2. . .2.4 . . . . . . . . . . . . . .. . . . . . . . . . . .5. . . .2 M´thode sans pivot . . . .  A= .   . .. . . . . . . 65 67 67 67 68 68 69 69 70 71 71 72 72 72 73 . . . . .  .Chapitre 7 Alg`bre lin´aire e e Contenu 7. . . . . . aM N 65 (7. .   . .

  . xM  (7.  . il y autant d’´quations que d’inconnues et si aucune des ´quations e e n’est une combinaison lin´aire des N −1 autres. bN   x1  x2     . il est g´n´ralement n´cessaire de proc´der ` e e e e a un calcul num´rique pour obtenir la solution d’un syst`me d’´quations li` e e e n´aires. les ´quations sont ind´pendantes entre elles et il n’y a pas de solution. Nous allons donc voir tout d’abord le principe e e e d’une m´thode g´n´rale pour une matrice quelconque. Comme nous allons le voir ci-dessous. si la matrice A n’est pas une e matrice creuse (matrice dont la majorit´ des ´l´ments est nulle). 1 e – la d´termination des solutions d’un ensemble de syst`mes. il y a une ind´termination et il existe une infinit´ de solutions.Alg`bre lin´aire e e x est un vecteur colonne de M ´l´ments et b un vecteur colonne de N ´l´ments. la solution existe et est unique.3) Hormis pour des valeurs de N tr`s petites (typiquement N ≤ 4).   . N 3 . les solutions obtenues peuvent ˆtre aussi fausses.   .xj = bj o` xj et bj sont des vecteurs a N composantes et j un indice u ` parcourant un ensemble fini d’entiers. – le calcul du d´terminant de A. l’accumulation d’erreurs d’are rondi. e Parmi les tˆches typiques d’alg`bre lin´aire hormis la r´solution d’un sysa e e e t`me lin´aire. ee ee  b1  b2     . puis consid´rer quelques e e e e unes des techniques sp´cifiques qui d´pendent de la structure des matrices. o` les e u formules sont simples a exprimer. – le calcul de l’inverse de A : A−1 . il est n´cese ee e e e e ` saire d’appliquer une m´thode g´n´rale qui revient en quelque sorte a inverser la matrice A (ou a la factoriser). Dans le cas d’une matrice dont le d´terminant est tr`s voisin de z´ro e e e e (matrice presque singuli`re). e De mani`re encore plus aigu¨ que dans les chapitres pr´c´dents.  . e e Si N > M . une m´thode e e e e e de force brute est bien moins efficace pour r´soudre un probl`me d’alg`bre lie e e n´aire qu’une m´thode sp´cifique.   .   . e e L’´norme biblioth`que de sous-programmes pour les probl`mes d’alg`bre lie e e e n´aire montre l’importance de ces probl`mes dans le calcul num´rique et la e e e n´cessit´ de choisir une m´thode sp´cifique d`s que la matrice a des propri´t´s e e e e e ee particuli`res. Si e e N < M .  b= . par exemple e e A.  x= . souvent li´e a des soustractions de nombres voisins fournit un vecteur x e ` erron´. e e 1 66 . on peut citer e e Si N = M . ce qui n´cessite un grand nombre d’op´rations ` e e qui augmente comme le cube de la dimension lin´aire de la matrice.   . e Mˆme si la proc´dure num´rique est cens´e conduire a une solution dans le e e e e ` cas d’une matrice non singuli`re (det(A) = 0).

1 ´ Elimination de Gauss-Jordan Rappels sur les matrices Il est utile de remarquer que le calcul des quatre tˆches pr´c´dentes peut a e e ˆtre a priori ex´cut´ de mani`re similaire : en effet. Ainsi on voit que e e e l’inversion d’une matrice est identique a la r´solution d’un ensemble de N sys` e t`mes lin´aires pour lequel le vecteur situ´ dans le membre de droite a tous les e e e ´l´ments nuls sauf un seul qui est diff´rent pour chaque colonne. si ` e on souhaite obtenir la matrice Y dans l’ordre initialement choisi.2 Elimination de Gauss-Jordan 7. ee e e – De mani`re similaire.2. on a e         y11 y12 y13 y14 t1 x1 a11 a12 a13 a14 a21 a22 a23 a24  x2  t2  y21 y22 y23 y24          a31 a132 a133 a34  . Toutefois. ´ – Echanger les lignes de A et de b (ou c ou de la matrice identit´) et en e gardant x (ou t ou Y ) ne change pas la solution du syst`me lin´aire.2 M´thode sans pivot e Pour la simplicit´ de l’expos´. e – L’´change de deux colonnes de A avec ´change simultan´ des lignes core e e respondantes de x (ou t ou Y ) conduit a la mˆme solution.2. x3  t3  y31 y132 y133 y34  = y41 y42 y43 y44 t4 x4 a41 a42 a43 a44       b1 c1 1 0 0 0 b  c  0 1 0 0  =  2   2   (7. en effectuant une op´ration analogue pour b (ou c ou la e matrice identit´). la solution du syst`me lin´aire est inchang´e si toute e e e e ligne de A est remplac´e par une combinaison lin´aire d’elle-mˆme et des e e e autres lignes. il est n´cessaire de proc´der a l’op´ration inverse une fois la solution obtenue.´ 7. On multiplie la premi`re ligne de A par 1/a11 (et la ligne correspondante e de b ou de la matrice identit´).2 7. e e ` e 7.5) 0 a32 a33 a34  0 a42 a43 a44 67 . ee e Les trois r`gles ´l´mentaires que l’on peut r´aliser sur les matrices sont les e ee e suivantes. a31 fois la 1`re ligne a la troisi`me ligne et ainsi de suite jusqu’` la derni`re e ` e a e ligne. La matrice A a maintenant la structure suivante   1 a12 a13 a14 0 a22 a23 a24    (7. on consid`re tout d’abord une matrice dont e e e ee e e les ´l´ments diagonaux sont strictement diff´rents de z´ro. On soustrait a21 fois la 1`re ligne a la deuxi`me e e ` e ligne. Il e e s’agit d’une r´´criture des ´quations dans un ordre diff´rent. si on consid`re par exemple e e e e e un syst`me 4 × 4.4) b3  c3  0 0 1 0 b4 c4 0 0 0 1 o` l’op´rateur u e d´signe l’op´rateur r´union de colonnes.

Or. On peut obtenir alors facilement la solution du syst`me d’´quations. une matrice n’est ee pas n´cessairement singuli`re si un seul ´l´ment de la diagonale est nul. e ee e De plus.Alg`bre lin´aire e e o` les coefficients aij s’expriment en fonction des coefficients o` les coefficients u u aij .6) 0 0 a33 a34  0 0 a43 a44 e e e a e On it`re le proc´d´ jusqu’` la derni`re ligne et on obtient alors la matrice identit´. on ajoute aux op´rations e e e e e pr´c´dentes la troisi`me r`gle ´nonc´e ci-dessus. Pour e e ee permettre une plus grande g´n´ralit´ de la m´thode. il n’est pas n´cessaire d’obe e e e tenir une matrice diagonale comme celle obtenue par la m´thode pr´c´dente.7) . en utilisant e e e e e e l’inversion des colonnes. e e e Ainsi en effectuant a chaque ligne la soustraction des lignes situ´es au dessous ` e de la ligne dont le coefficient de la diagonale vient d’ˆtre r´duit a l’unit´. On multiplie alors la deuxi`me ligne par 1/a22 . ` e 7. placer sur la diagonale un ´l´ment non nul de la ligne ee (si tous les ´l´ments d’une ligne sont nuls.3 ´ Elimination gaussienne avec substitution Pour la r´solution stricte d’un syst`me lin´aire. on peut montrer que la recherche du plus grand ´l´ment de la ligne ee pour faire la permutation des colonnes rend la proc´dure bien plus stable. ce qui a ´t´ exclu par hypoth`se).2. On peut en effet. on e e ` e obtient une matrice triangulaire sup´rieure dont la structure est la suivante e  a11 a12 a13  0 a22 a23   0 0 a133 0 0 0      x1 b1 a14  x2  b2  a24      .3 M´thode avec pivot e La m´thode pr´c´dente souffre du d´faut de ne s’appliquer qu’aux matrices e e e e dont tous les ´l´ments de la diagonale sont non nuls. puis on soustrait a12 fois e la deuxi`me ligne a la premi`re ligne. = a34  x3  b3  a44 b4 x4 68 (7. La matrice A a maintenant la a e structure suivante   1 0 a13 a14 0 1 a23 a24    (7. en e particulier en augmentant de mani`re importante la pr´cision num´rique des e e e solutions. Ce type d’algorithme est disponible dans de nombreuses biblioth`ques et il e est parfaitement inutile de chercher a r´´crire un code qui n´cessite un temps ` ee e important a la fois pour sa r´alisation et pour sa validation. cela signifie que le d´terminant de la ee e matrice est nul et que la matrice est singuli`re. a32 fois la deuxi`me ligne a la troisi`me e ` e e ` e ligne et ainsi de suite jusqu’` la derni`re ligne. e e e 7.

. . ...  .1).10) Cette m´thode est avantageuse dans le cas des syst`mes lin´aires car le nombre e e e d’op´rations a effectuer est d’ordre N 2 . . . contrairement a la m´thode pr´c´dente e ` ` e e e qui n´cessite de calculer compl`tement l’inverse de la matrice et n´cessite un e e e temps de calcul en N 3 .7. . .   . .8) (7. αN N et  β11 β12 β13 .. . e A = L.. 7..12) L= ... . S’il faut r´soudre un ensemble de syst`mes lin´aires comprenant N termes. 7. 0     . .4 D´composition LU e Les m´thodes pr´c´dentes n´cessitent de connaˆ e e e e ıtre a l’avance le membre ` de gauche de l’´quation (7. .  . . 0  (N −1)(N −1) αN 1 αN 2 . . 0  α21 α22 0 . β1N  0 β22 β23 .. .4 D´composition LU e Il est possible de faire la r´solution de ce syst`me lin´aire par une proc´dure de e e e e substitution successive b4 a44 1 x3 = (b − x4 a34 ) a33 3 x4 = et de mani`re g´n´rale e e e xi = 1 (bi − aii N (7..11) o` L est une matrice triangulaire inf´rieure et U une matrice triangulaire sup´u e e rieure.  . α  . .. . (7. .. . . . (N −1)(N −1) β(N −1)N  0 0 .. β2N     .4.U (7. . . . β  .... . .. .1 Principe Nous allons montrer que toute matrice N × N peut se d´composer de la e mani`re suivante. . . ... . . .  . .. e e e cela est alors ´quivalent a r´soudre l’inversion d’une matrice et l’on retrouve un e ` e temps de calcul de l’ordre de N 3 .    . . .  U = .13) .. ... . .  .9) aij xj ) j=i+1 (7. Les m´thodes qui suivent consiste a r´´crire la e e ` ee e e e e e matrice A afin que la r´solution du syst`me d’´quations soit ex´cut´e plus facilement.  . . . . soit   α11 0 0 .... 0 βN N 69  (7.

16) pour i ∈ [1. N ]. ..20) (7. . . B .15) Ce syst`me d’´quations lin´aires donne N 2 ´quations et le nombre d’inconnues e e e e est 2 N (N +1) . . (7. . .17) (7. . β1N B α21 β22 β23 . β 0 (N −1)(N −1) (7. .x = L. .2 e 7..4. en utilisant les relations suivantes i−1 βij = aij − αij = 1 (aij − βjj αik βkj αik βkj ) k=1 j−1 i≤j i≥j+1 (7.x = L. A . C .Alg`bre lin´aire e e En effectuant la multiplication matricielle de L par U .y = b (7. . C .14) aij = (7..U.. on obtient les relations suivantes i aij = l=1 j αil βlj αil βlj l=1 i≤j i>j (7. L’algorithme de Crout permet de calculer simplement les N 2 coefficients restants.21) αN 1 αN 2 . B . . ee ee e ` 70 . C . . . ..(U x) = b Soit L. . C .. On fixe donc e e la valeur de la diagonale de la matrice L αii = 1 (7. βN N en se rappelant que les ´l´ments diagonaux de la matrice α ont ´t´ choisis ´gaux a un. @ . . On peut donc choisir N e e e 2 ´quations suppl´mentaires afin d’obtenir une et une seule solution. on peut ´crire les deux matrices e ` e sous la forme d’une seule matrice de la forme 0 1 β11 β12 β13 ... .22) 2 Sachant que le nombre d’inconnues est devenu ´gale a N 2 . Ce syst`me est donc surd´termin´. . ..18) k=1 Il faut noter que les sous-programmes cr´ant cette d´composition s’appuie sur e e la recherche du meilleur pivot afin que la m´thode soit stable. . β2N C B C . A.19) B B .2 R´solution d’un syst`me lin´aire e e e La r´solution d’un syst`me lin´aire devient tr`s simple en introduisant le e e e e vecteur y. . . .

7.26) βij xj ) j=i+1 (7. – simplement ou doublement bord´es : par rapport a la d´finition pr´c´e ` e e e ee e dente.5 Matrices creuses U.1 Matrices creuses Introduction On appelle matrice creuse une matrice dont la plupart des ´l´ments sont ee ´gaux a z´ro.x = y Chaque syst`me peut ˆtre r´solu par une proc´dure de substitution. Si de plus. e e le d´terminant de la matrice est ´gal au produit des ´l´ments de sa diagonale. des ´l´ments non nuls suppl´mentaires existent le long des lignes ou colonnes du bord de la matrice. la structure des ´l´ments non nuls est simple.24) αij yj ) j=1 (7. et le d´terminant de A est donc ´gal e ` e e a ` N det(A) = j=1 βjj (7.25) (substitution a partir du premier ´l´ment car la matrice est triangulaire inf´` ee e rieure). De plus pour une matrice triangulaire. On obtient la solution pour le vecteur x en utilisant xN = xi = yN βN N 1 (yi − βii N (7. il n’est e ` e ee pas n´cessaire de r´server une quantit´ de m´moire ´gale a celle de la matrice e e e e e ` compl`te. e e ee Comme les ´l´ments de la diagonale de L ont ´t´ choisis ´gaux a 1. le calcul du d´terminant d’une mae e e trice devient tr`s simple. Parmi les cas simples de matrices creuses.27) car la matrice est triangulaire sup´rieure.23) (7.28) 7.5. e e e e y1 = yi = b1 α11 1 (bi − αii i−1 (7. On sait que le d´terminant d’un produit de matrices e e est ´gale au produit des d´terminants.5 7. e Une fois effectu´e la d´composition LU . Des algorithmes sp´cifiques permettent de r´duire le temps de calcul e e e de mani`re consid´rable. – diagonales par bande de largeur M : les ´l´ments de matrice tels que ee |i − j| > M sont nuls aij = 0. citons les e e matrices – tridiagonales : les ´l´ments de matrice non nuls sont sur la diagonale et ee de part et d’autre de celle-ci sur les deux lignes adjacentes. On a aij = 0 pour |i − j| > 1. le d´termiee ee e ` e nant de cette matrice est donc ´gal a 1. 71 .

..2 Matrices tridiagonales   x1 y1   x 2   y2        .u ⊗ v + A −1 . . .   .. 0 .5.32) (7. .A −1 (7. on a λ = v. .A−1 = (1 − A −1 (7. (7. peut-on ee calculer encore facilement l’inverse de cette nouvelle matrice ? B =A+u⊗v (7.) = A−1 − (A−1 .35) 7. u ⊗ v repr´sente une matrice dont e e e l’´l´ment ij est le produit de la i`me composante de u par la j`me composante ee e e de v.  . bN N xN yN 0 0 . .    .   Soit le syst`me suivant e  b1 c1 0 a2 b2 c2   . ` 7.31) −1 = A−1 − A−1 .x > 0 72 (7.30) ou le symbole ⊗ d´signe le produit ext´rieur. .3 Formule de Sherman-Morison Supposons que l’on ait une matrice A dont on a facilement calcul´ l’inverse e (cas d’une matrice tridiagonal).   =  .  0 . On a utilis´ l’associativit´ du produit ext´rieur et produit u e e e interne. De mani`re g´n´rale. bN −1 ..34) o` λ = v.  .u ⊗ v − . . .  cN −1   . on a e e x.29) Noter qu’avec cette notation a1 et cN ne sont pas d´finis. Il y a un vaste de choix e de biblioth`ques disponibles pour calculer les solutions qui prennent un temps e de calcul proportionnel a N . . Posons z = A−1 u et w = (A−1 )T v. .A−1 u.A .u ⊗ vA−1 (1 − λ + λ2 + . . 0 0 . Si on fait un petit changement dans A en modifiant par exemple un ou quelques ´l´ments de l’ensemble de la matrice.  .Alg`bre lin´aire e e 7. .....  .A.u) ⊗ 1+λ (v. .33) (7.u ⊗ v. ..5. .    .).z et B −1 = A−1 − z⊗w 1+λ (7.   .36) .A−1 ) .6 D´composition de Choleski e Une matrice est d´finie positive sym´trique (aij = aji ) quand ∀x. .. on peut obtenir aussi avoir ` e e e un algorithme proportionnel a N pour une matrice a bandes.. Le pr´facteur de ` ` e l’algorithme est proportionnel a M .  . La formule de Sherman-Morison donne l’inverse de B B −1 = (1 + A−1 .u ⊗ v)−1 . .

7 Conclusion quel que soit x. on peut r´soudre un e e e syst`me lin´aire simplement en utilisant la proc´dure de substitution pr´c´deme e e e e ment d´taill´e dans la section 7.7 Conclusion e e e e Avant de r´soudre des syst`mes lin´aires de grande dimension.LT Les ´l´ments de matrice sont d´termin´s par les relations ee e e i−1 (7. Il existe alors une matrice L triangulaire inf´rieure telle que e A = L.37) Lii = (aii − Lji = L2 )1/2 ik k=1 i−1 (7. e e 7.39) avec j ∈ [i + 1. N ]. e e ` e 73 .7.2. Les diff´rentes m´thodes e e pr´sent´es dans ce chapitre ne sont qu’une introduction a ce tr`s vaste sujet.4. il est imp´ratif de commencer par une analyse des propri´t´s de la matrice afin de d´terminer ee e la m´thode la plus adapt´e afin d’obtenir une solution avec une pr´cision core e e recte et pour un temps de calcul qui sera minimal.38) 1 (aij − Lii Lik Ljk ) k=1 (7. Une fois cette construction r´alis´e.

Alg`bre lin´aire e e 74 .

. . .Chapitre 8 Analyse spectrale Contenu Introduction . . . . . . . . . . . .2 M´thode de Lancz`s . . Propri´t´s des matrices . . . . . . . . . . .1 Introduction Ce chapitre est consacr´ aux op´rations que l’on peut r´aliser sur des mae e e trices. . . . . . . . . . . . e 8. .1 8. . . . . .1 M´thodes des puissances . e e 8. . . . . . . u e e Compte tenu du fait que dans C. . .2) o` 1 d´signe la matrice identit´. . . . . . . . . e o 8. . . Tout d’abord. . . . on appelle un vecteur propre x associ´ a la valeur propre λ. . e 75 . .2 8. e 8. . 8. . . .3. . . . . . . . . . . . . . .3 . . . . . . . . . . 8. e Les valeurs propres d’une matrice peuvent ˆtre d´termin´es comme les rae e e cines du polynˆme caract´ristique de degr´ N o e e det(A − λ. . la o e matrice A poss`de N valeurs propres complexes. . αx est aussi un vecteur propre e avec la mˆme valeur propre λ. . . .3. .4. . . . . tout polynˆme de degr´ N a N racines. .1) Si x est un vecteur propre. . 75 76 78 78 80 82 83 84 84 85 . . . . . . . . . . . . pour tout r´el α = 0. . .3 Algorithme QL . . . .1 M´thode de Jacobi . . . . . . . . . . . . . . . 8. . .4 Factorisation de Schur . . . . . . .x = λx (8. .2 R´duction de Householder e 8. . . . .3. . e e M´thodes directes . . . . un vecteur e` qui satisfait la relation A. . . . . e 8.1) = 0 (8. . . . . . . . . .4 M´thode it´ratives . . . .4. . . Plus sp´cifiquement. . . . . . . nous allons nous int´resser a la d´termination des e e ` e valeurs propres et/ou vecteurs propres correspondants. . . . . . quelques rappels utiles pour la suite de ce chapitre : soit une matrice carr´e A de dimene sion N . .3.

Pour une matrice normale avec des valeurs propres d´g´n´r´es. Si une matrice poss`de une valeur propre nulle. et la dimension de l’espace associ´ a cette valeur e e ee e` propre est sup´rieure ou ´gale a deux.A† = A† .A = 1 (8. on dit que la o e valeur propre est d´g´n´r´e. Des m´thodes plus adape e e e e t´es sont expos´es dans la suite de ce chapitre. e Une matrice est dite normale si elle commute avec son adjointe. entre matrice orthogonale et unitaire. e e e Les vecteurs propres d’une matrice normale ne poss´dant que des valeurs e propres non d´g´n´r´es forment une base d’un espace vectoriel de dimension e e ee N . les vecteurs e e ee propres correspondant a une valeur propre d´g´n´r´e peuvent ˆtre remplac´s ` e e ee e e par une combinaison lin´aire de ceux-ci.AT = AT . j (8.4) – Une matrice est hermitienne ou auto-adjointe si elle est ´gale au complexe e conjugu´ de sa transpos´e.2 Propri´t´s des matrices e e Les valeurs propres d’une matrice Hermitienne sont toutes r´elles. il vient a l’esprit la repr´sene e ` e 1 tation matricielle de l’op´rateur de Schr¨dinger en m´canique quantique e o e Un corollaire de la propri´t´ pr´c´dente est que les valeurs propres d’une ee e e matrice r´elle sym´trique sont elles aussi toutes r´elles. 8. l’ensemble des vecteurs propres ne constituent pas n´cessairement une base d’un espace de dimension N .xR = λi xR i i 1 (8.7) Pour les matrices a coefficients r´els. e e A = A† – Une matrice est orthogonale si son inverse est ´gale a sa transpos´e e ` e A.Analyse spectrale Quand une racine du polynˆme caract´ristique est multiple. e Pour une matrice non normale. les vecteurs propres ne sont pas orthogonaux.5) – Une matrice est unitaire si sa matrice adjointe est ´gale a son inverse e ` A. mais nous ne consid´rons ici que les syst`mes ou la repr´sentation matricielle est e e e possible dans un espace de dimension finie.3) (8.A = 1 (8. Parmi les e matrices Hermitiennes tr`s utilis´es en Physique. e e ` La d´termination des valeurs propres d’une matrice a partir de l’´quation e ` e caract´ristique n’est pas efficace sur le plan num´rique. e e – Une matrice est sym´trique si elle est ´gale a sa transpos´e e e ` e A = AT aij = aji ∀i.6) (8. e Pour une matrice quelconque. On appelle vecteur a droite les vecteurs tels que ` A.8) La repr´sentation de cet op´rateur correspond en g´n´ral a une matrice de dimension e e e e ` infinie. 76 . la matrice est dite singuli`re. il y a identit´ de d´finition entre matrice ` e e e sym´trique et Hermitienne.

diag(λ1 .XL (8. . il est toujours possible de compl´ter cet ensemble afin d’avoir une matrice e e telle que XL . .10) de mˆme on a e XL . les valeurs e e e propres de ces deux matrices sont identiques. On a u det(B − λ1) = det(P −1 . e ` e Dans le cas o` l’ensemble des vecteurs propres ne constitue une base comu pl`te. on peut obtenir que la matrice XL .12) ce qui montre que la matrice diagonale form´e par les valeurs propres de A e commute avec le produit XL . .8. Sachant que les seules matrices qui commutent avec une matrice diagonale constitu´e d’´l´ments diff´rents sont elles-mˆmes e ee e e diagonales. les vecteurs propres e e e a gauche sont les transpos´s des vecteurs propres a droite2 . on obtient e e XL .16) (8. . λn ). .diag(λ1 . En normalisant les vecteurs a droite et a ` e ` ` gauche.1)P ) Puisque le d´terminant d’une matrice et de sa transpos´e sont les mˆmes.XR . 77 . On introduit la matrice XL form´e par les lignes des vecteurs a gauche.XR = 1. on d´finit la matrice XR comme la e e e ` matrice constitu´e de colonnes form´es par les vecteurs a droite.XR = diag(λ1 .P o` P est une matrice inversible.10) par e −1 XR que −1 (8. on obtient en multipliant l’´quation (8. Si la matrice A est inversible.(A − λ.A. . . . on appelle vecteurs propres u e e a gauche.15) (8.11) En multipliant l’´quation (8. .XR . les vecteurs propres a gauche sont les trans` pos´s des vecteurs propres conjugu´s a droite.2 Propri´t´s des matrices ee o` λi est la i`me valeur propre.17) = det(A − λ.9) Le transpos´ du vecteur a gauche de A est le vecteur propre a droite de la e ` ` transpos´e de la mˆme matrice. .XR soit ´gale a l’identit´. e e ` Dans le cas d’une matrice non normale. λn ) (8.1) 2 . .A.11) par XR . On obtient par d´finition e ` e que A. .13) XR .A.A = λi xi i (8. les vecteurs tels que ` L xL .14) (8.P − λ. .XR (8. .1) = det(P −1 (8. λn )XL . . Si la matrice est sym´trique. .A = diag(λ1 .XR = XR . De mani`re similaire. . on en d´duit que chaque vecteur a gauche est orthogonal a chaque e ` ` vecteur a droite et r´ciproquement.10) par XL et l’´quation (8. λn ) Nous avons alors construit une matrice de transformation similaire de A Rappelons la propri´t´ suivante : soit B une matrice telle que ee B = P −1 . . . . ` e ` Si la matrice est Hermitienne. λn ) = diag(λ1 .

Analyse spectrale

Ainsi, on a montr´ que l’on peut construire une matrice de transformation e similaire o` la matrice A devient diagonale dans cette nouvelle base. u Pour une matrice r´elle sym´trique, la matrice de passage est une matrice e e orthogonale. La strat´gie g´n´rale pour d´terminer les valeurs propres d’une matrice e e e e ` e a consiste a construire une suite de transformations de similarit´ jusqu’` l’obtention d’une matrice diagonale, ou plus simplement jusqu’` l’obtention d’une a matrice tridiagonale a partir de laquelle il est possible de d´terminer assez fa` e cilement les valeurs propres. Pour r´aliser ces transformations, deux grandes classes de m´thodes sont e e disponibles : les m´thodes directes et les m´thodes it´ratives. e e e Les premi`res consistent a effectuer une suite de transformations similaires e ` et ne s’appliquent qu’aux matrices de taille relativement modeste, car le temps de calcul croˆ comme le cube de la dimension lin´aire de la matrice. ıt e Pour les matrices de grande taille et g´n´ralement creuses, les m´thodes e e e it´ratives sont plus adapt´es. Dans la mesure o` la plupart du temps, le spectre e e u complet d’une tr`s grande matrice n’est pas recherch´e, mais seulement une e e partie, les m´thodes it´ratives peuvent r´aliser plus efficacement cette tˆche. e e e a Nous allons voir dans la suite de ce chapitre quelques algorithmes de base, tout en ayant a l’esprit qu’il existe une tr`s vaste litt´rature sur ce sujet, et pour un ` e e probl`me particulier, il est n´cessaire de commencer par analyser pr´cis´ment le e e e e type de matrice dont on souhaite obtenir le spectre, afin de choisir la m´thode e la plus adapt´e pour r´soudre ce probl`me. e e e

8.3
8.3.1

M´thodes directes e
M´thode de Jacobi e

La m´thode de Jacobi revient a effectuer une suite de transformations sie ` milaires orthogonales. Chaque transformation est une simple rotation planaire qui permet d’annuler un ´l´ment de la matrice A initial. ee La rotation ´l´mentaire Ppq est donn´ par la matrice ee e   1 0 0 ... ... ... ... 0 0 1 0 . . . . . . . . . . . . 0   0 . . . 1 . . . . . . . . . . . . 0    0 . . . c . . . . . . s . . . 0    0 . . . . . . . . . . . . . . . . . . 0   (8.18) Ppq =  0 . . . . . . . . . 1 . . . . . . 0    0 . . . . . . . . . . . . . . . . . . 0    0 . . . −s . . . . . . c . . . 0   0 . . . . . . . . . . . . . . . 1 0  0 ... ... ... ... ... ... 1 avec la condition que c2 + s2 = 1. Soit la matrice A telle que
T A = Ppq .A.Ppq

(8.19) (8.20)

78

8.3 M´thodes directes e

En notant les coefficients de la matrice aij , on obtient apr`s calculs que e arp = carp − sarq
2 2

(8.21) (8.22) (8.23) (8.24) (8.25)

arq = carq + sarp

app = c app + s aqq − 2csapq aqq = s2 app + c2 aqq + 2csapq
2 2

apq = (c − s )apq + cs(app − aqq )

avec r = p et r = q. Si on annule le terme apq , en introduisant l’angle de rotation φ, (c = cos(φ), s = sin(φ)) on a le rapport θ θ= c2 − s 2 2sc = cot(2φ) aqq − app = apq (8.26) (8.27) (8.28)

Si on appelle t = s/c, on obtient en utilisant l’´quation (8.26) e t2 + 2tθ − 1 = 0 (8.29)

En utilisant que c2 + s2 = 1 on obtient pour c que ” 1 c= √ 1 + t2

La plus petite des racines correspond a un angle de rotation inf´rieur a π/4 et ` e ` donne la m´thode la plus stable num´riquement. Cette racine3 peut s’exprimer e e sous la forme sgn(θ) √ t= (8.30) |θ| + θ2 + 1 (8.31)

et on a imm´diatement s = tc. En imposant que le terme apq s’annule, on a e finalement les relations suivantes app = app − tapq aqq = aqq + tapq arp = arp − s(arq + τ arq ) arq = arq + s(arp + τ arq ) τ= En calculant la somme S S=
r=s
3

(8.32) (8.33) (8.34) (8.35) (8.36)

avec τ d´fini par e

s 1+c |ars |2

(8.37)

Pour ´viter les d´passements de capacit´ de l’ordinateur, on choisit t = 1/2θ e e e

79

Analyse spectrale

on peut obtenir une estimation de la convergence de la m´thode. Pour une e transformation similaire ´l´mentaire, on a ee S = S − 2|apq |2 (8.38)

Ainsi la suite des transformations conduit a faire d´croˆ la contribution des ` e ıtre ´l´ments non diagonaux. Comme la transformation est orthogonale, la somme ee des carr´s des ´l´ments de la matrice est conserv´e, ce qui revient a ce que e ee e ` la somme des carr´s de la diagonale augmente de ce qui a ´t´ perdu par les e ee ´l´ments non diagonaux. Ainsi formellement, on peut choisir les ´l´ments de la ee ee matrice A dans n’importe quel ordre et on obtient une m´thode qui converge e vers une matrice diagonale. Au terme de cette proc´dure, on a e D = V T .A.V (8.39)

o` D est une matrice diagonale contenant les diff´rentes valeurs propres et V u e est une matrice contenant les vecteurs propres correspondants.

8.3.2

R´duction de Householder e

La m´thode pr´c´dente est tr`s coˆteuse en temps de calcul. Pour r´duire e e e e u e celui-ci, la proc´dure de Householder se propose de transformer une matrice e sym´trique en une matrice tridiagonale par une s´rie de transformations orthoe e gonales suivantes. Une matrice de Householder est d´finie par la relation suivante e P = 1 − 2w.w T o` w est un vecteur r´el normalis´, w T .w = |w|2 = 1. u e e V´rifions que la matrice P est une matrice orthogonale e P 2 = (1 − 2w.w T ).(1 − 2w.w T ) =1 (8.41) (8.42) (8.43) (8.40)

= 1 − 4w.w T + 4w.(wT .w).wT

Cela implique que P = P −1 . En utilisant la d´finition de P , on v´rifie facilement e e que P T = P , et on a donc bien construit une transformation orthogonale. Nous allons maintenant appliquer a P le vecteur x constitu´ de la premi`re ` e e colonne de A. Pour cela, on exprime la matrice P sous la forme suivante P =1− u.uT H (8.44)

avec H = |u|2 /2. Si on choisit le vecteur u tel que u=x |x|e1 (8.45) o` e1 est le vecteur colonne unitaire tel que seule la premi`re composante est u e non nulle et ´gale a 1. On obtient facilement la valeur de H e ` H = 2(|x2 | ± |x|x1 ) 80 (8.46)

8. u e On choisit la seconde matrice de Householder avec un vecteur x qui constitu´ e avec les (n − 2) derniers ´l´ments de la seconde colonne ee   1 0 0 ...(x |x|e1 )T . . 0 (8.  . . .  0  0 En appliquant la transformation orthogonale a la matrice A. . .51)  . En cons´quence. .P  a11 k 0 . on construit ainsi colonne par colonne une tridiagonalisation de la matrice e 81 .....x =x − u ...  (n−1) . 0   0 0    0 0  P1 =  (8.x H 2u.50) = ± |x|e1 Cela montre que la matrice P annule tous les ´l´ments du vecteur x hormis le ee premier.52) .48) (8.53) o` le nombre k est au signe pr`s la norme du vecteur (a21 . ..49) (8.  .3 M´thodes directes e En appliquant P a x ` P..(|x|2 |x|x1 ) =x − 2|x|2 2|x|x1 =x − u (8.  (n−2) .  P1 . on obtient la structure suivante e pour P1   1 0 0 . . ...47) (8. k   0   = 0  .54)  . . La strat´gie pour construire les matrices de Householder est la suivante : on e choisit un vecteur x constitu´ des n−1 derniers ´l´ments de la premi`re colonne e ee e pour construire la matrice P1 .  P2 . . 0 0 1 0 .  0 0            (8.A. . 0 0    0    0  P1 =  (8. on obtient ` A =P. . an1 )T . .  0 0  0 0 La tridiagonalisation de la partie sup´rieure de la matrice pr´c´dente est pr´sere e e e v´e.

les matrices de Householder sont construites e dans ce cas de mani`re a ce que la premi`re colonne ne poss`de que le premier e ` e e ´l´ment non nul une fois la transformation effectu´e.R (8.uT − u.56) (8. on peut exprimer le produit P.uT (8. on peut ´crire e tout matrice r´elle sous la forme e A = Q.Analyse spectrale A.57) (8. tr`s coˆteuse nue e u m´riquement. colonne ` par colonne.3 Algorithme QL En utilisant une suite de transformations de Householder. La proc´dure est compl`te apr`s (n − 2) transformations similaires de Houe e e seholder.P = A − p. e e ` De mani`re analogue.58) u.59) 8.61) (8.A.P = A. Les transformations de Householder correspondantes consistent a annuler. o` Q est une matrice orthogonale et L une matrice triangulaire inf´rieure. les ´l´ments de la matrice transform´e qui sont situ´s au dessus de ee e e la diagonale. la premi`re multiplication matricielle peut ˆtre ´crite comme A. pour la deuxi`me colonne. ee e e on choisit le vecteur de la matrice de Householder pour que tous les ´l´ments de ee la matrice transform´e soient nuls sous la diagonale et ainsi de suite jusqu’` fore a mer une matrice triangulaire sup´rieure.uT − u.pT + 2Ku.A.L (8.P en introduisant la notation e suivante A.62) o` Q est une matrice orthogonale et R une matrice triangulaire sup´rieure.60) uT .(1 − de mˆme pour la seconde e A = P. pour ´viter la multiplication de matrices.q T (8.u (8.63) u e . Le nombre de matrices de Householder e pour obtenir ce r´sultat est ´gal a (n − 1). Pratiquement.55) p= H e e e e En cons´quence.3. 82 .uT avec K= En posant q = p − Ku on a la matrice A qui s’exprime alors simplement A = A − q.p 2H (8. Pour u e obtenir une telle d´composition. on peut montrer qu’il existe une d´composition de la e e forme A = Q.uT ) H = A − p.

on en d´duit de l’´quation (8. Pour une ` e e ee matrice quelconque.66) (8. il est pr´f´rable d’utiee liser la d´composition QL au lieu de la d´composition QR. u e ce qui signifie que la diagonale est constitu´e soit de blocs 1 × 1 soit de e blocs 2 × 2.65) (8.Ls As+1 = Ls . except´e e e e pour un bloc d’ordre p correspondant a la valeur propre d´g´n´r´e.Q Puisque Q est orthogonal.A.70) o` Z est orthogonale et T est une matrice quasi-triangulaire sup´rieure. As tend vers une matrice triangulaire inf´rieure.67) (8.3. u e – Si la matrice A est r´elle e A = ZT Z T (8. alors As tend vers une matrice triangulaire inf´rieure quand s → ∞. il est quand mˆme possible e d’am´liorer la convergence de l’algorithme en d´pla¸ant ces valeurs propres suce e c cessives. mais e u ` pour une matrice tridiagonale.3 M´thodes directes e Si on d´finit la matrice A comme e A = L. une it´ration a un coˆt de calcul proportionnel a n 3 . ce coˆt est lin´aire avec n.Q (8.68) La m´thode repose sur les bases suivantes : (i) Si A a des valeurs propres e toutes distinctes de valeur absolue |λi |. Quand deux valeurs propres sont trop proches. e e L’algorithme QL est d´fini par la suite suivante e As = Qs . Les valeurs propres apparaissent sur la diagonale e par valeur absolue croissante (ii) Si A a une valeur propre d´g´n´r´e de multiplie e ee cit´ p. Pour des raisons de minimisation d’erreurs d’arrondi. 83 .69) (8.63) que e e L = Q−1 .4 Factorisation de Schur La factorization de Schur consiste a r´´crire une matrice carr´e A sous la ` ee e forme suivante – Si la matrice A est complexe A = ZT Z † o` Z est unitaire et T est une matrice triangulaire sup´rieure.quand s → ∞.8. 8.A ce qui donne A = QT . On peut montrer u e que la convergence d´pend de la diff´rence entre deux valeurs propres succese e sives.Qs (8.64) ce qui montre que A est une transformation orthogonale de A.

72) o` Q est orthogonale et H est une matrice de Hessenberg. On continue jusqu’` ce que l’angle entre e e e a deux vecteurs successifs devienne plus petit qu’une nombre choisi initialement. En appliquant a nouveau la matrice A sur le e e ` vecteur x1 on cr´e un vecteur x2 et on calcule l’angle entre x1 et x2 qui est e inf´rieur au pr´c´dent en valeur absolue. e Pour toute m´thode it´rative.71) (8.|x0 | (8. qui est une matrice triangulaire sup´rieure bord´e une ligne d’´l´m´nts nuls sous la e e ee e diagonale.4. et A la e matrice dont on cherche a d´terminer la plus grande valeur propre. u – Si la matrice A est r´elle e A = QT QT (8.73) Si on d´signe α comme l’angle entre ces deux vecteurs. les vecteurs successifs vont prendre une direction qui se rapproche du vecteur propre de la plus grande valeur propre (en valeur absolue). On effectue ` e l’op´ration suivante e x1 = A. car il repose sur le fait qu’en e e appliquant un grand nombre de fois la matrice sur un vecteur initial quelconque. les valeurs propres complexes conjugu´es e d’une matrice A r´elle correspondent aux blocs 2x2 de la diagonale. Les calculs croissent dans ce cas lin´airement avec n. Les valeurs propres de e A apparaissent sur la diagonale de T .74) Si x0 n’est pas perpendiculaire au vecteur recherch´ (ce qui est rarement le e cas pour un vecteur choisi au d´part al´atoirement). Le principe it´ratif e de cette m´thode est la suivante : soit x0 un vecteur initial quelconque. e L’algorithme utilis´e dans la biblioth`que LAPACK. on commence par transe e former la matrice A en la transformant en une matrice de Hessenberg.x0 (8. il convient de s’assurer que la convergence est e e suffisamment rapide pour que le temps de calcul ne soit pas consomm´ sans que e la recherche d’une solution ne soit r´ellement effectu´e. on transforme la matrice de Hessenberg en une mae e trice de Schur. – Si la matrice A est complexe A = QHQ† o` Q est unitaire et H est une matrice de Hessenberg. 84 .x0 |x1 |.1 M´thodes des puissances e Le principe de cette m´thode est tr`s simple. 8. on a e cos(α) = x1 .4 M´thode it´ratives e e Ces m´thodes sont principalement appliqu´es a des matrices de grande taille e e ` et largement creuses.Analyse spectrale Les colonnes de Z sont appel´es les vecteurs de Schur. le cosinus de l’angle entre e e x0 et x1 est diff´rent de z´ro. e e 8. u Dans une deuxi`me ´tape.

2 M´thode de Lancz`s e o La m´thode de Lancz`s consiste a la fois a calculer les puissances successives e o ` ` de A. on impose que u2 soit un vecteur orthogonal e a u1 ce qui conduit a la relation ` ` α2 = uT . le vecteur u2 est orthogonal au vecteur u0 .A2 .75) o` β2 et α1 sont des constantes d´termin´es de la mani`re suivante : α1 est u e e e choisi de mani`re a ce que le vecteur u1 soit orthogonal au vecteur u0 e ` α1 = uT . nous e allons voir la m´thode pour des matrices hermitiennes. On construit les vecteurs successifs de la base dite de Krylov a partir ` de la relation β2 u1 = A.81) . La convergence de cette m´thode varie comme e (λ1 /λ2 ) ce qui peut devenir assez lent quand les valeurs propres deviennent quasi-d´g´n´r´es.4 M´thode it´ratives e e On en d´duit alors le vecteur propre recherch´ et donn´ par x n . ainsi que la e e e valeur propre correspondante.u1 − α2 − β2 1 (8.u0 − α1 0 (8. mais la m´thode peut e e ˆtre ´tendue pour des matrices plus g´n´rales.u1 − α2 u1 − β2 u0 (8. on utilise la relation : β3 u2 = A. on obtient pour le i`me vecteur e e βi+1 ui = A. e 8.8. Par simplicit´. mais de mani`re bien plus effie e e e cace en construisant un ensemble de vecteurs orthogonaux.79) (8. en s’inspirant de la m´thode pr´c´dente.80) Par it´ration. ` e ` Soit un vecteur de d´part normalis´ u0 : ce vecteur est convenablement choisi e e c´est a dire que sa projection sur la base de la valeur propre a d´terminer est ` ` e non nulle.u1 1 et la normalisation de u2 est impos´e en choisissant β3 comme e β3 = 2 uT .ui−1 − αi ui−1 − βi ui−2 85 (8.77) Pour le vecteur suivant u2 .4.u0 0 et β2 est d´termin´ de mani`re a ce que le vecteur u1 soit normalis´. Cette m´thode n’est pas tr`s efficace. mais poss`de le m´rite e e ee e e e e de s’´crire rapidement.76) (8.78) On note tout d’abord qu’avec cette construction.A2 . De mani`re similaire.A.A. en particulier quand les vecteurs e e e e a gauche diff`rent des vecteurs a droite.u0 − α1 u0 (8. e e e ` e β2 = 2 uT .

on voit que la valeur propre recherch´e peut ˆtre estim´e e e e en utilisant les sous espaces successifs. . un op´rateur de Schr¨ringer)..A.84) Il est possible d´utiliser alors une m´thode de type QL pour obtenir rapidement e les valeurs propres de la matrice A .. 0 βn−1 αn−1 βn  .. e e 86 .ui−1 − αi − βi i−1 (8. . ... .. .. . .. . .. 0  .. c´est a dire aussi la matrice A.ui+1 i−1 βi+1 = Dans cette base... 0 β n αn (8.83) A est tridiagonale et est donn´e e  β2 0 ..... . ....... 0  . . . . ..Analyse spectrale On v´rifie facilement que tous les vecteurs uj avec j < i − 2 sont orthogonaux e avec le vecteur ui+1 en raison de la construction dans un sous espace orthonorm´ sur ses vecteurs. .. 0  β 3 α3 β 4 0 . 0  ..A2 ... la matrice  α1  β2  0  A =0  0  0 0 2 uT . Les valeurs αi et βi+1 sont d´termin´es par les relations e e e suivantes αi =uT . 0 α2 β 3 0 .... On peut donc arrˆter l´it´ration quand e e la diff´rence entre deux estimations successives de la valeur propre est devenue e suffisamment petite... e o le proc´d´ it´ratif conduit progressivement a des valeurs de β i de plus en en e e e ` plus petites.82) (8. ` Quelques remarques : en construisant progressivement une base de vecteurs de plus en plus grande. Dans le cas o` la matrice A est une repr´sentation tronqu´e d´un op´rateur u e e e dont la base propre est infinie (par exemple.. On peut consid´rer que la base de Krylov est compl`te quand e e βn est devenu inf´rieure en valeur absolue a une valeur choisie a l´avance e ` ` (g´n´ralement 1012 )..

tj ) et fj = f (tj ) o` i est un indice variant de 1 a N et j un indice variant de 1 a M (M peut ˆtre diff´rent de N ). s)f (s)ds = g(t) a (9. u En notant gi = g(ti ). . . . . Equation de Fredholm . . . . . . . . . . . . . . . . . .2 . . . . . . .3. . .1 Equation de Fredholm Equation de premi`re esp`ce e e L’´quation de Fredholm inhomog`ne de premi`re esp`ce est d´finie par la e e e e e relation suivante b K(t. une fois r´alis´e la discr´tisae e e e e e tion de ces ´quations. . . . . . . . . . . 9. Nous allons voir dans ce chae e e pitre que pour des ´quations int´grales lin´aires. . . . . e e 9. . . . . . . .1 Equation de premi`re esp`ce .2 Equation de seconde esp`ce . . . . . . e 9. . . .3 Equation de Volterra .2 9. . . . . .3. . .1 Introduction Les ´quations int´grales sont a priori moins simples a r´soudre que les ´quae e ` e e tions alg´briques ou les ´quations diff´rentielles. g(t) est le terme u e e de source et K(t. . . 87 87 87 88 89 89 89 89 . .2.Chapitre 9 Equations int´grales e Contenu Introduction . . . . e 9. . . . .1 9. . . . . .2. . Kij = K(si . . . . . . . . . on se ram`ne au probl`me de la recherche de solutions e e e d’un syst`me lin´aire que nous avons vu chapitre 6. . . ` ` e e 87 . . s) est appel´ le noyau.2 Equation de seconde esp`ce . . e e 9. . . . . .1 Equation de premi`re esp`ce . . .4 Conclusion . . e e 9. . . . . . .2. . . . . . . . . . 9. . . . . . . .1) o` f (t) est la fonction inconnue que l’on souhaite d´terminer. . . . 9. . . 9. . .

on a formellement la solution comme e e f = (λ.g (9.5) o` f (t) est la fonction inconnue que l’on souhaite d´terminer. Si cette derni`re est inversible. si le noyau K n’est pas singulier. Corr´lativement. le probl`me se ram`ne a la d´termination des valeurs e e ` e propres de la matrice K. s)f (s)ds + g(t) (9.1 devient ` singuli`re. est unique et est donn´e par la relation e f = K −1 . sinon la matrice a inverser K − λ. et on parle d’´quation de Fredholm homog`ne.7) Si la fonction g est nulle. K(t.3) Formellement. la solution existe. si λ est suffisament diff´rent de z´ro.2 Equation de seconde esp`ce e L’´quation de Fredholm inhomog`ne de deuxi`me esp`ce est d´finie par la e e e e e relation suivante b λf (t) = a K(t.2) Soit encore sous une forme matricielle K. e e ` 88 . g(t) est le terme de u e source.5) se r´exprime comme e e M λfi = j=1 Kij fj + gi (9. e Suivant le mˆme principe que celui d´fini ci-dessus. s) est appel´ le noyau et λ est un scalaire introduit par commodit´ e e pour la suite de cette ´quation.2.g (9.Equations int´grales e L’´quation (9. la solution e e e e des ´quations de Fredholm de seconde esp`ce est relativement simple a obtenir. c’est-`-dire avec un d´terminant voie a e sin de z´ro. Dans e e u e e le cas o` g est diff´rent de z´ro.f = −g (9. la solution existe et est unique si λ n’est pas l’une des valeurs propres du noyau.6) Soit encore sous une forme matricielle (K − λ1).1) se r´´crit alors comme e ee M Kij fj = gi j=1 (9. une fois discr´tis´e.f = g (9.8) La r´solution num´rique des ´quations de Fredholm homog`ne de premi`re e e e e e esp`ce est g´n´ralement d´licate car le noyau correspond souvent a une matrice e e e e ` presque non inversible (mal conditionn´e).1 − K)−1 . e e e e l’´quation (9.4) 9.

s)f (s)ds + g(t) (9. s) est appel´ le noyau.9.3 Equation de Volterra 9. Ce type d’´quations lin´aires. l’´quation de Volterra de premi`re esp`ce inhomog`ne e e e e e s’´crit comme e t λf (t) = a K(t. e e 89 .3 Equation de Volterra Les ´quations de Volterra sont des cas particuliers de ceux de Fredholm dans e lesquelles le noyau K est tel que K(t. les ´quations de Volterra ne le sont pas. s) = 0 pour s > t (9. e 9. la e e e matrice K triangulaire inf´rieure. mais avec la particularit´ que la matrice associ´e au noyau ` e e K est une matrice triangulaire inf´rieure.2 Equation de seconde esp`ce e De mani`re similaire.1 Equation de premi`re esp`ce e e L’´quation de Volterra homog`ne de premi`re esp`ce est d´finie par la relae e e e e tion suivante t g(t) = a K(t. seule la structure du noyau K ` est diff´rente. e e 9.9) 9.10) o` f (t) est la fonction inconnue que l’on souhaite d´terminer. e La r´´criture matricielle de l’´quation de Volterra est identique formellement ee e a celle de Fredholm.3.4 Conclusion L’existence de structure de noyaux presque singuliers n´cessite d’utiliser des e e e m´thodes plus complexes qui d´passent largement le cadre de ce cours introductif aux m´thodes num´riques.11) De mani`re identique. e e e Alors que les ´quations de Fredholm de premi`re esp`ce sont g´n´ralement mal e e e e e conditionn´es. la repr´sentation matricielle de l’´quation de Volterra est e e e identique a celle correspondante de Fredholm. g(t) est le terme u e de source et K(t. puisque comme pour toutes les ´quations de Volterra lin´aires. comme e e e nous l’avons vu au chapitre 6. peut ˆtre r´solu par une m´thode de substitution.3. s)f (s)ds (9.

Equations int´grales e 90 .

sin(φn−3 ) cos(φn−2 ) x4 = ρ sin(φ1 ) sin(φ2 ) sin(φ3 ) . . la variable u ` φn−1 varie entre 0 et 2π.1) o` les variables φi varient de 0 a π pour j compris entre 1 et n − 2.Annexe A Coordonn´es hypersph´riques e e Il convient de distinguer le cas pair du cas impair pour le syst`me de coe ordonn´es. on d´finit les coordonn´es hypersph´riques de la mani`re suie e e e vante x1 = ρ sin(φ1 ) sin(φ2 ) sin(φ3 ) .2) . sin(φn−3 ) sin(φn−2 ) cos(φn−1 ) x3 = ρ sin(φ1 ) sin(φ2 ) sin(φ3 ) . xn−1 = ρ sin(φ2 ) cos(φ1 ) xn = ρ cos(φ2 ) cos(φ1 ) On v´rifie facilement que quel que soit n e −ρ ≤ xi ≤ ρ 91 (A.. cos(φn−3 ) . . . . Les calculs analytiques et num´riques sont plus simples dans le cas e e e impair... sin(φn−3 ) sin(φn−2 ) sin(φn−1 ) x2 = ρ sin(φ1 ) sin(φ2 ) sin(φ3 ) . . . .3) (A. e Consid´rons tout d’abord le cas o` n est impair : A n dimensions. et la variable ρ est positive ou nulle. Pour n pair. . . .. on d´finit e u e les coordonn´es hypersph´riques de la mani`re suivante e e e x1 = ρ sin(φ1 ) sin(φ2 ) sin(φ3 ) . . car en particulier le calcul de la transform´e de Fourier d’une fonction a sym´trie sph´rique se ram`ne au calcul d’une transform´e de Fourier a une ` e e e e ` dimension sur l’axe r´el positif. . . sin(φn−3 ) cos(φn−2 ) x4 = ρ sin(φ1 ) sin(φ2 ) sin(φ3 ) . . cos(φn−3 ) cos(φn−2 ) . . sin(φn−3 ) sin(φn−2 ) sin(φn−1 ) x2 = ρ sin(φ1 ) sin(φ2 ) sin(φ3 ) . . sin(φn−3 ) sin(φn−2 ) cos(φn−1 ) x3 = ρ sin(φ1 ) sin(φ2 ) sin(φ3 ) . xn−1 = ρ sin(φ1 ) cos(φ2 ) xn = ρ cos(φ1 ) (A.

.5) n−2 n−2 e e Par r´currence.. . Par exemple on peut calculer le volume d’une hypersph`re de rayon e e a (qui correspond a un int´grant ´gal a 1) ` e e ` a n−2 Vn = 0 ρ n−1 π 0 dρ j=1 (sin(φj ))n−1−j dφj 0 2π dφn−1 π n/2 an Γ(n/2 + 1)   π n/2 an   pour n pair = (n/2)!  π (n−1)/2 (2a)n ((n − 1)/2)!   pour n impair n! L’´l´ment de surface de l’hypersph`re de rayon a est donn´ par ee e e = n−2 (A. .. xn ) = ρn−1 × ∂(ρφ1 φ2 .. . − sin(φ1 ) ... on montre que le jacobien J se r´exprime sous la forme J = ρn−1 j=1 sinn−1−j (φj ) = j=1 sin(φn−1−j ))j (A. . . De plus. . . φn ) sin(φ1 ) sin(φ2 ) . . . . e Quand l’integrant est une fonction qui ne d´pend que de ρ. on peut int´grer e e sur tous les angles et le calcul se ram`ne a celui d’une int´grale simple sur l’axe e ` e r´el positif. . . on a n x2 = ρ 2 i i=1 (A. . .7) dSn = an−1 i=1 sinn−1−i (φi )dφi (A. sin(φ1 ) . cos(φn−1 cos(φ1 ) . . sin(φn−1 ) .6) On peut v´rifier que la formule convient aussi pour n pair. . . sin(φn−1 ) cos(φ1 ) .9) pour n impair .4) Pour ´valuer une int´grale a n dimensions... sin(φn−1 ) . e e ` Sn = dVn nπ n/2 an−1 = da Γ(n/2 + 1)!  n/2 n−1  nπ a   (n/2)! =  2nπ (n−1)/2 (2a)n−1 ((n − 1)/2)!   (n − 1)! 92 pour n pair (A.Coordonn´es hypersph´riques e e pour toute valeur de i. . . . cos(φn−1 ) sin(φ1 ) sin(φ2 ) . cos(φ1 ) − sin(φ1 ) 0 0 (A. . . cos(φn−1 ) .8) On peut en d´duire la surface d’une hypersph`re dans un espace a n dimensions.. il est n´cessaire de calculer le Jacoe e ` e bien de la transformation des coordonn´es cart´siennes aux coordonn´es hypere e e sph´riques pour n impair e J= ∂(x1 x2 .

. .2) (B. . . . . . . . . . par exemple. . Ces op´rations sont class´es par ordre de e e e e “difficult´” croissante : 1. . . . . . 93 94 B. . . . . . . e 93 . op´rations matrices-matrices e C = αAB + C (B.1 Introduction . Les mae e trices consid´r´es sont des matrices soit pleines soit a bande. B. . Diverses factorisations matricielles sont disponibles comme la d´composition LU. . Le cas des matrices ee ` creuses n’est pas sp´cifiquement trait´. . . Elle est disponible en Fortran et en C par l’interm´diaire e e de la biblioth`que GSL.3) (B. . . . . QR Cholesky.1) LAPACK dont le nom vient de Linear Algebra PACKage est une biblioth`que ´crite en fortran 77 et qui comprend un ensemble de sous-programmes e e pour r´soudre les probl`mes suivants : syst`me d’´quations lin´aires : probl`mes e e e e e e aux valeurs propres. .Annexe B Les biblioth`ques BLAS et e Lapack Contenu B. op´rations matrices-vecteurs e y = αAx + βy 3. . . Les sous-programmes sont fournis pour e e des probl`mes dans lesquelles les matrices sont soit r´elles. . soit complexes. . . SVD. . .1 Introduction La biblioth`que BLAS est un biblioth`que qui r´alise les op´rations d’alg`bre e e e e e lin´aire de bas niveau. Schur et Schur generalis´e. . en e e simple ou en double pr´cision. . . op´rations vectorielles e y = αx + y 2. .2 Terminologie . .

edu/∼lapack/drivers.cs. En l’absence de biblioth`que BLAS optimis´e.0) qui date de 2000. Elle est pr´vue pour e e des programmes Fortran. e e e il est possible de disposer de la biblioth`que BLAS de base disponible sur le site e de netlib[4].colorado. La version install´e sur les stations de travail de l’´cole doctorale est la e e derni`re version disponible (version 3.2 Terminologie Une terminologie mn´motechnique a ´t´ choisie pour retrouver “facilement” e ee ` e les noms des sous-programmes a appeler. e – GE pour une matrice g´n´rale e e – SY pour une matrice sym´trique e – HE pour une matrice hermitienne – TR pour une matrice triangulaire – GB pour une matrice a bande g´n´rale ` e e – SB pour une matrice sym´trique a bande e ` – HB pour une matrice hermitienne a bande ` – TB pour une matrice triangulaire a bande ` Pour la recherche du nom pr´cis d’un sous-programme.Les biblioth`ques BLAS et Lapack e La biblioth`que LAPACK s´appuie sur des appels a des sous-programmes de e ` plus bas niveau qui sont ceux du BLAS. 3 et Lapack.html Pour le Blas de Niveau 2. il existe un petit e index r´f´ren¸ant (disponible sur le site netlib ou sur les stations de travail) de ee c tous les sous-programmes avec la liste des arguments a fournir. e e B. il y a un ensemble de sous-programmes pour des calculs en pr´cision ´tendue. Une version C de Lapack (clapack) est disponible sur le site de netlib. ED. Les pr´fixes sont ES. EC. e – S pour type REAL – D pour type DOUBLE PRECISION – C pour type COMPLEX – Z pour type COMPLEX*16 1 Pour le BLAS de niveau 2. L’adresse de ce site est e` e a ` http ://www. EZ e e e 1 94 . Il existe aussi un ` site internet tr`s utile qui propose un moyen de rechercher le sous-programme e adapt´ a partir de la s´lection de la tˆche a effectuer. Les sous-programmes ont un suffixe qui indique le type d’objets sur lesquels on effectue les op´rations. mais n’est pas install´e par d´faut sur les stations. Le principe est le mˆme pour Lapack et le BLAS. Cela permet une meilleure optimisation car des biblioth`ques BLAS sp´cifiques existent pour chaque type de processeur e e et utilisent leurs caract´ristiques. un groupe de deux lettres d´signe e le type de matrices que consid`re le sous-programme.

. . . . .2. . . .25 Puissances .2. . . . . .2. . e C. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . e C. . . . . . . .2. . . . . . . . C. . . . . . . .2. . . . . . . . . . . . . . . . . . . . . . . . . . . C. . . . . . . . . . . .2. . . . . . . . . . . . . . . . .19 Minimisation . . . .20 Monte Carlo . . . . . . . . . . . . . . . . . . .8 Hankel . . . .2. . . . . . . . e C. . . .2. . . . . . C.9 D´riv´es .2. . . . . . . . . . . . . . . . . . . . . C. e e C. . . . . . . . .2 fonctions simples . . . . . . . . C. . . . . . .2. . . .2. . . . .10 Valeurs et vecteurs propres . . . . . e e C. . . . . . . .2. . . . C. . . . . . . .17 Alg`bre lin´aire . . . . . . . . . . .7 Complexes .29 Tris . . . . . . . . . .4 Blocs . . . . .2. . . . . . .Annexe C La biblioth`que GSL e Contenu C. e C. . . . . . . . . . . . . . e C. . . . . . . . . . C. . . . .2 Sous programmes . . . . . . . . . . . . . .1 Introduction . . . . . . . . . . . . . . . e C. . . .2. C. . . . . . . . . . .6 Combinatoire . . . . .15 Int´gration . . . C. C. . . . . . C. . . . . .3 interfaces entre GSL et le BLAS . . . . . 96 97 97 98 98 98 98 98 98 99 99 99 99 99 100 100 100 100 101 101 101 101 102 102 102 103 103 103 103 104 106 106 . . . .2. . . . .2. C. . .2. . . . C. . C. . . . . . . . . . .2. . . . . . . . . . . . . . . .2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2. . . . . . . . o C. . .2. . . . . . . . . . . . .23 Permutation . . . . . . . . . . .2. .2. . . . .30 Lissage . . . . . . . . . . . . . . . . . . . . . . . C. .2.27 Racines unidimensionnelles . . . . . . . . C. . . . . . .2. . . . . . .24 Polynˆmes .2. . . . . . . . . . . . . . . . . . . .2.2.18 Matrices . . . . . C. . .1 BLAS . . . . . . . . . . . . . . . . . . .2. . . . . . . . .22 Equations diff´rentielles . . . .12 Ajustements . .5 S´ries de Chebyshev. . C. . . C. . 95 . . . . . . . C. . . . . . . . . . . . . . . .2. . . . . . . . . . . . . . . . . . . . . . . . . C. . . . . . . . . .13 Histogrammes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .28 Fonctions sp´ciales . . . . . .14 IEEE . . . . . . . . . . . . . . e C. . . . . . . . .21 Ajustements non-lin´aires . . .26 Nombres al´atoires . . . .16 Interpolation . . .11 Transform´es de Fourier . . . . . . . . .

. . les fichiers e e ee d’entˆtes sont tr`s nombreux (206 dans la version 1. (Moyen simple d’identifie cation par rapport a d’autres biblioth`ques qui seraient a utiliser dans le ` e ` mˆme programme). Cette biblioth`que est e ´crite en C et est install´e sur les stations de travail de l’´cole doctorale (avec e e e la version 1.1. .La biblioth`que GSL e C. .2. . . 107 e C. . . . . .. . . .. . . ` Cette biblioth`que offre des sous-programmes pour les probl`mes suivants : e e Nombres complexes Fonctions sp´ciales e Permutations Tri Alg`bre lin´aire e e Valeurs propres Histogrammes Int´gration de Monte Carlo e Recuit simul´ e Interpolation Approximations de Chebyshev Transform´es de Hankel discr`tes e e Minimisation Racines de polynˆmes o Vecteurs et Matrices Combinatoire BLAS FFT G´n´rateurs de nombres al´atoires e e e Statistiques Equations diff´rentielles e Diff´rentiation num´rique e e S´ries acc´l´ratrices e ee Recherche de racines Moindre carr´ e Constantes physiques La diversit´ des probl`mes num´riques trait´s par cette biblioth`que rend e e e e e tr`s difficile une pr´sentation rapide. .1). Par exemple sf cor` e respond a un fonction sp´ciale. . . 107 C. . . 106 C. . . . e – La seconde partie correspond a la classe de probl`me.1. . . . .2. . . La version actuelle est une version stable 1. .32 Transform´es de Levin . . . il existe une version ´volutive bas´e e e e e e sur le concept de logiciel libre qui s’appelle la GSL (acronyme de Gnu Scientific Library). . . . . . . . matrix a un probl`me sur les matrices. . . . .1).31 Statistique . . . . et leur nom correse e pondent a une classe de sous-programes que l’on souhaite utilis´s selon la r`gle ` e e suivante : – Le nom commence toujours par le pr´fixe gsl . . . . ce qui permet a tout utilisateur d’en disposer pleinement. . . . . . e e e Les fichiers d’entˆtes n´cessaires a la compilation d’un programme sont plae e ` c´s dans le r´pertoire /usr/include/gsl. .1 Introduction Parmi les nombreuses biblioth`ques math´matiques que l’on peut utiliser e e pour r´soudre des probl`mes num´riques. . ` e ` e 96 .33 Vecteurs . . Le manuel proprement dit comprend ace e tuellement plus de 450 pages ! Le but de cet appendice est donc de donner quelques cl´s pour une utilisation aussi simple que possible de cette biblioe th`que et par effet d’apprentissage d’autres biblioth`ques dont les noms de e e sous-programmes sont g´n´ralement moins ´loquents.2.2. e e Pour que les ex´cutables g´n´r´s soient les plus petits possibles. . . . . . .. .

zher2. cblas zhbmv. dsdot. cblas ztrmm. cblas cgeru. cblas idamax. cblas ctrmv. cblas drotg. Elles r´alisent les trois niveaux qui sont les e e suivants : 1. – Si l’on veut disposer d’une classe de fonctions plus directement au lieu de charger un a un les fichiers d’entˆtes. cblas zher. cblas chpr2. cblas dtrmm. cblas dsbmv. cblas cher. cblas cgbmv. cblas sspr. cblas dtpmv. cblas zgemm. cblas dswap. cblas ctbsv. cblas cdotc sub. sger. cblas chemv. cblas dtrsm. cblas dsyr2. cblas zgerc. cblas sswap. zswap. cblas cgerc. cblas sdsdot. cblas snrm2.C.1) (C. cblas cherk. cblas dspr2. cblas srotmg. cblas chemm. cblas dsymv. cblas ddot. cblas zhpr2. cblas zhemm. cblas dsyr2k. cblas ztrsm. cblas dger. cblas sgemv. cblas dspmv. cblas ctrsm. cblas scopy. csscal. cblas dgemv.2 Sous programmes – La troisi`me correspond au probl`me sp´cifique. cgemv. Pour l’exemple pr´c´dent. cblas ztrmv. cblas csymm. cblas sgemm. cblas saxpy. cblas zsyr2k. cblas izamax. cblas dcopy. cblas ztpmv. cblas zdscal.. cblas ssyrk. cblas cswap. ztpsv. cher2. cblas zdotc sub. cblas ssyr2. gsl sf expint. cblas ctbmv. cblas drot. op´rations matrices-matrices e C = αAB + C cblas cblas cblas cblas cblas cblas cblas cblas cblas cblas cblas cblas cblas cblas cblas cblas cblas cblas cblas cblas cblas (C. cblas ccopy. zcopy. cblas dtrmv. cblas cscal. cblas srot. cblas strmv. on peut utiliser gsl sf.2 Sous programmes La Liste des fonctions disponibles est la suivante C. cblas ssymm.. cblas drotm. cblas chpr. cblas sgbmv. cblas dspr. cblas zgeru. cblas sspmv. cblas csyr2k. cblas cher2k. cblas zgbmv. cblas srotg. cblas strsm. cblas sasum.2) (C. cblas dtbmv. cblas zhpr. cblas cgemm. cblas stbsv. cblas strsv.h e e e est le fichier pour les fonctions exponentielles int´grales. cblas csyrk. cblas sspr2. cblas ztrsv 97 . cblas dasum. cblas zhpmv. cblas dsymm. cblas cdotu sub. cblas xerbla. cblas ssbmv. cblas strmm. cblas ssyr2k. cblas dgbmv. cblas ctrmm. stpsv. cblas ssymv. dtpsv. cblas dgemm. cblas ztbmv. cblas zhemv. gsl sf bessel. Par exemple. cblas zaxpy. cblas srotm. cblas ztbsv. cblas stbmv. ssyr. op´rations matrices-vecteurs e y = αAx + βy 3. zgemv. cblas dznrm2.h e aux fonctions de bessel. sscal. cblas zherk. op´rations vectorielles e y = αx + y 2. dsyr.h qui contient e e les d´finitions de toutes les fonctions sp´ciales. cblas chpmv. cblas isamax. cblas dscal.2. cblas chbmv. e e C. cblas dzasum. . cblas sdot. cblas zdotu sub.3) caxpy. scnrm2. cblas stpmv. on peut utiliser le fichier qui ` e regroupe.1 BLAS Les fonctions du BLAS ´crites. cblas dtrsv. cblas ctrsv. cblas drotmg. cblas ctpsv. cblas zher2k. cblas dtbsv. cblas dsyrk. cblas scasum. dnrm2. cblas zscal. icamax. daxpy. ctpmv. cblas zsyrk. cblas zsymm.

gsl block fread. gsl blas dzasum. gsl combination init first. gsl blas cher2. gsl blas ddot. gsl complex add real. gsl complex arccos real. blas csyr2k. gsl blas ssyr2. gsl blas scasum. gsl blas drot. e gsl block fprintf. 98 . blas zgeru. gsl blas csymm. gsl blas scnrm2. gsl blas dsyrk. blas ssymm. gsl cheb init C. gsl blas zsymm. gsl complex arccot. gsl blas srotg.7 Complexes Les fonctions d’op´rations sur les complexes gsl complex abs. blas dasum. gsl blas saxpy. gsl blas strsv. gsl blas cdotu. gsl blas dsyr2k. blas sdot. gsl expm1. gsl blas ssyr2k. gsl blas zgerc. gsl atanh. gsl combination fwrite.2. e gsl complex add.2. gsl blas zher. gsl cheb eval. gsl blas dgemm. blas ztrmm. gsl blas cher. gsl blas dsymm. gsl blas cgemm. gsl blas dznrm2. gsl block fwrite C. gsl complex add imag.2. gsl blas ssymv. gsl blas strmv. gsl blas drotg. gsl blas dtrsm. gsl blas dtrmv. gsl block alloc. gsl blas csyrk. gsl blas dsdot. gsl complex abs2. gsl blas cherk. gsl blas dgemv. gsl log1p C. gsl blas ctrsm. gsl block calloc. gsl blas drotm. blas cgerc. gsl blas scopy. gsl combination prev .2. gsl blas zher2k. gsl blas zcopy. blas dscal.3 gsl gsl gsl gsl gsl gsl gsl gsl gsl gsl gsl gsl gsl gsl gsl gsl gsl interfaces entre GSL et le BLAS gsl blas caxpy. gsl blas ztrsv C. gsl blas ssyr. blas dsyr2. blas dtrsv.6 Combinatoire gsl combination alloc. gsl blas cgemv. gsl combination n.5 S´ries de Chebyshev. gsl blas isamax. gsl blas zdscal. gsl blas ztrsm. gsl blas snrm2. gsl blas ctrsv. gsl blas chemv. gsl complex arccosh real. gsl block fscanf. gsl blas csscal. gsl blas cscal. gsl blas icamax. blas dger. gsl combination calloc. gsl blas srotmg. gsl blas zhemm. gsl blas sgemv. gsl combination get. gsl blas zgemm. gsl cheb eval err. gsl blas cgeru.La biblioth`que GSL e C. gsl blas drotmg. blas zdotc. gsl blas dsymv. gsl blas cswap. gsl blas ctrmm. gsl blas ssyrk. gsl blas sasum.4 Blocs Les fonctions pour les blocs de m´moire . gsl blas dswap. gsl blas ctrmv. blas izamax. gsl block free. gsl combination data. blas strmm. gsl blas zsyr2k. gsl blas sdsdot. gsl blas srotm. gsl blas chemm. gsl asinh. gsl combination fscanf. gsl blas ztrmv. gsl cheb calc deriv. gsl blas zher2. gsl blas sscal. gsl combination init last. gsl blas cdotc. gsl combination free . blas zherk. blas cher2k. gsl cheb calc integ. gsl blas daxpy. gsl cheb free. gsl combination k. gsl cheb eval n err. gsl blas idamax. gsl blas dnrm2. gsl blas ccopy. gsl blas zdotu. gsl complex arccos.2. gsl combination fprintf. gsl cheb eval n. gsl blas dcopy. gsl blas zscal.2. gsl blas dtrmm. gsl combination fread. gsl blas strsm. gsl blas zswap. gsl blas sswap. gsl blas dsyr. gsl combination valid C. e gsl cheb alloc. gsl complex arccosh. gsl blas zhemv. gsl blas sgemm.2 fonctions simples Les fonctions simples avec une grande pr´cision e gsl acosh. gsl blas sger. gsl blas zaxpy. blas srot. gsl combination next. gsl blas zsyrk. gsl blas zgemv.

gsl complex tanh C. gsl complex arctan. gsl complex arcsinh. arcsin real. gsl complex log b. gsl complex logabs. sub imag. gsl dht free.2. gsl complex exp. arcsec. gsl fft real wavetable free. gsl complex div. gsl complex csch. gsl eigen hermv sort.2.8 Hankel Les fonctions pour les transform´es de Hankel e gsl dht alloc. gsl eigen hermv alloc. gsl complex linalg LU invert. gsl complex arcsech. gsl complex sqrt real. gsl complex coth. gsl fft complex inverse. cot. gsl complex sec. div imag. gsl complex arccsch. fft complex workspace free.9 D´riv´es e e gsl diff backward. gsl fft complex radix2 dif backward. gsl complex arg. gsl dht x sample C. gsl complex cos. gsl fft complex workspace alloc. gsl complex inverse.2 Sous programmes gsl gsl gsl gsl gsl gsl gsl gsl gsl gsl gsl complex complex complex complex complex complex complex complex complex complex complex arccoth. gsl complex rect. gsl eigen symm free. gsl fit mul. gsl fft halfcomplex wavetable alloc.12 Ajustements gsl fit linear. gsl complex sub. gsl fft complex forward. gsl fft complex transform. gsl complex log10. gsl diff forward C. gsl fft complex radix2 dif transform. gsl complex tan. gsl complex sqrt. gsl fft complex radix2 dif forward. gsl fft real radix2 transform. gsl dht apply. gsl dht init. gsl fft complex radix2 forward. gsl complex polar. fft real unpack. gsl complex csc. gsl complex cosh. gsl fit linear est. gsl complex arccsc real. fft halfcomplex transform. gsl eigen symm alloc. gsl diff central. gsl complex arctanh. gsl complex conjugate. gsl complex sinh. gsl fit wlinear. fft complex radix2 backward. gsl complex pow real. gsl complex div real. gsl dht new. sin. arctanh real. fft complex radix2 dif inverse. gsl eigen symmv. gsl eigen symmv sort C. pow. gsl fft real workspace alloc. gsl eigen symmv alloc. gsl eigen symmv free. gsl eigen hermv free. gsl fft real wavetable alloc. gsl complex mul. gsl eigen hermv. gsl fft halfcomplex radix2 inverse.11 gsl gsl gsl gsl gsl gsl gsl gsl gsl Transform´es de Fourier e gsl fft complex backward. gsl complex arcsin .10 Valeurs et vecteurs propres gsl eigen herm. gsl eigen herm alloc. gsl fft real transform.2. gsl complex arccsc.C. fft real workspace free gsl finite C. fft halfcomplex wavetable free. gsl fft halfcomplex unpack. fft complex wavetable alloc. gsl complex sech. gsl dht k sample. mul imag. gsl fit mul est.2. gsl fft complex radix2 transform. gsl eigen herm free.2. log. gsl fft complex wavetable free. fft complex radix2 inverse. gsl fit wmul 99 . gsl complex mul real. gsl complex sub real. gsl fft halfcomplex radix2 backward. gsl complex arcsec real. gsl complex negative. gsl eigen symm.

gsl interp eval deriv2. gsl integration qags. gsl histogram max. histogram shift. gsl integration qaws table set. gsl histogram sigma. gsl interp eval e. gsl histogram memcpy. gsl histogram2d set ranges. gsl histogram2d reset. histogram2d set ranges uniform. gsl histogram scale. gsl interp alloc. gsl interp eval. gsl histogram2d ymin. gsl histogram min val. gsl histogram pdf free . gsl integration qagil. interp name. gsl histogram fscanf. gsl histogram pdf sample. histogram2d cov. gsl histogram sum gsl hypot C. gsl integration qawo table set length. gsl ieee fprintf double. gsl integration qagi. gsl histogram get range. gsl integration workspace free C. gsl interp free. gsl integration qaws table free. histogram2d increment. gsl histogram set ranges uniform. histogram2d fprintf. gsl interp linear. interp eval integ e. gsl histogram2d fread . gsl integration qawo table free. gsl histogram mul. gsl integration qawc. gsl histogram2d max bin. histogram2d ymax. integration qng. gsl histogram2d xmean. gsl integration qagiu. gsl histogram find. gsl interp init. histogram2d min bin. gsl histogram2d get xrange.La biblioth`que GSL e C. histogram reset.13 gsl gsl gsl gsl gsl gsl gsl gsl gsl gsl gsl gsl gsl gsl gsl gsl gsl gsl gsl Histogrammes gsl histogram2d accumulate.15 gsl gsl gsl gsl gsl Int´gration e gsl integration qag. histogram2d ny. gsl interp eval deriv e. gsl histogram2d min val.2. histogram fprintf. gsl histogram2d memcpy. gsl ieee printf float C. gsl isnan 100 . histogram get. gsl histogram2d clone. gsl interp polynomial gsl isinf. gsl histogram2d mul.2. gsl histogram pdf init.14 IEEE gsl ieee env setup. gsl interp bsearch. gsl ieee fprintf float. gsl histogram2d shift. interp cspline periodic. gsl interp cspline. gsl histogram max val. gsl histogram2d add. integration qaws table alloc. gsl histogram2d sub. gsl interp min size. gsl histogram2d equal bins p. gsl histogram fread. gsl histogram add. gsl histogram2d scale. gsl histogram increment. interp akima periodic. gsl histogram2d max val. gsl histogram2d alloc. gsl histogram2d find. gsl histogram2d free.2. gsl integration workspace alloc. gsl interp accel free. gsl histogram2d nx. gsl integration qawf. gsl histogram2d get. histogram2d fwrite . histogram pdf alloc. gsl histogram fwrite. gsl integration qaws. gsl histogram2d ysigma. histogram2d pdf sample. gsl histogram free. gsl histogram min bin. gsl histogram2d div.2. gsl interp accel find . gsl interp eval deriv. interp eval deriv2 e. gsl interp eval integ. integration qawo table set. histogram accumulate. gsl histogram mean. gsl histogram div. gsl histogram2d xsigma. gsl histogram bins. gsl histogram2d pdf alloc. gsl histogram equal bins p. integration qawo. histogram clone. gsl histogram2d pdf free. gsl integration qawo table alloc.16 gsl gsl gsl gsl gsl Interpolation gsl interp accel alloc. integration qagp. gsl histogram2d fscanf. histogram2d xmax. gsl histogram2d get yrange. gsl histogram2d sum. gsl ieee printf double. gsl histogram set ranges. histogram min. gsl histogram alloc. gsl histogram2d xmin. gsl histogram2d ymean. gsl histogram2d pdf init. gsl interp akima. histogram max bin. gsl histogram sub.

matrix ptr. gsl linalg LU decomp. gsl min fminimizer goldensection. gsl linalg cholesky svx. min fminimizer f upper. linalg QRPT update. gsl linalg symmtd decomp.20 Monte Carlo gsl monte miser alloc. gsl matrix set zero. gsl linalg LU invert. linalg cholesky decomp. linalg QRPT Rsolve. gsl linalg QRPT QRsolve. gsl matrix swap rows. gsl min fminimizer name. gsl linalg complex LU lndet. gsl linalg SV decomp mod. gsl min fminimizer x upper. gsl linalg QRPT Rsvx. gsl linalg QR Rsvx. gsl min fminimizer f lower. gsl matrix fread. gsl linalg R solve. gsl matrix view array with tda.C. gsl matrix mul elements. gsl linalg hermtd unpack T.2. gsl matrix submatrix. gsl matrix set row. gsl linalg bidiag unpack2. gsl linalg bidiag unpack. gsl linalg LU sgndet. gsl linalg cholesky solve.2. gsl matrix set identity. gsl matrix column. linalg complex LU sgndet. linalg hermtd decomp. gsl monte plain alloc. gsl monte plain integrate. gsl matrix const row. gsl matrix const superdiagonal. gsl matrix calloc. gsl linalg R svx. gsl monte plain free. gsl matrix max index. matrix const column. gsl linalg HH solve. gsl matrix free. matrix fscanf. gsl matrix set all. gsl linalg QR QTvec. gsl matrix view array. linalg QR lssolve. gsl matrix ptr. gsl monte plain init. gsl matrix get row. gsl linalg SV decomp. gsl min fminimizer set . gsl min fminimizer x minimum. gsl linalg LU det. matrix set col. gsl matrix add constant. linalg complex LU det. gsl matrix sub. gsl matrix alloc. gsl matrix set.2. gsl linalg QR Qvec.17 gsl gsl gsl gsl gsl gsl gsl gsl gsl gsl gsl gsl gsl Alg`bre lin´aire e e gsl linalg bidiag decomp. matrix transpose memcpy . linalg HH svx. gsl matrix superdiagonal. min fminimizer iterate. gsl matrix fprintf. gsl linalg QRPT solve. gsl linalg QR decomp. gsl linalg LU lndet. gsl matrix const diagonal . gsl linalg bidiag unpack B. gsl linalg complex LU refine. gsl matrix get. gsl matrix swap. gsl linalg QRPT svx. gsl matrix fwrite. gsl linalg symmtd unpack. gsl linalg solve symm cyc tridiag. gsl linalg QR QRsolve. gsl linalg symmtd unpack T C. gsl linalg LU solve. linalg LU refine. matrix diagonal. gsl monte miser init . gsl matrix get col. gsl linalg QR unpack.2 Sous programmes C. gsl linalg QRPT decomp . linalg QR update. 101 . min test interval C. gsl monte miser free. matrix subdiagonal. gsl matrix max. gsl matrix const view vector with tda. matrix const view array with tda. gsl matrix minmax. gsl matrix const view vector. gsl monte miser integrate. linalg QR Rsolve. gsl matrix swap rowcol. linalg SV solve. gsl matrix transpose. matrix min index. gsl matrix div elements. gsl min fminimizer set with values.2. gsl matrix memcpy. gsl matrix min. gsl linalg complex LU svx. gsl linalg QRPT decomp2. matrix isnull.19 gsl gsl gsl gsl Minimisation gsl min fminimizer alloc. gsl min fminimizer brent. linalg solve symm tridiag. min fminimizer x lower. gsl matrix const view array. gsl linalg hermtd unpack. gsl linalg complex LU decomp. gsl linalg QR solve. gsl min fminimizer free. gsl matrix view vector with tda C. gsl matrix minmax index. gsl linalg complex LU solve. gsl linalg SV decomp jacobi. gsl linalg LU svx. matrix view vector. gsl matrix const subdiagonal.18 gsl gsl gsl gsl gsl gsl gsl gsl gsl gsl gsl gsl gsl Matrices gsl matrix add. gsl min fminimizer f minimum. matrix swap columns. gsl matrix row. gsl linalg QR svx. matrix const submatrix. gsl matrix scale.

gsl ntuple write. odeiv step gear2. gsl multifit fsolver alloc. multiroot fdfsolver free. gsl multimin fdfminimizer name. gsl permutation linear cycles. gsl multiroot fdfsolver iterate. gsl multiroot fdfsolver gnewton. gsl multimin fdfminimizer x. gsl multiroot fdfsolver set. gsl permutation free. gsl multifit fsolver set.22 gsl gsl gsl gsl gsl gsl Equations diff´rentielles e gsl odeiv control alloc. gsl odeiv control free. gsl odeiv control y new. gsl multiroot test delta. multifit fdfsolver position. permute. gsl odeiv evolve apply. gsl multifit fdfsolver lmsder. gsl permute vector. gsl multifit linear alloc. gsl multifit wlinear. permutation reverse. gsl multiroot fsolver iterate. gsl permutation size. gsl odeiv step rkf45 C. gsl multifit fsolver name. gsl multiroot fdfsolver hybridj. multiroot fsolver hybrids.21 gsl gsl gsl gsl gsl gsl gsl gsl gsl gsl gsl gsl gsl gsl gsl gsl gsl gsl Ajustements non-lin´aires e gsl multifit covar. multiroot fdfsolver newton. gsl permutation next. multimin fdfminimizer vector bfgs. gsl multimin fdfminimizer gradient. gsl monte vegas init . multiroot fsolver root. gsl odeiv step gear1. permutation inverse. gsl permute inverse. gsl odeiv evolve reset. gsl permutation inversions. multifit test delta. multimin fdfminimizer set. gsl multifit fsolver position. gsl multifit fdfsolver iterate. gsl ntuple open. gsl monte vegas integrate C. multiroot fsolver alloc. gsl odeiv evolve free.2. gsl permutation init. gsl ntuple close. gsl odeiv step rkck.2. multimin fdfminimizer free. gsl odeiv step apply. gsl odeiv step rk4imp. gsl multifit linear free. multiroot fdfsolver hybridsj. gsl ntuple read. gsl permutation fread. gsl multimin fdfminimizer conjugate pr. gsl ntuple create. gsl permutation calloc.La biblioth`que GSL e gsl monte vegas alloc. gsl multiroot fsolver free. gsl odeiv step order. gsl multiroot fdfsolver root. gsl multiroot test residual gsl ntuple bookdata. gsl permutation swap. gsl permutation fwrite. gsl multimin fdfminimizer iterate. odeiv step rk2. multifit fsolver iterate. gsl monte vegas free. multiroot fsolver dx . gsl multiroot fsolver dnewton. multifit fdfsolver lmder. gsl multifit fsolver free. gsl multiroot fdfsolver f. gsl multiroot fdfsolver dx. gsl permutation fprintf. gsl multifit fdfsolver free. gsl multimin fdfminimizer steepest descent. gsl multifit linear. gsl multimin fdfminimizer restart. gsl multiroot fsolver name. gsl odeiv step reset. gsl multifit fdfsolver set. gsl permutation linear to cano permutation memcpy. gsl odeiv step name. gsl odeiv control standard new. gsl odeiv control yp new. gsl odeiv control hadjust. odeiv step alloc. gsl multifit fdfsolver alloc. gsl multifit test gradient. multifit gradient. gsl multiroot fsolver set.23 gsl gsl gsl gsl gsl gsl Permutation gsl permutation alloc. gsl odeiv step rk4. gsl permutation valid. gsl multiroot fsolver f. gsl permutation mul. gsl multiroot fsolver hybrid. gsl permute vector inverse 102 . gsl permutation canonical cycles. gsl multifit fdfsolver name. C. gsl multiroot fsolver broyden. gsl ntuple project. gsl permutation prev. gsl permutation get. odeiv control name. multiroot fdfsolver alloc. gsl permutation canonical to permutation data. odeiv evolve alloc. gsl odeiv step rk2imp. gsl multiroot fdfsolver name. gsl odeiv control init. gsl odeiv step free. gsl odeiv step bsimp. multimin fdfminimizer minimum. multimin fdfminimizer conjugate fr. gsl multimin fdfminimizer alloc. odeiv step rk8pd. gsl multimin test gradient. permutation fscanf.2.

gsl rng uniform pos. gsl ran exponential. gsl rng coveyou. gsl pow 8. gsl rng uniform. gsl poly dd init. gsl rng random libc5. gsl ran pareto.27 Racines unidimensionnelles gsl root fdfsolver alloc. gsl rng min. gsl ran cauchy pdf. gsl qrng state. ran ugaussian tail pdf. gsl ran poisson pdf. gsl poly eval. gsl rng state. gsl ran weibull. gsl poly complex solve cubic. rng waterman14. gsl ran shuffle. gsl ran dir nd. gsl rng print state. gsl ran pascal pdf. gsl rng ranlxs0. ran logistic pdf. gsl ran tdist pdf. gsl qrng free. gsl poly dd eval. gsl pow 5. gsl rng r250. gsl ran negative binomial. gsl ran sample. rng taus. gsl ran logarithmic. gsl ran gumbel1 pdf. gsl ran levy skew. ran chisq. gsl rng tt800.C. gsl rng rand. gsl ran landau pdf. gsl rng minstd. gsl qrng size. gsl ran weibull pdf. ran discrete preproc. gsl qrng get . gsl rng size. rng fishman20. ran gamma pdf. ran rayleigh tail pdf. gsl ran geometric pdf.26 gsl gsl gsl gsl gsl gsl gsl gsl gsl gsl gsl gsl gsl gsl gsl gsl gsl gsl gsl gsl gsl gsl gsl gsl gsl gsl gsl gsl gsl Nombres al´atoires e gsl qrng alloc. ran bivariate gaussian. gsl qrng niederreiter 2. gsl rng ranlux. gsl qrng sobol. gsl rng zuf C. GSL REAL. gsl rng uniform int. gsl pow 3. gsl ran binomial pdf. ran poisson. gsl pow 9. gsl rng random bsd. gsl poly complex solve quadratic. gsl ran choose. gsl rng alloc. gsl qrng clone. rng mrg. gsl ran dir 2d. gsl ran rayleigh tail. gsl poly solve quadratic C. gsl rng randu. gsl ran laplace pdf. rng ran1. gsl ran cauchy. gsl ran fdist. gsl root fdfsolver free. gsl ran gaussian ratio method. gsl ran rayleigh. gsl rng ranf. rng knuthran2. ran gaussian tail. gsl rng ranlxd2. gsl ran rayleigh pdf. rng ranlux389. gsl rng clone. gsl ran pascal. gsl qrng init.2. gsl rng ran2. rng borosh13. gsl rng free.2 Sous programmes C.2. gsl ran discrete.2. gsl rng cmrg. rng random glibc2. gsl ran gaussian tail pdf. gsl rng ranmar. gsl rng lecuyer21. gsl ran lognormal. gsl rng knuthran. gsl ran gaussian. gsl pow 7. gsl rng env setup. gsl qrng memcpy. ran levy. gsl ran discrete pdf. gsl pow 4. gsl ran gamma. gsl ran hypergeometric. gsl ran ugaussian ratio method. gsl poly solve cubic. gsl ran bernoulli. gsl rng max.2. gsl ran landau. gsl ran exppow. gsl ran beta pdf. gsl rng transputer. gsl rng ranlxs1. qrng name. gsl ran pareto pdf. gsl ran tdist. gsl ran discrete free. gsl ran beta. gsl ran chisq pdf. gsl ran gaussian pdf. gsl rng ran3. gsl ran gumbel2 pdf. gsl root fdfsolver iterate. gsl ran laplace. gsl rng rand48. gsl poly complex workspace free.24 Polynˆmes o gsl poly complex solve. gsl rng get. gsl pow 6. gsl rng fishman18. rng uni32. gsl rng memcpy. ran bernoulli pdf. gsl root fdfsolver name. gsl ran binomial. ran ugaussian. gsl rng taus2. 103 . gsl rng uni. gsl ran flat pdf. gsl ran lognormal pdf.25 Puissances gsl pow 2. gsl ran logarithmic pdf. gsl rng mt19937. gsl ran exponential pdf. ran gumbel1. gsl ran ugaussian tail. gsl poly complex workspace alloc. gsl rng slatec. gsl rng fishman2x. ran dir 3d. ran negative binomial pdf. gsl ran logistic. gsl ran ugaussian pdf. gsl pow int C. gsl rng set. gsl ran dir 2d trig method. gsl poly dd taylor. ran exppow pdf. rng ranlxs2. gsl rng ranlxd1. gsl ran bivariate gaussian pdf. gsl rng vax. gsl ran flat. gsl rng gfsr4. gsl rng ran0. ran hypergeometric pdf. gsl ran gumbel2. gsl rng types setup. gsl ran geometric . gsl ran fdist pdf. gsl rng name.

gsl sf angle restrict symm e. gsl sf bessel Jnu. gsl sf bessel lnKnu. gsl sf bessel Kn array. gsl sf airy zero Ai e. gsl sf bessel Jnu e. gsl sf bessel Yn e. sf bessel In scaled e. gsl sf airy zero Bi deriv e. gsl sf bessel Kn e. gsl sf airy Bi scaled e. gsl sf bessel lnKnu e. gsl sf bessel zero J1. gsl sf bessel Ynu. gsl sf bessel I1 scaled. gsl sf bessel In e. gsl sf bessel I0 scaled. gsl root fdfsolver set. gsl sf bessel Yn. gsl sf bessel kl scaled array. gsl sf bessel y0. gsl sf bessel k0 scaled e. gsl root fsolver iterate. gsl sf bessel K0 scaled. gsl sf airy zero Ai deriv. gsl sf bessel zero J0. sf bessel K0. gsl sf bessel k1 scaled e. gsl sf bessel zero J1 e. gsl sf airy Ai e. test delta. gsl root fsolver free. sf airy Bi deriv scaled e. gsl sf bessel yl. gsl sf bessel Knu. gsl root fsolver bisection. gsl sf bessel I1. sf bessel Yn array. gsl sf airy Bi e. gsl sf airy Ai deriv scaled. gsl sf airy Bi scaled. sf bessel Knu scaled. gsl sf bessel K1. gsl sf bessel J0 e. gsl root fsolver brent. gsl sf airy Bi deriv. gsl sf bessel I1 e. gsl sf airy zero Bi e Divers gsl sf angle restrict pos. gsl sf bessel jl e. fsolver falsepos. gsl sf bessel yl array. gsl sf bessel Y1. gsl sf bessel K1 e. gsl sf atanint. gsl root fsolver set. gsl sf bessel Kn. sf bessel y2 e. gsl sf bessel K1 scaled e. gsl sf bessel y0 e. gsl sf bessel Jn e. gsl root fsolver name. gsl sf bessel y1 e. gsl sf bessel kl scaled. gsl sf bessel j2 .28 Airy gsl gsl gsl gsl gsl Fonctions sp´ciales e gsl sf airy Ai. gsl sf bessel zero Jnu.La biblioth`que GSL e gsl gsl gsl gsl gsl root root root root root fdfsolver newton. gsl sf bessel Jn array. gsl sf bessel j1. gsl sf bessel i2 scaled. gsl root fdfsolver root. sf bessel Inu scaled e. gsl sf bessel j0 e. gsl sf bessel Y0 e. gsl sf bessel J0. sf airy Bi. sf bessel sequence Jnu e. gsl sf bessel il scaled array. gsl sf bessel jl. sf bessel zero J0 e. sf bessel K0 scaled e. gsl root fsolver x upper. sf bessel Jn. gsl root test residual gsl set error handler. gsl sf bessel Knu scaled e. gsl sf bessel Y0. gsl sf bessel Kn scaled e. gsl root fdfsolver secant. sf airy zero Bi. gsl sf bessel Inu scaled. gsl sf bessel j1 e. gsl sf bessel i0 scaled. gsl sf angle restrict symm. gsl sf bessel In. gsl sf bessel y2. sf bessel k2 scaled. gsl sf bessel yl e. sf bessel In array. gsl sf bessel J1 e. gsl sf angle restrict pos e. gsl sf airy Ai deriv e. gsl sf bessel j0. sf bessel K1 scaled. gsl sf airy Ai deriv. gsl set error handler off C. gsl sf bessel I0 scaled e. fdfsolver steffenson. gsl sf bessel K0 e. sf bessel j2 e. gsl root fsolver alloc. gsl sf bessel k1 scaled. gsl sf airy Ai scaled e. gsl sf airy Ai scaled. sf bessel I1 scaled e. gsl sf bessel jl array.2. gsl sf bessel k2 scaled e. gsl sf airy Bi deriv e. gsl sf bessel i2 scaled e. sf bessel Kn scaled array. gsl sf airy zero Ai deriv e. gsl sf bessel i1 scaled. gsl sf bessel Knu e. gsl sf bessel Ynu e. sf bessel zero Jnu e 104 . sf bessel kl scaled e. gsl sf bessel i1 scaled e. gsl sf bessel il scaled e. gsl sf atanint e Bessel gsl gsl gsl gsl gsl gsl gsl gsl gsl gsl gsl gsl gsl gsl gsl gsl gsl gsl gsl gsl gsl gsl gsl sf bessel I0. gsl sf bessel k0 scaled. gsl root test interval . gsl sf bessel jl steed array. gsl sf bessel Kn scaled. sf bessel y1. gsl sf bessel I0 e. gsl sf airy Bi deriv scaled. gsl sf bessel Inu e. gsl sf bessel In scaled. gsl root fsolver x lower. sf bessel J1. gsl sf bessel Y1 e. sf bessel il scaled. sf airy Ai deriv scaled e. gsl sf bessel Inu. gsl sf airy zero Bi deriv. fsolver root. gsl sf bessel In scaled array. sf airy zero Ai. sf bessel i0 scaled e.

sf expint E2 e. sf complex dilog e. gsl sf exp e10 e . gsl sf conicalP mhalf. gsl sf fermi dirac half e. sf doublefact. gsl sf exp e. sf fermi dirac inc 0 e. gsl sf gegenpoly n e. gsl sf hydrogenicR e. sf cos e. gsl sf hydrogenicR. gsl sf beta. sf choose. gsl sf fermi dirac int. Coniques. gsl sf laguerre 3 e. gsl sf exp mult err e. gsl sf debye 4 e. gsl sf exprel 2. sf ellint Kcomp. gsl sf Ci. gsl sf hyperg 2F1 renorm e. gsl sf cos. sf laguerre 2. gsl sf debye 2 e. gsl sf coulomb wave FG e. gsl sf hyperg 1F1 int e. gsl sf elljac e. gsl sf ellint D. gsl sf expint Ei. sf fermi dirac 3half e. sf coulomb wave FGp array . gsl sf fermi dirac 3half. gsl sf hyperg 1F1 int.. gsl sf debye 1 e. gsl sf gammastar e. sf gegenpoly 1 e.. gsl sf fermi dirac m1. gsl sf complex logsin e. gsl sf erf Z e. sf hyperg 2F1 renorm. gsl sf gammainv e. gsl sf ellint Ecomp e. sf gammainv . sf conicalP cyl reg e. sf hyperg 1F1. sf legendre H3d 1. gsl sf fermi dirac 2. sf conicalP mhalf e.Elliptiques. gsl sf laguerre 1. sf coupling 3j e. sf debye 3. sf hydrogenicR 1 e. gsl sf beta e. gsl sf gamma inc Q e. gsl sf legendre Pl. sf hyperg 2F0. gsl sf fact e. gsl sf ellint RC. sf dawson. gsl sf legendre H3d array. gsl sf exp mult e10 e. sf legendre array size. sf expint 3. gsl sf debye 4. gsl sf eta e. gsl sf ellint P e. gsl sf lambert Wm1 e. gsl sf hyperg U e. gsl sf dilog e. sf coulomb wave F array. gsl sf exp err e. gsl sf exp. gsl sf eta int. gsl sf legendre P2 e. gsl sf hypot e. gsl sf coupling 3j. gsl sf beta inc. gsl sf Ci e. gsl sf fermi dirac inc 0. gsl sf laguerre n. sf eta int e. gsl sf expm1. gsl sf erfc. gsl sf expm1 e. gsl sf lambert W0. gsl sf ellint Ecomp. gsl sf legendre H3d 1 e. gsl sf hyperg U . sf erf Z. gsl sf beta inc e. sf fact. gsl sf legendre H3d 0. gsl sf exp mult e. gsl sf eta. gsl sf ellint D e. gsl sf expint 3 e. gsl sf hydrogenicR 1. gsl sf expint Ei e. gsl sf gamma inc Q. gsl sf conicalP sph reg. sf exprel. gsl sf erf e. gsl sf gamma inc P. gsl sf ellint RJ e. sf conicalP 0. gsl sf erf. gsl sf conicalP 1 e. gsl sf fermi dirac 2 e. gsl sf coulomb CL array . gsl sf expint E1. gsl sf complex sin e. gsl sf dilog. gsl sf erfc e. gsl sf hyperg U int e10 e. sf fermi dirac 1 e. gsl sf fermi dirac int e. sf hyperg 2F1 conj renorm . gsl sf hyperg 0F1 e. gsl sf fermi dirac half. gsl sf legendre P2. gsl sf laguerre 1 e. gsl sf legendre Pl array. sf laguerre n e. gsl sf fermi dirac mhalf e. gsl sf fermi dirac 0 e. gsl sf fermi dirac 0. gsl sf legendre H3d e. gsl sf coulomb wave FG array. gsl sf lambert Wm1. gsl sf coupling 6j e. sf hyperg U e10 e. gsl sf complex cos e. gsl sf Chi e. gsl sf expint E1 e. gsl sf fermi dirac 1. gsl sf hzeta e. gsl sf choose e. gsl sf legendre P1 e. gsl sf conicalP half e. sf ellint E e. gsl sf legendre H3d 0 e. gsl sf lambert W0 e. gsl sf gegenpoly 2 e. gsl sf coulomb CL e. gsl sf coupling 9j. gsl sf debye 3 e. gsl sf hyperg 2F1 conj renorm e. gsl sf conicalP sph reg e. gsl sf hyperg U int e. gsl sf expint E2. sf hypot. gsl sf dawson e. gsl sf conicalP 1 . gsl sf complex log e. gsl sf legendre H3d. sf ellint RJ. sf gamma e. gsl sf hyperg U int. gsl sf fermi dirac mhalf. gsl sf hyperg 2F1 conj e. gsl sf gegenpoly 3 e. gsl sf legendre Pl e. gsl sf ellint E. sf fermi dirac m1 e. sf ellint RC e. sf legendre P1. gsl sf ellint RF. gsl sf gamma inc P e. gsl sf legendre P3. gsl sf erf Q. gsl sf ellint RD. gsl sf conicalP cyl reg. gsl sf gegenpoly n. gsl sf exp err e10 e. gsl sf ellint F. gsl sf exprel n. sf legendre P3 e.C. gsl sf laguerre 2 e. gsl sf exprel n e. gsl sf hyperg 2F0 e. gsl sf exprel e. gsl sf gammastar. gsl sf ellint Kcomp e. gsl sf exp mult err e10 e. gsl sf coupling 6j. gsl sf Chi. gsl sf gegenpoly 2. gsl sf laguerre 3 . gsl sf ellint P. sf exp mult. gsl sf exprel 2 e. gsl sf ellint RF e. gsl sf hzeta. gsl sf doublefact e. gsl sf gegenpoly 1. . gsl sf erf Q e.2 Sous programmes Beta. gsl sf conicalP half. gsl sf ellint F e. gsl sf cos err e. gsl sf gegenpoly 3. gsl sf hyperg 0F1. gsl sf hyperg 2F1 e. gsl sf debye 2. gsl sf coupling 9j e. gsl sf hyperg 2F1 conj. gsl sf debye 1. gsl sf hyperg 2F1. gsl gsl gsl gsl gsl gsl gsl gsl gsl gsl gsl gsl gsl gsl gsl gsl gsl gsl gsl gsl gsl gsl gsl gsl gsl gsl gsl gsl gsl gsl gsl gsl gsl gsl gsl gsl gsl gsl gsl gsl gsl gsl gsl gsl 105 . gsl sf clausen. gsl sf gamma. sf gegenpoly array. gsl sf clausen e. gsl sf ellint RD e. gsl sf conicalP 0 e. gsl sf hyperg 1F1 e. gsl sf cos err. gsl sf coulomb wave sphF array.

2. gsl sort vector largest index. gsl sf sin err e. gsl stats wvariance. gsl sf lnpoch sgn e. gsl stats absdev m. lnbeta e. synchrotron 1 e. gsl sf legendre Plm array. gsl spline eval e. gsl sf Shi. gsl sf psi 1 int. gsl sf lncosh. gsl sf synchrotron 2. psi n e. gsl stats wabsdev m. transport 4. gsl sf lnfact e.30 Lissage gsl spline alloc. gsl sf sin. gsl stats wkurtosis m sd. gsl stats sd with fixed mean. gsl sf transport 3. gsl sf multiply err e. sin e. gsl sf Si. gsl sort vector largest. gsl sf psi int. gsl heapsort index C. gsl stats mean. gsl sf transport 5 e. gsl stats lag1 autocorrelation . gsl sort vector.31 Statistique gsl stats absdev. gsl sf lngamma complex e. gsl spline eval. gsl sort smallest. legendre Q0 e. lnsinh. gsl sort vector smallest index. gsl sf transport 3 e. gsl sf zeta int. gsl sort largest. gsl sf psi 1 int e. gsl sf legendre Ql e. gsl sf lnchoose. gsl sf log 1plusx. gsl sf log. gsl stats variance. gsl sf log e. gsl sf log abs. gsl stats minmax index. log 1plusx mx e. gsl stats wskew. gsl sf transport 2. gsl sf taylorcoeff. gsl stats wvariance m. gsl sf rect to polar. gsl stats sd m. gsl siman solve C. gsl sf legendre Plm e.2. gsl sf synchrotron 2 e. gsl sf sin err. psi 1piy. gsl sort index. gsl stats variance m . gsl sf lngamma sgn e. gsl sf Shi e. gsl stats wsd. gsl sf psi n. gsl sort largest index. gsl sf poch. gsl stats wskew m sd. lngamma e. gsl sf poch e. gsl sf log 1plusx e. gsl spline eval deriv. gsl sf lnsinh e. taylorcoeff e. gsl sf synchrotron 1. gsl sort vector smallest. gsl sf sinc e. legendre sphPlm. zeta e. gsl sf legendre Q1. gsl sf Si e. gsl spline init C. gsl sf log abs e .2. gsl stats wmean. gsl stats covariance m. gsl sf lncosh e. gsl stats min index. gsl stats sd. gsl stats wkurtosis. gsl stats lag1 autocorrelation m. gsl heapsort. lndoublefact e. gsl sf zeta. gsl stats max. polar to rect. gsl sf psi int e. gsl stats wsd m. gsl sf log 1plusx mx. gsl sf pochrel. gsl stats min. gsl sf zeta int e. gsl sf psi. gsl sf log erfc e. gsl sf lngamma. gsl sf pow int. gsl spline eval integ e. gsl stats kurtosis. gsl spline eval deriv e. gsl stats kurtosis m sd. gsl sf legendre sphPlm array. gsl sf lndoublefact. gsl spline eval integ.La biblioth`que GSL e gsl gsl gsl gsl gsl gsl gsl gsl gsl gsl gsl gsl gsl gsl gsl gsl gsl sf sf sf sf sf sf sf sf sf sf sf sf sf sf sf sf sf legendre Plm. gsl sf psi e. gsl stats variance with fixed mean. gsl stats max index. multiply e. gsl spline eval deriv2 e. gsl sf log erfc. gsl sf lnfact. gsl stats skew m sd. gsl sort vector index. gsl sf lnbeta. gsl sf pow int e. gsl sf legendre sphPlm e. gsl sort smallest index. gsl sf lnpoch. gsl spline free. gsl sf transport 4 e. gsl sf legendre Q0. gsl sf transport 5. gsl stats minmax. gsl sf legendre Q1 e. gsl sf legendre Ql. gsl sf lnchoose e. gsl sf sinc. gsl stats wvariance with fixed mean gsl strerror 106 . gsl sf psi 1piy e. gsl spline eval deriv2. gsl stats skew. gsl stats median from sorted data. gsl stats quantile from sorted data. gsl sf transport 2 e. gsl stats covariance. gsl stats wabsdev.29 Tris gsl sort. gsl stats wsd with fixed mean. gsl sf lnpoch e. gsl sf pochrel e.

gsl vector ptr. vector complex real. gsl vector view array gsl vector view array with stride Nous renvoyons au manuel pour une pr´sentation d´taill´e de chacune de e e e ces fonctions. vector set zero. gsl vector set all. gsl vector subvector with stride. 107 .32 Transform´es de Levin e gsl sum levin u accel.C. gsl vector min. gsl vector minmax index. gsl sum levin utrunc accel. gsl vector mul. vector minmax. gsl vector complex imag. gsl vector complex const real .2. gsl vector ptr. gsl vector subvector. gsl vector set. gsl vector alloc. vector const view array. gsl vector sub. gsl vector set basis. gsl vector div. gsl vector fwrite. vector fread. vector max. vector complex const imag. gsl vector swap elements. gsl vector get. gsl vector fprintf. gsl sum levin utrunc alloc. gsl vector const view array with stride. gsl vector free.33 gsl gsl gsl gsl gsl gsl gsl gsl gsl Vecteurs gsl vector add. gsl vector min index. vector swap. gsl vector add constant. gsl vector scale. vector reverse. gsl vector const subvector . gsl vector max index. gsl vector isnull.2. gsl vector const subvector with stride. gsl vector memcpy. gsl vector calloc. gsl sum levin u alloc.2 Sous programmes C. gsl sum levin u free. gsl sum levin utrunc free C. gsl vector fscanf.

La biblioth`que GSL e 108 .

html 109 .edu/B673/ [6] http ://dmawww. Flannery. Vetterling.mosaic/index. Press.ucs.com/gsl/ [3] http ://www. Numerical Recipes in C.ch/rappaz.indiana. S. B.org/blas/ [5] http ://beige. Cambridge University Press (1992).epfl.org/lapack/ [4] http ://www.P. H. Teukolsky.T. W.redhat.Bibliographie [1] W.netlib. [2] http ://sources.A.netlib.

BIBLIOGRAPHIE 110 .

. . . . . . . . . . . .3. e 3 3 4 5 6 7 7 9 11 13 13 14 14 14 16 18 20 20 20 21 22 23 23 24 25 25 26 27 27 28 28 29 . . .4 M´thodes de Gauss . . . . . . . . . . . . . . . .1 Trap`ze . .6 Int´grales multiples . . . . . . . . . . . . . . . . . . . . . .1 D´finition et propri´t´s . . . . . . . . . . . . . . .2 Dichotomie . . 3. o 3. . . . . . . . 2 Fonctions sp´ciales et ´valuation de fonctions e e 2. .5. . . . e 1. .3 Fonction Gamma . . . 2. . . . B . . . . . . . . . . .2 Fonctions Hyperg´om´triques g´n´ralis´es e e e e e 2. . . . . e e 2.3 M´thode de Ridder . . . . . . . . .1 Fonction Hyperg´om´trique Gaussienne . . . . . . . . . . . . . . . . . . . . . . . . .5. .3. . . . . . . . . . . . . . e 3. . . . . . . .5 M´thode de Gauss-Kronrod et m´thodes e e 1. . . . . . . . . . . . . . . . . . . . . . .3. . . . . . . . adaptatives . . . . . . . . . . . . . . . . . . . e e 2. . . . .2 Fonctions transcendantes simples . . . . . . . . . .7 Conclusion . . . . . . . . . . . . .1 Introduction . . . . . . . . . . . . .3. . .Table des mati`res e 1 Int´gration et sommes discr`tes e e 1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. exponentielle int´grale . . . . . . . . . . . . . . . . . . . . . . 1. . . . . . . e 1. . . . . . . . . . .6 Fonction erreur. . . . . . . . . . . . .2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. . . . . .6. e o 1. . . .1 Introduction . . . . . . . . . . . .3 M´thode de Romberg . . . . . . . . . . . . . . . . . .1 M´thode de la position fausse e 3. .1 R´duction polynomiale . . . . . . . . . e 2. . . . . .2 M´thode de Ridder . . . . . . . . . . . . . . . . . . . . . . . . . .5 Newton-Raphson . . . . . . . 3 Racines d’´quations e 3. . . . . . . . 2. . . . .1 Introduction . . . . . . . . 3. . . . . . . . .2 Fonctions reli´es : Ψ. . . . 2. . . . . . . . . . . . . . . . . . . . . . . e 1. . e 2. . . . . . . . . . . . . . . .6. . . . . .6 Racines de Polynˆmes . . e 111 . . . . . . . . . . . . . . . . . .4 Fonctions de Bessel . . . . . . . . . . . . . . . 1. . . . . . e ee 2. . . . . . .5 Fonctions Hyperg´om´triques . . .4 M´thode de Brent . . . . . . . . . . . e 3. . . . . e 3. . . . .2 Les m´thodes de Cˆtes . .2 Simpson . . . . . . . . . . . . . . . . . .2 M´thode de Laguerre . e 3. . . . .2. . . . . . . . . . . . . . . . . . . . . . . . .

8 Conclusion . . . . . . .4 Tri rapide . . . . . e 6. . . . . .4 M´thodes RK implicites a un point . .3. . .4 M´thodes de relaxation . . . . . . . . . . . . . ` 5. . . e 5. . . . . .1 Introduction . . . . . .3. . . .3. . . . .1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . e e e ` e e 4. e 4. . e 4. .2 Transform´e de Fourier discr`te . . . . . . . . e e e 4. . . . . . . . . . . e e 4. . . .7 Formule g´n´rale des m´thodes RK explicites . . e 5.4. . . . . . e ` 4. . . 4. 5 Transform´e de Fourier rapide et algorithmes de tri e 5. . . . . . . . . . . . .4. . ` 112 . . . . . . . . . . . .2 Equations avec conditions aux fronti`res e 6. . . . . . . . . . . . . . 4. . . .1 Introduction . . . . ee 5. . . . . . . . . . . . . . . . . . 6. . . . . . . . . . . . . . . . . . . .4. . . . . . .3 Discr´tisation de la transform´e de Fourier . e e 5. . . . .3. . . . . . . . .4. . . . . . . . 5. . . . . e ` 4. . . .5. . . . . . . . . .4 Equation de Bessel . . . e 4. . .5. . . e e ` 4. . . . . . . . . . . . . . .4. e 6. . . .5. . . . . .5 Algorithmes de tri . . . . .2.2 M´thode d’Euler . . e e ´ 5.6 M´thodes de Runge-Kutta “embarqu´es” .` TABLE DES MATIERES 4 Equations diff´rentielles e 4. . . . . . . .3. . . . . . . . . .2 M´thode d’insertion .3. . . .4. . . . . . . . . .2 Propri´t´s . . . . . . . . . . e 4. . . . . . . . . 4. .2 Equations du premier ordre . .3. . . . . 4. . . . . . . . . . . . . . . . . . . . . . . .6 M´thodes RK explicites a 3 points interm´diaires e ` e 4. . . . . . . . . . . . . . . . . . . . . . . . . . . . e 6. . . .1 Introduction . . . .5 M´thodes de Fourier .2 Diff´rences finies . . . .3 Equations avec conditions initiales . . . . . . e e 4. . . . .4 Transform´e de Fourier rapide . . . . . . . . .5 Equation diff´rentielle erreur . . . . . . . . 4. . . . . 6. . . . . . . . . . . .3. . . . . .5. . . .2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2. . . . . . . . . . . . 6 Equations aux d´riv´es partielles e e 6. . . . . . . . . . .5 M´thodes RK explicites a 2 points interm´diaires e ` e 4. . . . 5. . . . . . .2 D´finitions .3. . . . . . . . . . . . . .1 Equations a flux conservatif . . . . . .1 Introduction . . . . . .3 M´thode RK explicites a un point . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.4 M´thodes d’int´gration a pas s´par´ . . . . . . . . . . . . .6 Equation diff´rentielle d’Hermite . . . . . . . . . . . . . . . .2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4. . . . . . . . . . . . . . . . . .3 Equations diff´rentielles “sp´ciales” . . . . . . . . . . . . . 31 31 32 32 32 33 34 35 35 35 35 35 36 37 37 37 38 38 39 39 39 40 41 43 43 44 46 46 47 48 50 50 50 51 51 53 53 56 56 56 57 57 58 60 60 . . .1 Introduction . . . .3 Tri a bulles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6. . . . . .5. . . . . . . . . . e 6. . . . . . . . . . . . . . . 4. . . . . . . . . . . . e 4. . . . . .1 Introduction . . .5 M´thode d’int´gration a pas variables . . . . . . . . . . . . . . . . . .3 M´thodes matricielles . . . . . . . . . . 5. .1 Echantillonage . . . . . .7 M´thode de Bulirsh-Stoer . . . . . . 5. . . . .2. . . . . .1 Introduction . . . .3 Equation diff´rentielles du second ordre . . . . . . . . .

. . . . . . . . . . . . . . .6 D´composition de Choleski .4 M´thode de Lax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3. . . . . . . . . . . . . . . . . . . .2 R´solution d’un syst`me lin´aire 7. . . . . . . . . .1 M´thodes des puissances . . .4. .4. . . . . . . . . . . . . .2 Elimination de Gauss-Jordan . . . . . . . . . . . . . . . . . . e 8. . . . . . .5. . . .3. . . . .5. . . . . .3. . .2 Une approche na¨ ıve . . . . e e e 7.3. . .1 Introduction . . . . . . . . . .2 Equation de seconde esp`ce . . . . . . . . . . . . . . . e o . 8. . .4 M´thode it´ratives . . . . . . . .2 R´duction de Householder e 8. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .7 Conclusion . . e e 6. . . . . .4 6. . . . . . .2 M´thode de Lancz`s . . . . . . . . . . . . ´ 7. . . . . . . . . . . . . . . . . . . .1 Introduction . . . . . . . . . .2. . . . . . . . . . e ´ 7. . . . . . . . . . . . . . . . . . 7. . . . . .` TABLE DES MATIERES 6. . . . . . .4 Conclusion . . .3 M´thode avec pivot . . . . 9. . . . . . . .3. . . . . . 9. . . . . . . . . 9. . . . . . . . . . . . . . . . . . . .2 Propri´t´s des matrices . . . . . . . . . . .1 M´thode de Jacobi .1 Principe . . . . . . 6. . . . . 61 61 62 63 65 65 67 67 67 68 68 69 69 70 71 71 72 72 72 73 75 75 76 78 78 80 82 83 84 84 85 87 87 87 87 88 89 89 89 89 91 7 Alg`bre lin´aire e e 7. .3 Crit`re de Stabilit´ de Von Neumann . . . . . .3 M´thodes directes . . . . 8 Analyse spectrale 8. . . . . . . . .4. . . . . e Conclusion . . . . . . . .3. . 9 Equations int´grales e 9. . . . e 9. . . .3 Elimination gaussienne avec substitution 7. . . . . . . . . . . . . . . 7. . . . . . . . . . . . . . . . . 7. . . . . . . . . . . . . . . . . . . . . . . . . . . . . e 8. . . . . . . . . . . .2 Equation de Fredholm . . . . . . . . . . . . . . . . . . . 7. . . . . . . . . . . .2 M´thode sans pivot . . . . . . . . 8. . . . .2. . . . . . . .2. . . . . . . . . . . . . . . . . . . . . . . . . 7. . . . .2. . . . . .4 Factorisation de Schur . . .1 Rappels sur les matrices . . . . . . . . . . . . . .1 Equation de premi`re esp`ce e e 9. . . . . . . .2 Equation de seconde esp`ce . 8. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3. . . . . . .2. . . . . . . . . . . A Coordonn´es hypersph´riques e e 113 . .3 Algorithme QL . . . . . . . . .1 Introduction . . . . . . . . . . . . . . . . ee 8. . . . . . . . e 7. . .5 Matrices creuses . . . . . . . . . . .3. . . . .4. . . . . . . . . . . . . . . . . . . . .3 Equation de Volterra . . . . . .4 D´composition LU . . . . . . . . . . . . . . . . .1 Introduction . . . . . . . . . . . . . . . . e 9. . . . . . . . . .1 Equation de premi`re esp`ce e e 9. . . . . . 7. . . e e 8. .5. . . . . . . . . e 8. . . . . . .3 Formule de Sherman-Morison . . . . e 7. . . . . .2 Matrices tridiagonales . . . . . . . . . . . . . . . . . . . . . . . . . . . e 7. . . . . .3.

. C. . . . . . . . . . . . . . . . . . . . . . . . . . e C.2.7 Complexes . . . . . . . . .19 Minimisation . . . . . . . . e C. . . . . . . . . . . . . . . . . . . C. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .8 Hankel . . . .21 Ajustements non-lin´aires . . . . . . 93 B. . . . . . . . e C. .` TABLE DES MATIERES B Les biblioth`ques BLAS et Lapack e 93 B. . . . . . . . .2 fonctions simples . . . . . . . . . . . .2. C. . .2. C. .1 Introduction . . . . . . . . . . . . . . . .5 S´ries de Chebyshev. . . . . . . . . . . . .2. . . . . .2. . . . . . . e C. . . . . . . . . . . . . . . .2. C. . . . . . .3 interfaces entre GSL et le BLAS C. . . . . . . . . . . . . . . . . . . . . .1 BLAS . . . . . e C. . . . . C. . . . . . .14 IEEE . .2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . e C. . . . . . . .32 Transform´es de Levin . .4 Blocs . . . . . . . . . . . 94 C La biblioth`que GSL e C. . . .20 Monte Carlo . . . . . . . . . . . . . . . . . . . . .15 Int´gration . . .2. .12 Ajustements . . .2. . . . . . . C. . . .2. . . . . . . . . . . . . .16 Interpolation . . . . . . . . . . . . . . .2. . .2. . . . 95 96 97 97 98 98 98 98 98 98 99 99 99 99 99 100 100 100 100 101 101 101 101 102 102 102 103 103 103 103 104 106 106 106 107 107 114 . . . . . . . . . . . . . .2. . . . . . . . . . C. . . .13 Histogrammes . . . . . . . . . . . . . . . . . . . .2. . . . . . .23 Permutation . . . .2.22 Equations diff´rentielles . . . . . . . . . . . . . . . . . . . . . . . C. . . .2. . . . . . . . . . . .2. . . . . . . . . . . . . . . . . . . . . . . .2. . . . . . . . . .2. . . . . . C. . . . . . . . . e e C. .2. . . .2. . . . . . . C. . . . . . . . . . . . . . . . . . . . C. . . . . . .2. . . . . . . . . . . . .2. . . . . . o C. . . . . . . . . . . . . C. . . . . . . . . . . . . . . . . . . . . . . . . .1 Introduction . . . .9 D´riv´es . . . . . . . . . . .27 Racines unidimensionnelles . . . . .2. . . .2 Terminologie . .2. . . . . . .31 Statistique .10 Valeurs et vecteurs propres . . . . . . . . . . e C. . . . . . . . . . . . . .11 Transform´es de Fourier . . . .2. e C. . . . . . . . . . . . . . . C. . . . . . . . . . . . .6 Combinatoire . . . .2. . . . . . . . . . . . . . . . . C. . . . . . . . . . . . . . . .2. . . . . . C. . . . . . . . . . . . . . . . . .29 Tris . . . . . . . .26 Nombres al´atoires . . . . . . . C. . . . . . . C. . .2 Sous programmes . . . .25 Puissances . . . . . .2. . . . . . . . . . . . . . .33 Vecteurs . . . . . . . . . . . . . . . . . . . . . . . . .2. .28 Fonctions sp´ciales . . . . . . . . . . . . . . . . . . . . . . . . C. . . . . . . . . . .24 Polynˆmes . . . . . . . . . e e C. . C. . . . . . .18 Matrices . . . . . . . . . . . . . . . . C.2. . . .30 Lissage . . . . . . . . . . . . . . . . . .2. . . . . . . . . . . .2. . .17 Alg`bre lin´aire . . . . C. . .

Sign up to vote on this title
UsefulNot useful