IUT Littoral 2019 - 2020
Info 2A Ana. Num. – C++
TP 1 - Introduction
Pour repr´ esenter les nombres r´ eels nous allons utiliser le type double du C++. Le type double ´ etant habituellement cod´ e sur 64 bits, nous n’aurons acc` es qu’` a 2
64nom- bres distincts. Nous ne manipulerons donc pas directement les nombres r´ eels mais des approximations. Le type double permet de repr´ esenter les nombres entre −1.7 × 10
−308et 1.7 × 10
308.
1. Fonction r´ eelle
Une fonction math´ ematique f : R → R sera cod´ ee en C++ par double f(double).
Exercice 1. On rappel que pour tout x ∈ R la fonction exponentielle est donn´ ee par : exp(x) =
+∞
X
k=0
x
kk! .
a. Ecrire une fonction double exp v1(double x,size t n) qui retourne la valeur approch´ ee
exp
n(x) =
n
X
k=0
x
kk!
de exp(x).
b. Tester la fonction exp v1 pour x = 1 et n = 10, 15, 20 et 25.
c. Ecrire une fonction double exp v2(double x,double p) qui retourne une valeur approch´ ee exp
n(x) de exp(x) v´ erifiant
| exp
n+1(x) − exp
n(x)| = |x|
n+1(n + 1)! 6 p Exercice 2. Reprendre l’exercice 1 pour
arctan(x) =
+∞
X
k=0
(−1)
kx
2k+12k + 1 .
Tester les fonctions pour x = −0.7 (Cette m´ ethode de calcul de arctan(x) fonctionne bien que pour des petites valeurs de x.)
Exercice 3. Soit a > 0 un nombre r´ eel. On consid` ere la suite (u
n) donn´ ee par u
0= 1 et u
n+1= 1
2
u
n+ a u
npour n > 0.
On suppose que la suite (u
n) converge.
a. Expliquer rapidement pourquoi (u
n) converge vers √ a.
b. Coder une fonction double sqrt(double a,size t n) qui retourne u
npour n’importe quel nombre a > 0.
c. Tester votre fonction pour diff´ erentes valeurs de a et de n. Par exemple a = 2 et
n = 4, 5, 6.
2
2. Quadrature
Soit I = [a, b] un intervalle de R et f une fonction continue de I dans R . Nous souhaitons obtenir une valeur approch´ ee de
A = Z
ba
f (t)dt.
Exercice 4. Fixons un entier n > 1. Nous souhaitons d´ ecouper l’intervalle I en n sous- intervalles I
1, . . . , I
nde mˆ eme longueur.
a. Quelle est la longueur de l’intervalle I ? Et celle des intervalles I
k? Pour k = 1, . . . , n, on pose I
k= [x
k, x
k+1].
b. D´ eterminer les valeurs de x
kpour tout k ∈ {1, . . . , n + 1}.
c. Justifier l’´ egalit´ e
Z
ba
f (t)dt =
n
X
k=1
Z
xk+1xk
f(t)dt.
Afin d’obtenir une valeur approch´ ee de A nous consid´ erons diff´ erentes m´ ethodes don- nant des valeurs approch´ ees des int´ egrales
A
k= Z
xk+1xk
f(t)dt
pour tout k ∈ {1, . . . , n}.
Exercice 5 (M´ ethode des rectangles). Fixons un entier k ∈ {1, . . . , n}. La m´ ethode des rectangles consiste ` a approcher f sur l’intervalle I
kpar la fonction constante
f
k(x) = f(x
k) + f (x
k+1)
2 .
a. Faire un dessin
b. Quelle est la valeur approch´ ee de A
kdonn´ ee par cette m´ ethode ?
c. Ecrire (en pseudo langage) un algorithme permettant de calculer la valeur ap- proch´ ee de A en utilisant la m´ ethode des rectangles.
Exercice 6 (M´ ethode de Simpson). Fixons un entier k ∈ {1, . . . , n}. La m´ ethode de Simpson consiste ` a approcher f sur l’intervalle I
kpar une fonction parabolique f
kpassant par les points (x
k, f (x
k)) et (m
k, f(m
k)) et (x
k+1, f (x
k+1)) o` u m
k=
xk+x2k+1est le milieu de l’intervalle I
k.
a. Faire un dessin
On note f
k(x) = a
k× x
2+ b
k×x + c
kl’approximation de f ainsi obtenue sur l’intervalle I
k. b. D´ eterminer a
k, b
ket c
ken fonction de f, a
k, b
ket c
k.
c. Quelle est la valeur approch´ ee de A
kdonn´ ee par cette m´ ethode ?
d. Ecrire (en pseudo langage) un algorithme permettant de calculer la valeur ap- proch´ ee de A en utilisant la m´ ethode des trap` ezes.
Exercice 7. Coder les deux m´ ethodes d’approximation de A obtenues aux exercices
pr´ ec´ edents en C++.
3
3. Calcul approch´ e de π .
Le but de cette section est de vous faire d´ ecouvrir diff´ erentes m´ ethodes retournant une valeur approch´ ee de π.
Exercice 8. Supposons qu’on tire al´ eatoirement des fl´ echettes sur la cible suivante :
On suppose que le carr´ e est de cˆ ot´ e 1.
a. Quel est la surface du carr´ e ? Du quart de disque ?
b. Quel est la propabilit´ e qu’une fl´ echette touchant la cible soit dans la zone grise ? c. En d´ eduire une m´ ethode probabiliste donnant une valeur approch´ ee de π.
d. Ecrire une fonction double monte carlo(size t n) qui effectue n tires de fl´ echettes al´ eatoirement sur la cible et retourne la valeur approch´ ee de π ainsi obtenue.
Exercice 9. On consid` ere la fonction f de [0, 1] dans R donn´ ee par f (x) = √
1 − x
2et un entier n non nul quelconque. Conne ` a la section 2, on d´ ecoupe l’intervalle [0, 1] en n sous-intervalles I
k= [α
k, α
k+1] pour k = 1, ..., n. On suppose que les intervalles I
ksont de longueur
1net qu’on a 0 = x
1< x
2< ... < x
n< x
n+1= 1. La courbe de la fonction est le quart de cercle de l’exercice pr´ ec´ edent. On a donc
π 4 =
Z
10
f(t)dt =
n
X
k=1
Z
xk+1xk