• Aucun résultat trouvé

Informatique tronc commun TP 10

N/A
N/A
Protected

Academic year: 2022

Partager "Informatique tronc commun TP 10"

Copied!
3
0
0

Texte intégral

(1)

Informatique tronc commun TP 10

14 février 2014

Note : après la séance, vous devez rédiger un compte-rendu de TP et le faire parvenir à votre enseignant, au plus tard une semaine après la séance de TP.

Ce compte-rendu sera pour cette séance le fichier python contenant le code demandé (avant chaque question, on reportera en commentaire le numéro de la question),

Le nom de votre fichier python sera impérativementforme dupont_jean_tp10.py, où dupontest à remplacer par votre nom etjeanpar votre prénom, les deux étant en minus- cules(même la première lettre) etsans caractère accentué.

Dans la mesure du possible, on justifiera le code demandé par des invariants.

1 Problème physique considéré

On considère un satellite orbitant autour de la Terre.

Pour simplifier, on considérera le problème en dimension 2, dans le référentiel géocentrique, supposé galiléen.

On notera M(x, y) la position du satellite. On notera ~u le vecteur

−−→OM

OM : c’est le vecteur de même sens et direction que−−→

OM.

On supposera que le satellite est soumis à la seule force de la gravitation exercée par la Terre, supposée ponctuelle. On en déduit que l’accélération~asubie par le satellite vérifie

~a=− µ

OM2~u (1)

oùµest le paramètre gravitationnel standard de la Terre (appelé aussi constante gravita- tionnelle géocentrique), égal àGM oùGest la constante de gravitation universelle et M la masse de la Terre.

L’équation s’écrit également x¨

¨ y

=− µ

(x2+y2)3/2 x

y

(2) On désire calculer la position du satellite étant données sa position initiale (x0, y0) et sa vitesse initiale(vx0, vy0) entre l’instant initialt0 et un instant t1.

Pour tout l’énoncé on prendra les choix suivants :

1

(2)

x0 = 7200km y0 = 0 vx0 = 0

vy0 = 7,28km/s t0 = 0

t1 = 24h

Et on prendraµ= 398600km3s−2

Note : on aura intérêt à tout exprimer en unités SI. Par exemple en écrivant : m = 1 . # USI

s = 1 . # USI km = 1000 ∗ m min = 60 ∗ s h = 60 ∗ min

mu = 398600 ∗ km∗∗3 ∗ s∗∗−2 x0 = 7200 ∗ km

y0 = 0 vx0 = 0

vy0 = 7 . 2 8 ∗ km / s t = 24 ∗ h

2 Représentation sous forme d’une équation différentielle d’ordre 1

En notant X le vecteur(x, y,x,˙ y), on a˙

X˙ =

˙ x

˙ y

¨ x

¨ y

=F(X) (3)

F :

 a b c d

 7→

c d

− µa (a2+b2)3/2

− µb (a2+b2)3/2

2

(3)

3 Travail demandé

Écrire une fonctiontrace_positions(U,f) prenant en argument un tableau U contenant une liste de valeurs calculées pour X à différents instants successifs, traçant la courbe des (x, y) correspondants à ces valeurs de X (utiliser pylab ) et la sauvant dans le fichierf.

Pour chacune des méthodes ci-dessous, il s’agira de simuler numériquement le mouvement du satellite entre l’instantt0 et l’instant t1.

Pour cela on écrira une fonction avec le nom demandé prenant en argument un entier n et effectuant la méthode demandée avec un pasδ= (t1−t0)/n et retournant un tableauU contenant les valeurs calculées pour X aux instantst0+kδ pourk∈[[0, n+ 1[[.

À chaque fois, on regardera le tracé obtenu pour un calcul en n= 100pas et on tentera un commentaire critique du résultat obtenu.

3.1 Méthode d’Euler explicite

Étudier la méthode d’Euler explicite. Vous appellerezeuler_exp(n) votre fonction.

3.2 Méthode de Heun

Étudier la méthode de Heun. Vous appellerez heun(n) votre fonction.

3.3 Méthode de Runge Kutta

Étudier la méthode de Runge Kutta explicite. Vous appellerezrk4(n) votre fonction.

3.4 Utilisation des méthodes de scipy

Étudier la méthode proposée par Scipy (fonctionodeint). Vous appellerezscipy(n) votre fonction.

3

Références

Documents relatifs

Considérant le Budget Primitif de la Ville de l’exercice 2019, les titres définitifs des créances à recouvrer, le détail des dépenses effectuées et celui des mandats

Écrire une procédure fizzbuzz prenant en argument un entier n et affichant successi- vement la suite des entiers de 1 avec la règle suivante : les nombres multiples de 3 sont

Plus précisément, f doit être une fonction prenant ses valeurs dans range ( k ) et les éléments de la liste résultat sont triés par ordre croissant de leurs images par f.. De plus,

choisie pour cette image (intensité de gris représentant le blanc), puis toutes les valeurs de la matrice représentant l’image, dans l’ordre où on les lirait normalement si la

Sachant qu’une division en base 10 a un « coût » proportionnel au nombre de chiffres, estimer le temps de calcul nécessaire pour connaître le nombre exact de chiffre dans

Ce compte-rendu sera pour cette séance le fichier python contenant le code demandé (avant chaque question, on reportera en commentaire le numéro de la question),.. Le nom de

Écrire une fonction est_cle_primaire_entiere(t, c) prenant en argument une table t, un nom de champ c et retournant un booléen indiquant si les valeurs du champ c dans la table t

Votre programme doit manipuler une base de données comportant plusieurs tables et certaines des requêtes que vous ferez sur cette base de données doivent être non-triviales..