Vous êtes sur la page 1sur 2

Analyse Numérique 2IC

TP1 - Python, Numpy et Matplotlib

1 Objectifs de la séance
1. Utiliser les librairies Numpy et Matplotlib de Python.
2. S’initier à la programmation notamment vectorielle
3. Tracer des courbes

2 Travail demandé
Exercice 1
Soit la fonction h(x) suivante :
1 1 2
h(x) = √ exp− 2 x

Créer les tableaux xt et ht qui contiennent respectivement 41 valeurs réparties uniformément pour
x ∈ [−4, 4] et l’évaluation de la fonction h sur ces valeurs.

Exercice 2
Réaliser le graphe de la fonction y(t) = v0 t − 12 gt2 pour v0 = 10 m.s−1 , g = 9.81 m.s−2 , et
t ∈ [0, 2v0 /g]. Le label sur l’axe des abscisses devra être ”temps (s)” et le label sur l’axe des ordonnées
”hauteur (m)”.

Exercice 3
On souhaite tracer cette trajectoire pour différentes valeurs de la vitesse initiale v0

v0 (m.s−1 ) 8.7 9.2 10.3 11.5 12.6

Créer un vecteur all_vo contenant les 5 valeurs de vitesse initiale qui nous intéressent.
Faire un programme qui, pour chaque valeur de v0 , trace les courbes correspondantes à l’aide d’une
boucle for, dans la même fenêtre graphique. On prendra t ∈ [0, 2v0 /g] pour chaque courbe, de telle
sorte que on devra fabriquer un vecteur t différent pour chaque courbe.

Exercice 4
La fonction sinus peut être approchée par un polynôme grâce à la formule
n
X x2j+1
sin x ≈ S(x; n) = (−1)j
(2j + 1)!
j=0

L’erreur dans l’approximation S(x; n) décroit quand n augmente et à la limite on a limn→∞ S(x; n) =
sin x. Le but de cette exercice est de visualiser la qualité de diverses approximations S(x; n) quand
n croit. La première partie de l’exercice est d’écrire une fonction Python S(x,n) qui calcule S(x; n).
La partie suivante est de tracer simultanément la fonction sin x sur [0, 4π] avec ses approximations
S(x; 1), S(x; 2), S(x; 3), S(x; 6) et S(x; 12) avec la légende.

1
Exercice 5
Vectoriser le code suivant :vectoriser = eviter les boucles for et if

import numpy as np
N = 10
x = np.zeros(N)
y = x.copy()
dx = 2.0/(N-1) # spacing of x coordinates
for i in range(N):
x[i] = -1 + dx*i
y[i] = np.exp(-x[i])*x[i]

Exercice 6
a) Construire le vecteur t collectant 50 valeurs dans l’intervalle [0, π].
b) Construire un vecteur h contenant les images des valeurs contenues dans le vecteur t par la fonction
h(t) = cos(t).
c) Construire un vecteur p contenant les indices correspondants aux valeurs positives de h à l’aide
d’une boucle for, puis à l’aide de la fonction np.where.
d) se servir de p pour doubler les valeurs positives de h.

Exercice 7
Soit A une matrice aléatoire de taille (8×6) :
>>> A = np.random.rand(8,6)
Remplir les deux dernières colonnes de zéros.

Exercice 8
La fonction f (x) décrit pour une valeur fixe de t une onde localisée en espace :
2
f (x, t) = exp−(x−3t) sin(3π(x − t))

Faire un programme qui visualise cette fonction comme une fonction de x dans l’intervalle x ∈ [−4, 4]
pour t = 0.

Vous aimerez peut-être aussi