Explorer les Livres électroniques
Catégories
Explorer les Livres audio
Catégories
Explorer les Magazines
Catégories
Explorer les Documents
Catégories
Algorithmique numérique
Notes de cours
Sup Galilée, Ingénieurs 1ère année
Francois Cuvelier 3
L.A.G.A./Département de Mathématiques 5
6
7
1
1 Algorithmique Numérique 1 2
1.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 3
1.1.1 Exemple 1 : permutation de deux voitures . . . . . . . . . . . . . . . . . . . . . . . 1 4
1.1.2 Exemple 2 : résolution d'une équation . . . . . . . . . . . . . . . . . . . . . . . . . 3 5
1.1.3 caractéristiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 6
1.1.4 Première approche méthodologique . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 7
1.2 Pseudo-langage algorithmique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 8
1.2.1 Données et constantes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 9
1.2.2 Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 10
1.2.3 Opérateurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 11
1.2.4 Expressions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 12
1.2.5 Instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 13
1.2.6 Fonctions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 14
1.4 Méthodologie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 15
1.4.1 Description du problème . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 16
1.4.2 Recherche d'une méthode de résolution . . . . . . . . . . . . . . . . . . . . . . . . 8 17
1.4.3 Réalisation d'un algorithme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 18
1.5 Principes de bonne programmation pour attaquer de gros problèmes . . . . . . . . . 11 19
2 Méthodes Numériques 13 20
2.1 Polynôme d'interpolation de Lagrange . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 21
2.1.1 Dénition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 22
2.1.2 Erreur de l'interpolation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 23
2.1.3 Points de Chebyshev . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 24
2.2 Dérivation numérique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 25
2.3 Intégration numérique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 26
2.3.1 Méthodes simpliste . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 27
2.3.2 Méthodes de Newton-Cotes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 28
2.3.3 Méthodes composites . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 29
2.3.4 Formule composite des trapèzes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 30
2.3.5 Formule composite de Simpson . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 31
2.3.6 Autres méthodes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 32
2.3.7 Intégrales multiples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 33
2.4 Algèbre linéaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 34
iv TABLE DES MATIÈRES
1 2.4.1 Vecteurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
2 2.5.1 Matrices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
0.0.0
0.TABLE DES MATIÈRES
0.0. TABLE DES MATIÈRES
Chapitre 1
Algorithmique Numérique
1.1 Introduction 2
Le but ici est d'acquérir une méthodologie permettant de mettre sur le papier la résolution d'un problème 3
donné (bien posé!). Pour celà, nous utiliserons un ensemble d'instructions dont l'application permet de 4
résoudre le problème en un nombre ni d'opérations (ou d'actions). 5
Ceci est l'objet de l'algoritmique : 6
Dénition 1.1 (Petit Robert 97) Algorithmique : Enchaînement d'actions nécessaires à l'accomplissement 7
d'une tâche. 8
Tâche : Permuter deux voitures sur un parking de trois places numérotées de P1 à P3 et ceci sans géner 10
la circulation. La voiture B, est sur l'emplacement P2 , la voiture R, est sur l'emplacement P3 .
P1 P2 P3 P1 P2 P3
B R R B
3 • Que veut-dire l'action déplacer? Si les voitures sont non-roulantes, prendre une grue? sinon a-t'on
4 les clés des deux véhicules?
5 • Dans l'énoncé, il est dit sans géner la circulation! Donc il y a de la circulation et à tout moment
6 un véhicule extérieur au problème peut venir occuper un emplacement libre!
7 • ...
8 En fait, les lacunes et ambiguités proviennent pour la plupart d'une mauvaise description de la tâche à
9 réaliser : le problème est mal posé.
10 Cependant nous pouvons tout de même écrire un algorithme mais en restreignant son champ d'application
11 : nous allons faire des hypothèses sur les données du problème.
12 Tout d'abord il faut préciser les données du problème :
Données :
13 Parking de trois emplacements, numérotés de P1 à P3 .
Deux voitures,l'une notée B et l'autre R.
14 Ensuite, nous précisons les hypothèses sur les données
15 Hypothèses sur les données :
1.1.2 Exemple 2 : résolution d'une équation
1: Si a diérent de 0 alors
2: La solution est x “ b{a.
3: Sinon
4: Il n'y a pas de solution
5: Fin Si
4
Une nouvelle fois, l'énoncé de la tâche à eectuer est trop imprécise! En eet, rien ne nous per- 5
met d'armer que x est l'inconnue ou que a n'est pas une matrice. Il faut alors palier au manque 6
d'informations en ajoutant des hypothèses pour clarier le problème : 7
ax “ b.
1: x Ð b{a
1. Algorithmique Numérique
1.1.3 caractéristiques 10
‚ Pour toutes les données d'entrée, l'algorithme doit fournir un résultat en un nombre ni d'opérations. 14
1.2.Pseudo-langage algorithmique
‚ Il est adapté au public auquel il est destiné. 15
Nous présentons ci-dessous quelques éléments méthodologiques pour la réalisation d'un algorithme : 17
Etape 3 : Ecrire l'algorithme (par ranement successif pour des algorithmes compliqués ). 20
Pour uniformiser l'écriture des algorithmes nous employons, un pseudo-langage contenant l'indispensable : 22
23
‚ variables, 24
1 ‚ expressions,
3 ‚ fonctions.
8 1.2.2 Variables
9 Dénition 1.2 Une variable est un objet dont la valeur est modiable, qui possède un nom et un type
10 (entier, charactère, réel, complexe, ...). Elle est rangée en mémoire à partir d'une certaine adresse.
11 1.2.3 Opérateurs
12 Opérateurs arithmétiques
Nom Symbole Exemple
1.2.4 Expressions
addition ` a`b
soustraction ´ a´b
13 opposé ´ ´a
produit ˚ a˚b
division { a{b
division ^
a^ b
1. Algorithmique Numérique
14 Opérateurs relationnels
Nom Symbole Exemple Commentaires
identique ““ a ““ b vrai si a et b ont même valeur, faux sinon.
1.2. Pseudo-langage algorithmique
16 Opérateurs logiques
Nom Symbole Exemple Commentaires
17
négation „ „a vrai si a est faux (ou nul), faux sinon.
ou | a|b vrai si a ou b est vrai (non nul), faux sinon.
et & a&b vrai si a et b sont vrais (non nul), faux sinon.
18 Opérateur d'aectation
19
Nom Symbole Exemple Commentaires
aectation Ð aÐb On aecte à la variable a le contenu de b
20 L'expression à gauche du symbole Ð doit être une variable.
21 1.2.4 Expressions
22 Dénition 1.3 Une expression est un groupe d'opérandes (i.e. nombres, constantes, variables, ...) liées
23 par certains opérateurs pour former un terme algébrique qui représente une valeur (i.e. un élément de
24 donnée simple)
pb ˚ b ´ 4 ˚ a ˚ cq{p2 ˚ aq.
px ă 3.14q
Dans cette expression, x est une variable numérique et 3.14 est un nombre réel. Cette expression 3
prendra la valeur vrai (i.e. 1) si x est plus grand que 3.14. Sinon, elle prendra la valeur faux (i.e. 0) 4
1.2.5 Instructions 5
Dénition 1.4 Une instruction est un ordre ou un groupe d'ordres qui déclenche l'exécution de certaines 6
actions par l'ordinateur. Il y a deux types d'instructions : simple et structuré. 7
Les instructions simples sont essentiellement des ordres seuls et inconditionnels réalisant l'une des 8
tâches suivantes : 9
1.2.5 Instructions
Les instructions structurées sont essentiellement : 12
2. les instructions répétitives, permettant l'exécution répétée d'instructions simples, (i.e. boucles 14
pour, tant que) 15
1. Algorithmique Numérique
3. les instructions conditionnelles, lesquels ne sont exécutées que si une certaine condition est respectée 16
(i.e. si) 17
Les exemples qui suivent sont écrits dans un pseudo langage algorithmique mais sont facilement 18
1.2.Pseudo-langage algorithmique
transposable dans la plupart des langages de programmation. 19
Instructions simples 20
1: a Ð 3.14 ˚ R 22
Instructions composées 27
2: ache('gagne')
3: Sinon Si note ě 8 alors
4: ache('oral')
5: Sinon
1.2. Pseudo-langage algorithmique
6: ache('perdu')
7: Fin Si
4 1.2.6 Fonctions
5 Les fonctions permettent
6 • d'automatiser certaines tâches répétitives au sein d'un même programme,
9 • ...
10 Fonctions prédénies
11 Pour faciliter leur usage, tous les langages de programmation possèdent des fonctions prédénies. On
12 pourra donc supposer que dans notre langage algorithmique un grand nombre de fonctions soient prédénies
13 : par exemple, les fonctions mathématiques sin, cos, exp, abs, ¨ ¨ ¨ (pour ne citer quelles)
14 Syntaxe
15 On utilise la syntaxe suivante pour la dénition d'une fonction
16
La fonction se nomme NomFonction. Elle admet comme paramètres d'entrée (données) les m argu- 2
ments arge1 , . . . , argem et comme paramètres de sortie (résultats) les n arguments args1 , . . . , argsn . Ces 3
derniers doivent être déterminés dans le corps de la fonction (partie instructions). 4
Dans le cas ou la fonction n'admet qu'un seul paramètre de sortie, l'écriture se simplie : 5
6
Pour écrire une fonction propre, il faut tout d'abord déterminer exactement ce que devra faire cette 9
fonction. 10
Puis, il faut pouvoir répondre à quelques questions : 11
et, ensuite la commenter : expliquer son usage, type des paramètres, ....
1.3.0 Fonctions
14
1. Algorithmique Numérique
où nous supposons que a P R˚ et b P R. La solution de ce problème est donc
b
x“´ .
a
1.3.Pseudo-langage algorithmique
Les données de cette fonction sont a P R˚ et b P R. Elle doit retourner x “ ´ ab solution de ax ` b “ 0. 16
Remarque 1.3 Cette fonction est très simple, toutefois pour ne pas alourdir le code nous n'avons pas 17
vérié la validité des données fournies. 18
9 1.4 Méthodologie
10 1.4.1 Description du problème
11 ‚ Spécication d'un ensemble de données
12 Origine : énoncé,hypothèses, sources externes, ...
13 ‚ Spécication d'un ensemble de buts à atteindre
Origine : résultats, opérations à eectuer, ...
1.4.3 Réalisation d'un algorithme
14
18 ‚ Simplier le problème.
32 ‚ L'algorithme doit être eectif : toutes les opérations doivent pouvoir être simulées par un homme
33 en temps ni.
34 Pour écrire un algorithme détaillé, il faut tout d'abord savoir répondre a quelques questions :
35
Si l'on ne sait pas répondre à l'une de ces questions, l'écriture de l'algorithme est fortement comprise. 4
Exercice 1.4.1
Ecrire un algorithme permettant de calculer
n
ÿ
Spxq “ k sinp2kxq
k“1 6
Correction L'énoncé de cet exercice est imprécis. On choisi alors x P R et n P N pour rendre
possible le calcul. Le problème est donc de calculer
n
ÿ
k sinp2kxq.
Algorithmique Numérique
où n P N et S, fonction de R à valeurs réelles, sont les données! 7
1.
2:
1.4.Méthodologie
3: S Ð S ` k ˚ sinp2 ˚ k ˚ xq
4: Fin Pour
♦ 8
Exercice 1.4.2
Ecrire un algorithme permettant de calculer
k
ź
P pzq “ sinp2kz{nqk
n“1 10
Correction L'énoncé de cet exercice est imprécis. On choisi alors z P R et k P N pour rendre 11
possible le calcul. 12
k
Algorithme 1.8 Calcul de P
ź
“ sinp2kz{nqk
n“1
Données : z : nombre réel,
k : nombre entier.
Résultat : P : un réel.
1: P Ð1
2: Pour n Ð 1 à k faire
3: P Ð P ˚ sinp2 ˚ k ˚ z{nq^ k
4: Fin Pour
1 ♦
Exercice 1.4.3
{exo10}
Soit la série de Fourier
" *
4A 1 1 1
{SFT} xptq “ cos ωt ´ cos 3ωt ` cos 5ωt ´ cos 7ωt ` ¨ ¨ ¨ . (1.2)
π 3 5 7
1.4.3 Réalisation d'un algorithme
Notons xn ptq la série tronquée au n-ième terme. Ecrire la fonction SFT permettant de calculer
3 xn ptq.
n
4A ÿ 1
xn ptq “ p´1qk`1 cospp2k ´ 1qωtq
π k“1 2k ´ 1
Algorithme 1.9 En-tête de la fonction SFT retournant valeur de la série de Fourier en t tronquée au n
premiers termes de l'exercice 1.4.3.
Données : t : nombre réel,
1.
6 Maintenant nous pouvons écrire progressivement l'algorithme pour aboutir au nal à une version ne
7 contenant que des opérations élémentaires.
Algorithme 1.10 R0 Algorithme 1.10 R1
n
4A ÿ
n ˆ
p´1qk`1 2k´1
1
ˆ
˙ ÿ 1
1: xÐ 1: S Ð p´1qk`1 cospp2k ´ 1qωtq
π k“1 cospp2k ´ 1qωtq k“1
2k ´ 1
4A
2: x Ð S
π
8
9
n
ÿ 1 1: S Ð 0
1: SÐ p´1qk`1 cospp2k ´ 1qωtq
2k ´ 1 2: Pour k “ 1 à n faire
k“1
3: S Ð S ` p´1qk`1 2k´1
1
˚ cospp2k ´ 1qωtq
2: xn ptq Ð
4A
S 4:Fin Pour
π
4A
5: xn ptq Ð S
π
1
Algorithme 1.10 Fonction SFT retournant la valeur de la série de Fourier en t tronquée au n premiers
♦ 3
1. Algorithmique Numérique
Reprendre les trois exercices précédents en utilisant les boucles tant que. 4
de gros problèmes 6
Tous les exemples vus sont assez courts. Cependant, il peut arriver que l'on ait des programmes plus 7
longs à écrire (milliers de lignes, voir des dizaines de milliers de lignes). Dans l'industrie, il arrive que des 8
équipes produisent des codes de millions de lignes, dont certains mettent en jeux des vies humaines (con- 9
trôler un avion de ligne, une centrale nucléaire, ...). Le problème est évidemment d'écrire des programmes 10
sûrs. Or, un programme à 100% sûr, cela n'existe pas! Cependant, plus un programme est simple, moins 11
le risque d'erreur est grand : c'est sur cette remarque de bon sens que se basent les bonnes méthodes. 12
Ainsi : 13
14
Tout problème compliqué doit être découpé en sous-problèmes plus simples
l'occupation mémoire, ..
1
1.5.0 Réalisation d'un algorithme
1.5. Principes de bonne programmation pour attaquer de gros problèmes
1. Algorithmique Numérique
Chapitre 2
Méthodes Numériques
2.1.1 Dénition 3
Soient n P N˚ et pxi , yi qiPv0,nw avec pxi , yi q P R2 et les xi distincts deux à deux. Le polynôme 4
d'interpolation de Lagrange associé aux n ` 1 points pxi , yi qiPv0,nw , noté Pn , est donné par 5
n
(2.1) {Lagrange-eq0}
ÿ
Pn pxq “ yi Li ptq, @t P R
i“0
avec 6
n
t ´ xj
(2.2) {Lagrange-eq1}
ź
Li ptq “ , @i P v0, nw, @t P R.
x
j“0 i
´ xj
j‰i
Théorème 2.1
{LagrangePoly}
Le polynôme d'interpolation de Lagrange, Pn , associé aux n ` 1 points pxi , yi qiPv0,nw , est
l'unique polynôme de degré au plus n, vériant
Pn pxi q “ yi , @i P v0, nw. (2.3) 7
Exercice 2.1.1
Ecrire la fonction Lagrange permettant de calculer Pn (polynôme d'interpolation de Lagrange
associé aux n ` 1 points pxi , yi qiPv0,nw ) au point t P R. 10
Correction 11
14 Méthodes Numériques
1.5
y=P6(t)
7 Points (xi,yi)
0.5
0
y
−0.5
−1
−1.5
−1 0 1 2 3 4 5 6 7
t
figPoly1
Figure 2.1: Polynôme d'interpolation de Lagrange avec 7 points donnés)
2.1.1 Dénition
1
Y : vecteur/tableau de Rn`1 , Y piq “ yi´1 @i P v1, n ` 1w,
t : un réel.
2.1. Polynôme d'interpolation de Lagrange
n`1
1: y Ð 0
Cal
ul de y “ Pn ptq “
ÿ
1: Y piqLi´1 ptq 2: Pour i Ð 1 à n ` 1 faire
i“1
3: y Ð y ` Y piq ˚ Li´1 ptq
4: Fin Pour
2
3
5: Fin Pour
4
5
9: y Ð y ` Y piq ˚ L
10: Fin Pour
1
On obtient alors l'algorithme nal 2
2. Méthodes Numériques
8: Fin Si
9: Fin Pour
10: y Ð y ` Y piq ˚ L
11: Fin Pour
return y
♦ 3
Soit une fonction f : ra, bs ÝÑ R. On suppose que les yi sont donnés par 5
Théorème 2.2 12
1.5 1
y=f(t)=sin(t)
y=P (t)
6
7 Points (x ,y ) 0.8
i i
1
0.6
0.4
0.5 2
y=f(t)=1/(1+t )
y=P (t)
0.2 6
7 Points (x ,y )
i i
0 0
y
y
−0.2
−0.5
−0.4
−0.6
−1
−0.8
−1.5 −1
−1 0 1 2 3 4 5 6 7 −6 −4 −2 0 2 4 6
t t
figPoly6
Figure 2.2: Erreurs d'interpolation avec n “ 6
2.1.2 Erreur de l'interpolation
1 1
y=f(t)=sin(t)
y=P10(t)
0.8 11 Points (xi,yi) 0.8
0.6 0.6
0.4 0.4
0.2 0.2
0 0
y
−0.2 −0.2
−0.4 −0.4
2. Méthodes Numériques
−0.6 −0.6
y=f(t)=1/(1+t2)
y=P10(t)
−0.8 −0.8
11 Points (xi,yi)
−1 −1
−1 0 1 2 3 4 5 6 7 −6 −4 −2 0 2 4 6
t t
2.1. Polynôme d'interpolation de Lagrange
figPoly10
Figure 2.3: Erreurs d'interpolation avec n “ 10
1 1
y=f(t)=sin(t)
y=P18(t)
0.8 19 Points (xi,yi) 0.8
0.6 0.6
0.4 0.4
0.2 0.2
0 0
y
−0.2 −0.2
−0.4 −0.4
−0.6 −0.6
y=f(t)=1/(1+t2)
y=P18(t)
−0.8 −0.8
19 Points (xi,yi)
−1 −1
−1 0 1 2 3 4 5 6 7 −6 −4 −2 0 2 4 6
t t
figPoly18
Figure 2.4: Erreurs d'interpolation avec n “ 18
{LagrangeCauchy}
Soit f : ra, bs ÝÑ R, une fonction pn ` 1q-fois diérentiable et soit Pn ptq le polynôme d'interpolation
de degré n passant par pxi , f pxi qq, @i P v0, nw. Alors,
n
f pn`1q pξt q ź
@t P ra, bs, Dξt P pminpxi , tq, maxpxi , tqq, f ptq ´ Pn ptq “ pt ´ xi q (2.5)
pn ` 1q! i“0
1
Pour minimiser l'erreur commise lors de l'interpolation d'une fonction f par un polynôme d'interpolation 3
de Lagrange, on peut, pour un n donné, "jouer" sur le choix des points xi : 4
Trouver px̄i qni“0 , x̄i P ra, bs, distincts deux à deux, tels que 5
n n
|t ´ xi |, @pxi qni“0 , xi P ra, bs, distincts 2 à 2 (2.6) {eqpoly10}
ź ź
max |t ´ x̄i | ď max
tPra,bs tPra,bs
i“0 i“0
Théorème 2.3
Les points réalisant (2.6) sont les points de Chebyshev donnés par
2. Méthodes Numériques
7 Points (xi,yi)
1
0.6
0.4
0.5
y=f(t)=1/(1+t2)
y=P6(t)
0.2
7 Points (xi,yi)
0 0
y
−0.2
−0.5
−0.4
2.2.Dérivation numérique
−0.6
−1
−0.8
−1.5 −1
−1 0 1 2 3 4 5 6 7 −6 −4 −2 0 2 4 6
t t
figPolyCheb6
Figure 2.5: Erreurs d'interpolation avec n “ 6
On propose de chercher une approximation de la dérivée première de f en un point x̄ Psa, br. On rappelle 10
que la dérivée d'une fonction est dénie par 11
Dénition 2.4 Une fonction f dénie sur un intervalle ra, bs est dérivable en un point x̄ Psa, br si la limite 12
suivante existe et est nie 13
1
1
f px̄q “ limhÑ0 pf px̄ ` hq ´ f px̄q (2.8) {defderivee}
h
On peut donc approcher f 1 px̄q, pour h susament petit par h1 pf px̄ ` hq ´ f px̄q. On en déduit alors 14
les deux approximations, pour h ą 0, 15
0.4
0.5
0.2
0 0
y
y
−0.2
−0.5
−0.4
−0.6
−1
y=f(t)=1/(1+t2)
y=P10(t)
−0.8
11 Points (xi,yi)
−1.5 −1
−1 0 1 2 3 4 5 6 7 −6 −4 −2 0 2 4 6
t t
figPolyCheb10
Figure 2.6: Erreurs d'interpolation avec n “ 10
2.2.0 Points de Chebyshev
2. Méthodes Numériques
y=P18(t)
0.8 19 Points (xi,yi) 0.8
0.6 0.6
0.4 0.4
0.2 0.2
0 0
y
−0.2 −0.2
−0.4 −0.4
−0.6 −0.6
y=f(t)=1/(1+t2)
y=P18(t)
−0.8 −0.8
19 Points (xi,yi)
−1 −1
−1 0 1 2 3 4 5 6 7 −6 −4 −2 0 2 4 6
t t
figPolyCheb18
Figure 2.7: Erreurs d'interpolation avec n “ 18
Exercice 2.2.1
2. Méthodes Numériques
On note xi “ a ` ih, i P v0, nw, une discrétisation régulière de l'intervalle ra, bs. Soit une fonction
f : ra, bs ÝÑ R susament régulière. On suppose que les yi sont donnés par
2.2.Dérivation numérique
Pour obtenir une formule d'approximation d'ordre 2 de f 1 px̄q, on suppose f P C 3 psa, brq et on peut 9
alors développer les formules de Taylor de f px̄ ` hq et f px̄ ´ hq jusqu'au troisième ordre : Dξ` Psx̄, x̄ ` hr, 10
Dξ´ Psx̄ ´ h, x̄r,. 11
h2 p2q h3 p3q
f px̄ ` hq “ f px̄q ` hf 1 px̄q ` f px̄q ` f pξ` q (2.13)
2 3!
h2 h3 p3q
f px̄ ´ hq “ f px̄q ´ hf 1 px̄q ` f p2q px̄q ´ f pξ´ q (2.14)
2 3!
(2.15)
En soustrayant ces deux équations, on obtient alors
h3 p3q
f px̄ ` hq ´ f px̄ ´ hq “ 2hf 1 px̄q ` pf pξ` q ` f p3q pξ´ qq
3!
ce qui donne
h2 p3q f px̄ ` hq ´ f px̄ ´ hq
f 1 px̄q `
pf pξ` q ` f p3q pξ´ qq “ .
12 2h
Une approximation à l'ordre de 2 de f 1 px̄q est donnée par 12
f px̄ ` hq ´ f px̄ ´ hq
f 1 px̄q “ ` Oph2 q. (2.16)
2h
Cette approximation est la formule des diérences nies centrées. 13
Exercice 2.2.2
On note xi “ a ` ih, i P v0, nw, une discrétisation régulière de l'intervalle ra, bs. Soit une fonction
f : ra, bs ÝÑ R susament régulière. On suppose que les yi sont donnés par
2 Correction Pour les points xi , i P v1, n ´ 1w, on utilise la formule des diérences nies centrées.
3 Cette dernière n'est pas utilisable pour i “ 0 et i “ n. Il faut donc trouver d'autres formules d'ordre 2.
4 ‚ En x̄ “ x0 , on développe les formules de Taylor de f px̄ ` hq et f px̄ ` 2hq jusqu'au troisième ordre :
5 Dξ1 Psx̄, x̄ ` hr, Dξ1 Psx̄, x̄ ` 2hr,.
h2 p2q h3
f px̄ ` hq “ f px̄q ` hf 1 px̄q ` f px̄q ` f p3q pξ1 q
2 3!
2
p2hq p2hq3 p3q
f px̄ ` 2hq “ f px̄q ` 2hf 1 px̄q ` f p2q px̄q ` f pξ2 q
2 3!
6 ce qui donne
2.2.0 Points de Chebyshev
8 Une approximation à l'ordre 2 de f 1 px̄q utilisant les valeurs de f aux points tx̄, x̄ ` h, x̄ ` 2hu est
9 donnée par
f px̄ ` 2hq ´ 4f px̄ ` hq ` 3f px̄q
f 1 px̄q “ ´ ` Oph2 q. (2.20)
2.2. Dérivation numérique
2h
10 ‚ En x̄ “ xn , on développe les formules de Taylor de f px̄ ´ hq et f px̄ ´ 2hq jusqu'au troisième ordre
11 : Dξ1 Psx̄ ´ h, x̄r, Dξ2 Psx̄ ´ 2h, x̄r,.
h2 p2q h3
f px̄ ´ hq “ f px̄q ´ hf 1 px̄q ` f px̄q ´ f p3q pξ1 q
2 3!
2
p2hq p2hq3 p3q
f px̄ ´ 2hq “ f px̄q ´ 2hf 1 px̄q ` f p2q px̄q ´ f pξ2 q
2 3!
12 ce qui donne
h p2q h2 f px̄q ´ f px̄ ´ hq
{DerExo02:eq3} f 1 px̄q ´ f px̄q ` f p3q pξ1 q “ (2.21)
2 6 h
p2hq 2
f px̄q ´ f px ´¯ 2hq
{DerExo02:eq4} f 1 px̄q ´ hf p2q px̄q ` f p3q pξ2 q “ (2.22)
3! 2h
13 On eectue la combinaison linéaire 2(2.21)-(2.22) pour éliminer le terme en h1 et on obtient
h2 p3q p2hq2 p3q f px̄q ´ f px̄ ´ hq f px̄q ´ f px̄ ´ 2hq
f 1 px̄q ` 2 f pξ1 q ´ f pξ2 q “ 2 ´
6 3! h 2h
3f px̄q ´ 4f px̄ ´ hq ` f px̄ ´ 2hq
“
2h
Une approximation à l'ordre 2 de f 1 px̄q utilisant les valeurs de f aux points tx̄, x̄ ´ h, x̄ ´ 2hu est 1
donnée par 2
♦ 3
Il est possible aussi d'obtenir des approximations de dérivées d'ordre supérieure. Par exemple, pour 5
obtenir une approximation de f p2q px̄q, on suppose f P C 4 psa, brq et on peut alors développer les formules 6
de Taylor de f px̄ ` hq et f px̄ ´ hq jusqu'au quatrième ordre : Dξ` Psx̄, x̄ ` hr, Dξ´ Psx̄ ´ h, x̄r,. 7
h4 p4q
f px̄ ` hq ` f px̄ ´ hq “ 2f px̄q ` h2 f p2q px̄q ` pf pξ` q ` f p4q pξ´ qq
4!
2. Méthodes Numériques
. (2.27)
h2
Soit f une fonction dénie et intégrable sur un intervalle ra, bs donné. On propose de chercher une
2.3.Intégration numérique
approximation de
żb
I“ f pxqdx
a
f(a)
f(b)
a b
Dénition 2.6 On dit qu'une formule d'intégration (ou formule de quadrature) est d'ordre n ou a pour 11
degré d'exactitude n si elle est exacte pour les polynômes de degré inférieur ou égal à n. 12
f(t)
f(a)
f(b)
a b
IntFigRG
Figure 2.9: Formule du rectangle à gauche :
şb şb
a
f pxqdx « a
f paqdx
f pxqdx lorsque
şb
a
f est approché par le polynôme constant P pxq “ f pbq. On a alors
f(t)
2.3. Intégration numérique
f(a)
f(b)
a b
IntFigRD
Figure 2.10: Formule du rectangle à droite :
şb şb
a
f pxqdx « a
f pbqdx
żb
f pxqdx « pb ´ aqf pbq, formule du rectangle (à droite)
a
f(t)
f(c)
f(a)
f(b)
a c=(a+b)/2 b
IntFigPM
Figure 2.11: Formule du point milieu :
şb şb
a
f pxqdx « a
f ppa ` bq{2qdx
żb ˆ ˙
a`b
f pxqdx « pb ´ aqf , formule du point milieu
2
Soit pxi qiPv0,nw une discrétisation régulière de l'intervalle ra, bs: xi “ a ` ih avec h “ pb ´ aq{n. 4
Sur l'intervalle ra, bs, on approche f par son polynôme d'interpolation Pn aux points pxi , f pxi qqiPv0,nw .
Méthodes Numériques
D'après (2.1), on a
n
ÿ
Pn pxq “ Li pxqf pxi q
i“0
n
f pn`1q pξx q ź
@x P ra, bs, Dξx P ra, bs, f pxq ´ Pn pxq “ px ´ xi q (2.28)
pn ` 1q! i“0
2.3.Intégration numérique
2.
On a donc 6
żb żb żb n
f pn`1q pξx q ź
f pxqdx ´ Pn pxqdx “ px ´ xi qdx. (2.29)
a a a pn ` 1q! i“0
De plus 7
żb n żb
(2.30)
ÿ
Pn pxqdx “ f pxi q Li pxqdx.
a i“0 a
n A w0 w1 w2 w3 w4 nom ordre
1 1{2 1 1 trapèzes 1
2 1{3 1 4 1 Simpson 3
3 3{8 1 3 3 1 Simpson 3
4 2{45 7 32 12 32 7 Villarceau 5
On a alors
$
& α0 “ ´α1 ´ α2 ` 2h,
ap´α1 ´ α2 ` 2hq ` pa ` hqα1 ` pa ` 2hqα2 “ 2ah ` 2h2 ,
a p´α1 ´ α2 ` 2hq ` pa ` hq2 α1 ` pa ` 2hq2 α2 “ 13 p6a2 h ` 12ah2 ` 8h3 q.
% 2
2.3.3 Méthodes composites
c'est à dire $
& α0 “ ´α1 ´ α2 ` 2h,
α1 ` 2α2 “ 2h,
2ahpα1 ` 2α2 q ` h2 pα1 ` 4α2 q “ 4ah2 ` 8h3 {3,
%
α1 ` 4α2 “ 8h{3,
%
Exercice 2.3.1
Soit f une fonction dénie sur l'intervalle ra, bs. Ecrire la fonction QuadPM permettant de calculer
une approximation de l'intégrale de f sur ra, bs par la méthode composite des points milieux. 1
pour obtenir 3
żb n
f pxk´1 q ` f pxk q
(2.33)
ÿ
f pxqdx “ h p q ` Oph2 q.
a k“1
2
Exercice 2.3.2
Soit f une fonction dénie sur l'intervalle ra, bs. Ecrire la fonction QuadTrapeze permettant de
calculer une approximation de l'intégrale de f sur ra, bs par la méthode composite des trapèzes. 5
2. Méthodes Numériques
ż
h
f pxqdx « pf pxk´1 q ` 4f pmk q ` f pxk qq
Ik 6
pour obtenir 7
żb n
h ÿ
f pxqdx “ pf pxk´1 q ` 4f pmk q ` f pxk qq ` Oph4 q. (2.34)
a 6 k“1
2.3.Intégration numérique
C'est une formule d'ordre 4 par rapport à h. 8
Exercice 2.3.3
Soit f une fonction dénie sur l'intervalle ra, bs. Ecrire la fonction QuadSimpson permettant de
calculer une approximation de l'intégrale de f sur ra, bs par la méthode composite de Simpson. 9
où C est indépendant de h.
L'erreur ESimpson de la méthode s'écrit donc
−4
10
−6
10
−8
Erreur 10
−10
10
−12
10 QuadPM
QuadTrapeze
QuadSimpson
−14 O(h2)
10
O(h4)
−16
10
−3 −2 −1
10 10 10
h
IntegrationOrdre
Figure 2.12: Ordre des méthodes composites pour le calcul de
şπ
0
sinpxqdx
2.3.7 Intégrales multiples
5 ‚ méthode de Gauss-Laguerre,
6 ‚ méthode de Gauss-Hermitte,
7 ‚ méthode de Gauss-Lobatto,
8 ‚ méthode de Romberg...
2.3. Intégration numérique
3. Relation de Chasles :
żbżd n ÿ
ÿ m ż xk ż yl
f px, yqdydx “ f px, yqdydx.
a c k“1 l“1 xk´1 yl´1
Dans cette partie, on suppose le lecteur avoir quelques connaissances en algèbre linéaire. De plus, du 6
point de vue algorithmique, on suppose l'existence des types matrices et vecteurs. 7
2.4.1 Vecteurs 8
2.5.0 Vecteurs
Exercice 2.4.1
2. Méthodes Numériques
Soient x et y deux vecteurs de Rn et α P R. Ecrire la fonction VecAXPY permettant de calculer
x ` y.
z “ αx 9
2.5.Algèbre linéaire
On donne ici, à titre d'exemple, les ranements succesifs pour obtenir l'algorithme nal 10
11
On abouti alors à 12
♦ 13
1 Remarque 2.5 1. On a fait le choix de ne pas mettre comme donnée explicite l'entier n. En eet, on
2 peut considérer que l'entier n est donné implicitement par les vecteurs x et y .
3 2. Aucun test sur les dimensions des vecteurs et le type des données n'est réalisé an de ne pas
4 alourdir l'algorithme : on suppose donc que cette fonction sera correctement utilisée, c'est à dire
5 que les hypothèses sur les données seront bien vériées.
Exercice 2.5.1
Soient x et y deux vecteurs de Rn .
1. Ecrire la fonction VecDot permettant de calculer le produit scalaire entre les vecteurs x et
y.
7 Correction
2. Méthodes Numériques
1. On a, @xx P Rn , @yy P Rn ,
n
ÿ
x, y y “
xx xi yi .
i“1
2.5. Algèbre linéaire
Algorithme 2.3 Fonction VecDot permettant de calculer le produit scalaire des vecteurs x et y où
x P Rn et y P Rn .
Données :
x :
vecteur de Rn ,
y :
vecteur de Rn .
Résultat : s : le réel tel que s “ xxx, y y .
1: Fonction s Ð VecDot( x, y )
2: sÐ0
3: Pour i Ð 1 à n faire
4: s Ð s ` xpiq ˚ ypiq
5: Fin Pour
6: Fin Fonction
2. On a, @xx P Rn ,
n
ÿ
x}1 “
}x |xi |.
i“1
3. On a g
f n
fÿ
x, x y1{2 .
x}2 “ e |xi |2 “ xx
}x
i“1
2.5.1 Matrices
1:
2: sÐ0
3: Pour i Ð 1 à n faire
4: s Ð s ` xpiq ˚ xpiq
Fin Pour
2. Méthodes Numériques
5:
6: s Ðsqrtpsq
7: Fin Fonction
2.5.Algèbre linéaire
Algorithme 2.6 Fonction VecNorm2 permettant de retourner x}2 avec x P Rn (utilise la fonction
}x
VecDot).
Données :
x : vecteur de Rn .
Résultat :
s : le réel tel que s “ }xx}2 .
1: Fonction s Ð VecNorm2( x )
2: s ÐsqrtpVecDotpx
x, x qq
3: Fin Fonction
♦ 2
2.5.1 Matrices 3
Exercice 2.5.2
Soient X et Y deux matrices de Mm,n pRq et α P R Ecrire la fonction MatAXPY permettant de
retourner Z “ αX ` Y. 4
Algorithme 2.7 Fonction MatAXPY permettant de retourner Z “ αX ` Y avec X et Y dans Mm,n pRq,
et α P R
Données :
α : un réel,
X : matrice de Mm,n pRq,
Y : matrice de Mm,n pRq.
Résultat :
Z : matrice de Mm,n pRq tel que Z “ αX ` Y.
1: Fonction Z Ð MatAXPY( α, X, Y )
2: Pour i Ð 1 à m faire
3: Pour j Ð 1 à n faire
4: Zpi, jq Ð α ˚ Xpi, jq ` Y pi, jq
5: Fin Pour
6: Fin Pour
7: Fin Fonction
1 ♦
Exercice 2.5.3
Ecrire la fonction MatTranspose permettant de retourner la transposé d'une matrice.
2.5.1 Matrices
3 ♦
Exercice 2.5.4
4 Ecrire la fonction MatMult permettant de retourner le produit d'une matrice par un vecteur.
Correction On rappelle que le produit d'une matrice A P Mm,n pRq par un vecteur x P Rn est un
vecteur de R . On le note y et on a
m
n
ÿ
yi “ Ai,j xj , @i P v1, mw,
j“1
On écrit en détail les ranements successifs permettant d'aboutir à l'algorithme nal de telle manière 1
que le passage entre deux ranements successifs soit le plus simple possible. 2
7: Fin Pour
4
On obtient alors 5
2.5.1 Matrices
A : matrice de Mm,n pRq,
x : vecteur de Rn .
Résultat :
2. Méthodes Numériques
y : vecteur de Rm tel que y “ Axx.
1: Fonction x Ð MatMult( A, x )
2: Pour i Ð 1 à m faire
3: SÐ0
4: Pour j Ð 1 à n faire
5: S Ð S ` Api, jq ˚ xpjq
2.5.Algèbre linéaire
6: Fin Pour
7: ypiq Ð S
8: Fin Pour
9: Fin Fonction
♦ 6
Exercice 2.5.5
Ecrire la fonction MatMatMult permettant de retourner le produit de deux matrices. 7
Correction Soient X P Mm,n pRq et Y P Mn,p pRq. On note Z P Mm,p pRq la matrice produit i.e. 8
Z “ XY. 9
On écrit en détail les ranements successifs permettant d'aboutir à l'algorithme nal de telle manière 10
que le passage entre deux ranements successifs soit le plus simple possible. 11
5: Fin Pour
2
8: Fin Pour
9: Fin Pour
3
4 On obtient alors
2. Méthodes Numériques
Algorithme 2.10 Fonction MatMatMult permettant de retourner la matrice Z P Mm,p pRq tel que
Z “ XY
avec X P Mm,n pRq et Y P Mn,p pRq.
Données :
X : matrice de Mm,n pRq,
2.5. Algèbre linéaire
5 ♦
6 Exercice 2.5.6
Ecrire la fonction MatNorm1 permettant de retourner la norme d'une matrice A P Mm,n pRq
˜ ¸
m
ÿ
}A}1 “ max |Ai,j | .
jPv1,nw
i“1
1
Correction Soit A P Mm,n pRq. On écrit en détail les ranements successifs permettant d'aboutir 2
à l'algorithme nal de telle manière que le passage entre deux ranements successifs soit le plus simple 3
possible. 4
1: Cal
ul de x “ }A}1 . 1: x Ð 0
2: Pour j Ð 1˜à n faire
¸
m
ÿ
3: x Ð max x, |Ai,j |
i“1
4: Fin Pour
2.5.1 Matrices
5
2. Méthodes Numériques
1: x Ð 0 1: x Ð 0
2: Pour j Ð 1 à n faire 2: Pour j Ð 1 à n faire
˜ ¸
m
ÿ m
3: x Ð max x, |Ai,j | . ÿ
i“1
3: SÐ |Ai,j |
i“1
4: Fin Pour
4: Si xăS alors
2.5.Algèbre linéaire
5: xÐS
6: Fin Si
7: Fin Pour
6
On obtient alors 8
Algorithme 2.11 Fonction MatNorm1 permettant de retourner la norme 1 de la matrice A P Mm,n pRq
donnée par : ˜ ¸
m
ÿ
}A}1 “ max |Ai,j | .
jPv1,nw
i“1
Données :
A : matrice de Mm,n pRq.
Résultat :
x : un réel tel que x “ }A}1 .
1: Fonction x Ð MatNorm1( A )
2: M Ð0
3: Pour j Ð 1 à n faire
4: SÐ0
5: Pour i Ð 1 à m faire
6: S Ð S ` abspApi, jqq
7: Fin Pour
8: Si M ă S alors
9: M ÐS
10: Fin Si
11: Fin Pour
12: xÐM
13: Fin Fonction
1 ♦
2.5.1 Matrices
2. Méthodes Numériques
2.5. Algèbre linéaire