• Aucun résultat trouvé

TP-Python-3

N/A
N/A
Protected

Academic year: 2021

Partager "TP-Python-3"

Copied!
4
0
0

Texte intégral

(1)

TD d’informatique n°3 R. DUPERRAY Lycée F. BUISSON PTSI

LES FONCTIONS

Note: Les questions des exercices ne constituent que la trame principale de ce que vous devez faire pour vous guider, rien n’interdit bien sûr que vous alliez plus loin, que vous testiez d’autres choses, bref que vous expérimentiez…

EXERCICE 1 : APPROXIMATION D’UNE FONTION PAR UNE SOMME DE SINUS

On considère la fonction constante par morceau suivante : f t

( )

= 1 pour 0< t < T 2 0 pour t = T 2 −1 pour T 2 < t < T ⎧ ⎨ ⎪ ⎩ ⎪

a) Tracer cette fonction sur un papier.

Il est possible d’approximer f t

( )

par la somme suivante : S t;n

( )

= 4 π 1 2i−1

(

)

sin 2 2

(

iT−1

)

πt ⎛ ⎝ ⎜ ⎜ ⎞ ⎠ ⎟ ⎟ i=1 n

On peut montrer que S t

( )

;n →f t

( )

quand n→ ∞ .

b

) Ecrire sous Python une fonction S

(

t,n,T

)

qui retourne la valeur de

S t

( )

;n

.

c) Ecrire sous Python une fonction

f t,T

( )

qui retourne la valeur de

f t

( )

.

d) Faire afficher des listes qui montrent comment l’erreur

f t

( )

−S t

( )

;n

évolue avec

n

et

t

pour les cas

n = 1;3;5;10;30;100

et

t =αT

avec

T = 2π

et

α = 0,01; 0,25; 0,49

.

e) Commenter comment la qualité de l’approximation dépends de

α

et

n

.

EXERCICE 2 : CALCULER LA VITESSE ET L’ACCELERATION A PARTIR DE LA POSITION POUR

UNE TRAJECTOIRE EN 2D

On considère un objet qui se déplace dans le plan xy tel que à l’instant t l’objet se trouve au point

x t

( )

,y t

( )

(

)

. Le vecteur vitesse à l’instant t peut être approximé par : v t

( )

≈ x t

(

+ Δt

)

− x t − Δt

(

)

2Δt , y t

(

+ Δt

)

− y t − Δt

(

)

2Δt ⎛ ⎝ ⎜ ⎜ ⎞ ⎠ ⎟ ⎟. Le vecteur accélération dans le plan à l’instant t peut être approximé par :

a t

( )

≈ x t

(

+ Δt

)

− 2x t

( )

+ x t − Δt

(

)

Δt2 , y t

(

+ Δt

)

− 2y t

( )

+ y t − Δt

(

)

Δt2 ⎛ ⎝ ⎜ ⎜ ⎞ ⎠ ⎟ ⎟. Ici, Δt est un petit intervalle de temps.

(2)

b) Ecrire une fonction Cinematique

(

x , y ,t,dt

)

(ici dt correspond à Δt

)

pour calculer la vitesse et l’accélération d’un objet à partir des relations précédentes. La fonction doit retourner des listes contenant la position, la vitesse et l’accélération pour chaque instant t .

c) De nombreuses courbes fascinantes sont générées par un point sur une roue en mouvement. Le

mouvement de la valve d’une roue de vélo est nommé une cycloïde et est décrit par la courbe paramétrée suivante : x t

( )

=c ×

(

t −sin t

( )

)

y t

( )

=c × 1 − cos

(

( )

t

)

⎫ ⎬ ⎪ ⎭⎪ pour t ≥ 0 et c =cste

La figure 12.11 représente le graphe d’une cycloïde pour c = 1 et 0≤t ≤ 3π. Lorsque la roue fait une révolution dans l’intervalle 0≤t ≤ 2π, on obtient une arche de la cycloïde.

d) Utiliser votre fonction Cinematique dans un programme avec la courbe paramétrique de la cycloïde

pour c = 1. Tester le programme en calculant, pour t = 1 par exemple, la vitesse et l’accélération avec

Δt = 10−5. Vérifier et comparer vos résultats avec un calcul à la main.

e) Vérifier que pour t = 2πn avec n = 0;1; 2 ...la vitesse du point s’annule. Que vaut son accélération ?

EXERCICE 3 : DETERMINATION NUMERIQUE DU ZERO D’UNE FONCTION REELLE

