TP n 16 : Méthodes numériques d’intégration o

publicité
Lycée Victor Hugo
MPSI-PCSI 2016-2017
TP no 16 : Méthodes numériques d’intégration
Conseils Importants :
— De nombreuses questions du TP se traitent par écrit. Consignez bien
vos conclusions.
— Lisez attentivement l’introduction avant de passer aux questions.
I
Méthode des rectangles / Méthode des trapèzes
On souhaite effectuer une approximation de l’intégrale d’une fonction f sur un segment
[a, b].
Pour cela, on approche la partie du plan située entre Cf et l’axe des abscisses par des
figures géométriques simples (dont l’aire sera alors concrètement calculable).
Commençons par subdiviser de façon régulière le segment [a, b] en n sous-segments
comme l’indique le schéma suivant :
où l’on a :
a0 = a , an = b et pour tout k ∈ [|0, n|] : ak = a0 + k( b−a
)
n
Méthode des rectangles à gauche
1
Lycée Victor Hugo
MPSI-PCSI 2016-2017
Sur chaque segment [ak , ak+1 ] , on "assimile" l’aire algébrique sous Cf à celle du rectangle k de hauteur f (ak ) qui vaut donc : f (ak ).( b−a
)
n
Finalement, la somme de toutes les aires des parties hachurées, notée Rn (f ), permet
d’approcher l’aire algébrique située sous Cf sur [a, b].
i.e.
une approximation de
Z b
a
f (x)dx est donnée par Rn (f ) =
X
b − a n−1
n
f (ak )
k=0
et
Méthode des trapèzes
Sur chaque segment [ak , ak+1 ] , on "assimile" l’aire algébrique sous Cf à celle du trapèze
k de bases f (ak ) et f (ak+1 ) qui vaut donc : (f (ak ) + f (ak+1 )).( b−a
)
2n
Enfin, la somme de toutes les aires des parties hachurées, notée Tn (f ), permet d’approcher l’aire algébrique située sous Cf sur [a, b].
i.e.
une approximation de
Z b
a
f (x)dx est donnée par Tn (f ) =
2
X
b − a n−1
2n
k=0
f (ak ) + f (ak+1 )
Lycée Victor Hugo
II
MPSI-PCSI 2016-2017
Objectif du TP
L’objet de ce TP est de programmer le calcul de valeurs approchées d’intégrales par
la méthode des rectangles ( à gauche) et par la méthode des trapèzes.
Ces méthodes seront traduites en Python par deux fonctions int_rect et int_trap
dont l’en-tête sera
def int_rect (f , a , b , n ) :
... (code de la méthode des rectangles)
def int_trap (f , a , b , n ) :
... (code de la méthode des trapèzes)
Leurs quatre arguments auront la signification suivante :
— f représente la fonction que l’on veut intégrer,
— a est la borne gauche de l’intervalle d’intégration (de type float),
— b est la borne droite de l’intervalle d’intégration (de type float),
— n est le nombre de pas de la méthode, c’est-à-dire le nombre de sous-segments du
segment [a, b] utilisés lors du calcul (de type int).
Pour "représenter" la fonction f à intégrer, plusieurs approches sont envisageables. Le
langage Python autorise qu’un argument d’une fonction (ici int_rect ou int_trap) soit
lui-même une fonction. Nous considérerons donc que l’argument f est une fonction.
Exemple
Si on veut évaluer
Z 1
x2 dx par la méthode des rectangles à 100 pas, on com-
0
mencera par définir la fonction carré qui modélise x 7→ x2 :
def carr é ( x ) :
y = x **2
return y
Notons que carré est bien une fonction et que l’on peut l’appliquer en une valeur :
In : carr é
Out : < function __main__ . carr é >
In : carr é ( -12)
Out : 144
On pourra ensuite appeler la fonction de calcul approché d’intégrale int_rect en lui
passant la fonction carré en argument :
In : int_rect ( carr é , 0 , 1 , 100)
Out : 0.32 8 3 50 0 0 00 0 0 00 0 0 3
On obtiendra ainsi une valeur approchée de
Z 1
0
3
x2 dx.
Lycée Victor Hugo
III
MPSI-PCSI 2016-2017
Programmation des deux méthodes et premier
exemple
Dans un circuit RC série, de résistance R=20 Ohm, lors de la décharge d’un condensateur, l’intensité du courant vérifie : i(t)=0.5*exp(-2t). On cherche à déterminer l’énergie
dissipée par effet Joule dans le résistor entre les dates 0 et 1 seconde.
On rappelle que la puissance dissipée par effet Joule dans un résistor s’écrit P (t) = R.i2 (t)
Question 1 H
Quelle est l’expression de la puissance dissipée P(t) en fonction du temps ?
Script 2 H
On commencera par définir la fonction elec qui modélise t 7→ 5.exp(−4t) .
Programmez la fonction int_rect en s’inspirant de l’exemple vu précédemment avec
la fonction carré.
Z
1
5.exp(−4t) dt
Pour l’évaluation de
0
(dont la valeur exacte est 1.2271054513890822), on obtient par exemple :
In : int_rect ( elec , 0 , 1 , 100)
Out : 1. 25 18 11 17 011 41 73 6
(vos résultats pourront différer légèrement au niveau des derniers chiffres)
Script 3 H
Programmez maintenant la fonction int_trap.
Exemple d’utilisation :
In : int_trap ( elec , 0 , 1 , 100)
Out : 1 .22726 906108 6391
Z 1
Toujours sur l’exemple de
(5.exp(−4t)) dt , on fait varier le nombre de pas n des
0
deux méthodes numériques d’intégration.
Question 4 H
Qu’observe-t-on de commun aux deux méthodes à mesure que l’on fait augmenter ce
nombre ? Comment l’expliquer ?
Question 5 H
Qu’est-ce qui distingue le comportement des deux méthodes ? Comment l’expliquer ?
IV
Une deuxième intégrale : cinématique
En cinématique, lorsqu’un mouvement rectiligne est à accélération a constante, la
vitesse vérifie : v(t)=a.t+v0
Sachant que a=0.5 m/s2 et v0 = 1m/s , nous cherchons à déterminer la distance parcourue
par le point matériel entre les dates 1s et 3s.
Nous allons donc devoir calculer des valeurs approchées de l’intégrale
J=
Z 3
1
x
+ 1 dx.
2
4
Lycée Victor Hugo
MPSI-PCSI 2016-2017
Question 6 H
Déterminez la valeur exacte de cette intégrale représentant la distance parcourue (de
préférence à l’aide d’une représentation graphique et d’un calcul d’aire direct, sinon à l’aide
d’une primitive).
Script 7 H
Définissez une fonction Python méca qui représente informatiquement la fonction x 7→
x
2
+ 1.
Question 8 H
Sur cette intégrale, la méthode des trapèzes doit donner en théorie la valeur exacte de
J : justifier cette affirmation.
Vérifier les trois exemples suivants :
In []: int_trap ( m é ca , 1 , 3 , 100)
Out []: 4.0
In []: int_trap ( m é ca , 1 , 3 , 1000)
Out []: 3. 99 99 99 99 999 99 69 4
In []: int_trap ( m é ca , 1 , 3 , 10000)
Out []: 3 .99999 99999 99894
Ils sont très surprenants : pourquoi ? Proposez une explication précise.
Question 9 H
Déterminez des valeurs approchées de J à l’aide de la méthode des rectangles . Observez
ce qui se passe quand on fait augmenter le nombre de pas. Commentez.
V
Une troisième intégrale : le parachutiste
Un parachutiste à bord d’un hélicoptère en vol stationnaire à l’altitude 4500 mètres,
saute sans vitesse initiale par rapport au sol. La première phase sans parachute dure 10
secondes.
Question 10 H
Quelle est la distance parcourue lors de cette première phase supposée sans frottements
et quelle est la vitesse à la fin de cette première phase ? On prendra g=10 m/s2 .
Lors de la seconde phase où le parachute est ouvert des frottements sont modélisés
par une force f=-kv
Question 11 H
Sachant que l’on remet le chronomètre à zéro quand le parachute s’ouvre, déterminez
si l’expression v(t) = 80.exp(−t/2) + 20, de la vitesse dans cette seconde phase est
correcte. On donne m = 70kg et k = 35N.s.m−1 ? Justifiez.
Nous cherchons à présent à déterminer la distance parcourue par le parachutiste pendant les 60 premières secondes de la seconde phase.
5
Lycée Victor Hugo
MPSI-PCSI 2016-2017
Nous allons donc devoir calculer des valeurs approchées de l’intégrale
J=
Z 60 80.exp(−t/2) + 20 dt.
0
Script 12 H
Définir la fonction parachute qui modélise t 7→ 80.exp(−t/2) + 20 .
Déterminez la valeur approchée de cette intégrale, représentant la distance parcourue
pendant ces 60 secondes, par la méthode des trapèzes et des rectangles. Comparez le
résultat donné par les deux méthodes pour un nombre de pas assez grand.
Question 13 H
Combien de temps dure la seconde phase avec le parachute ouvert ?
6
Téléchargement