Il est très rare de pouvoir déterminer le zéro d’une fonction réelle (d’une variable réelle) d’une façon analytique (ou du moins de façon relativement simple). Il est donc nécessaire d’opter pour une résolution numérique. Une procédure simple et très utilisée est la méthode de Newton-Raphson qui est illustrée sur la figure ci-dessous qui montre le graphe d’une fonction f x

( )

.

(3)

La solution de l’équation f x

( )

= 0 est notée x. L’idée derrière la méthode de Newton-Raphson est

de « deviner » une valeur initiale de x notée x0 « suffisamment proche » de x∗ et de dessiner la tangente à la courbe f x

( )

en x0, comme illustré sur la figure. Très souvent, le prolongement de la tangente coupe l’axe horizontal en une valeur plus proche de x∗ que de x0. On note x1 cette valeur de x et on répète la procédure en utilisant x1 pour produire une nouvelle valeur x2 qui sera encore plus proche de x. En répétant cette procédure, on fait ce que l’on appelle une itération, on peut

approcher, avec le degré de précision souhaité, la valeur de x∗.

En utilisant la figure, on peut obtenir une relation commode pour les itérations de x. La pente de

f x

( )

en xn, f' x

n

( )

, est donnée par :

f' x n

( )

=f x

( )

n − 0

xn − xn+1 ce qui donne en résolvant pour xn+1 :

xn+1 =xn − f x

( )

n

f' x n

( )

qui est la relation d’itération pour la méthode de Newton-Raphson.

Comme application, nous pouvons considérer l’équation de réaction suivante : 2NOCl( ) ! 2NOg ( ) + Clg 2( ) g

dont la constante d’équilibre à une température donnée vaut 2,18. Si l’on introduit 1 bar de NOCl( ) g dans une enceinte, on obtient à l’équilibre, PNOCl = 1,00 − 2x , PNOl = 2x et PCl =x. Ces pressions doivent satisfaire l’expression de la constante d’équilibre :

PNO2P Cl2 PNOCl2 = 2x

( )

2 x (1,00− 2x

(

)

2 = 2,18

qui peut s’écrire (vérifiez le) : f x

( )

= 4x3− 8,72x2+ 8,72x− 2,18 = 0.

A cause de la stoechiométrie de l’équation de réaction, la valeur de x recherchée doit se trouver entre 0 et 0,5. Ainsi on peut choisir 0,250 comme notre valeur « devinée » initiale x0.

Ecrire une fonction Newton-Raphson

(

x0,n

)

qui aura pour paramètre d’entrée la valeur « devinée » initiale x0 et le nombre d’itérations de la procédure n. Cette fonction devra vous retourner la valeur des différents xn.

La fonction Newton-Raphson devra elle-même faire appel à deux fonctions : f-x

( )

xn retournant la valeur de f x

( )

n et f-derive-x

( )

xn retournant la valeur de f'

( )

x .

(4)

RAPPELS SUR LES FONCTIONS SOUS PYTHON

Un fonction est une « boite noire » qui nécessite des paramètres (ou arguments) d’entrée de type quelconque (string, list, float, integer etc….) et qui vous retourne en sortie une ou plusieurs valeurs de type quelconque, ci-dessous l’exemple de la fonction arrondie (round) à deux chiffres après la virgule.

Références

Documents relatifs

Cette méthode consiste à calculer la somme des carrés des écarts entre les points du nuage et les points d’une droite estimée et à choisir comme meilleure droite celle pour

Pour le modèle de Reddy et al., suivant les courbes de distribution des valeurs mesurées et celles estimées, nous constatons que ce modèle surestime l’irradiation globale le long

• Dans le langage Python, l'indentation (décalage vers la droite) des instructions indique quelles sont les instructions qui se trouvent dans la « boucle pour ». En langage Scratch,

• aide pour la calculatrice au verso de la fiche distribuée et émulateur utilisé en classe. Voici la fiche distribuée à compléter au fur et

faire un retour sur ce qu'il s'est passé par rapport à ce que vous aviez prévu.. from turtle import *

Il faut bien comprendre l'idée : vous avez construit une fonction ; le programme une fois compilé et exécuté, la fonction est prête à l'emploi ... et n'attend que ça.. répéter) ;

Dans un nouveau programme SABLE, créer une fonction prix() qui renvoie le prix à payer quand on connaît la quantité de sable acheté..

Exercice 2 (Somme des éléments d’une liste) Écrire une fonction somme_liste.. • d’argument L une liste d’expressions de type