1 Méthode de Runge

publicité
INSA de Rennes, Année Universitaire 2013-2014
CONROLE TP de METHODES NUMERIQUES
4e année Electronique et Informatique Industrielle
Durée : 2 h
Nombre de pages : 3
————————————————————————————–
Mardi 14 janvier 2014
1
Méthode de Runge-Kutta d’ordre 3
2
2
2
Soit f une
fonction définie et continue de [a, b] × R −→ R et soit Y : [a, b] −→ R , Y (t) =
Y1 (t)
, la solution du problème de Cauchy suivant :
Y2 (t)
Y ′ (t) = f (t, Y (t)),
Y (a) = η,
où η ∈ R2 .
(1)
b−a
et ti = a + (i − 1)h, pour i = 1, . . . , n + 1, une subdivision
n
équidistante de [a, b]. Pour résoudre le problème (1), nous considérons le schéma de Runge-Kutta
suivant

u1 = η




 ui+1 = ui + h6 (k1 + 4k2 + k3 ), i = 1, . . . , n,
k1 = f (ti , ui ),

h
h


où
k
2 = f (ti + 2 , ui + 2 k 1 ),


k3 = f (ti + h, ui − hk1 + 2hk2 ),
Soit n ∈ N∗ On pose h =
ui ∈ R2 est la valeur approchée de Y (ti )). Pour étudier cette méthode numérique, on considère
le problème suivant
y ′′ (t) = −y(t), t ∈ [0, π]
(2)
y(0) = 0, y ′ (0) = 1,
y(t)
qui se reécrit en un système d’ordre 1, en posant Y (t) = ′
y (t)



Y ′ (t) = F1(t, Y (t)),
0
Y (0) =
1
t ∈ [0, π]
(3)
où F1 est une fonction calculer.
1. Ecrire un fichier F1·m qui calcule la fonction F1 . Test F1(1,[1 2]).
>> F1 ( 1 , [ 1 ; 2 ] )
ans =
2
−1
2. Ecrire une fonction RK3·m qui prend en paramètres d’entrée fichier le nom du fichier contenant f , interv un vecteur deux composantes, les deux bornes de l’intervalle d’intégration,
eta la condition initiale et n le nombre de subdivision et en sortie le vecteur t et U un
tableau deux lignes et n + 1 colonnes représentant les vecteurs ui , i = 1, . . . , n + 1. Test
[t,U]=RK3(’F1’,[0 pi],[0;1],5).
1
>> [ t ,U]=RK3( ’ F1 ’ , [ 0 p i
t =
0
0.6283
U =
0
0.5870
1.0000
0.8026
] ,[0;1] ,5)}
1.2566
1.8850
2.5133
3.1416
0.9422
0.2996
0.9321
−0.3126
0.5647
−0.7980
−0.0152
−0.9719
3. Créer un fichier qui, pour n donné, calcule err1=
max |u1i − sin(ti )| où u1i désigne la
i=1...n+1
première composante de ui . Sauvegarder sous VI1·m où VI sont vos initiales. Test avec
n=5.
>> VI1
n =
5
err1 =
0.0231
4. Etudier l’erreur quand n varie. On partira du tableau de valeurs de n, tabn= 20 : 10 : 100
et on construira un tableau des erreurs taberr puis on tracera log(taberr) en fonction de
log(tabn). Sauvegarder sous VI2·m. Calculer l’aide de l’instruction polyfit la pente de
la droite de régression et déduire l’ordre de la méthode ( indiquer en commentaire en fin
du fichier).
2
Application à la trajectoire d’un chien
Un chien poursuit son maı̂tre. La trajectoire du maı̂tre est donnée par une courbe du plan
→
→
OM (t) et la trajectoire du chien par une courbe OC (t). Le chien court à une vitesse constante
→
→
→
d OC
OM (t)− OC (t)
en module et dirigée à chaque instant vers son maı̂tre:
sauf
(t) = vc →
→
dt
k OM (t)− OC (t)k
lorsque qu’il rejoint son maı̂tre auquel cas la vitesse est nulle.
1. Construire une fonction trajmaitre1.m qui
du maı̂tre pour un tableau
donne la position
→
10 + 20 cos t
de valeurs du temps. Exemple OM (t) =
.
20 + 15 sin t
>> t r a j m a i t r e 1 ( 0 : 0 . 5 : 1 )
ans =
30.0000
20.0000
27.5517
27.1914
20.8060
32.6221
2. Construire une fonction vitessechien1.m qui étant donnés un instant t et une position
→
U =OC détermine la vitesse V du chien. On utilisera la fonction précédente et on prendra
→
vc = 15. La condition, le chien rejoint le maı̂tre sera remplacée par k OM (t)− U k ≤ 10−3 .
>> V=v i t e s s e c h i e n ( 1 , [ 1 ; 2 ] )
V =
8.1464
12.5951
>> V=v i t e s s e c h i e n ( 0 , [ 3 0 . 0 0 0 1 ; 2 0 . 0 0 0 2 ] )
V =
0
0
2
3. Créer un programme trajchien.m qui calcule la trajectoire approchée du chien en utilisant la méthode de Runge-Kutta précédente ; on cherche
donc une valeur appprochée
→
→
1
de Y (t) =OC (t). Test t ∈ [0, 10], n = 50, OC (0) =
. Afficher la dernière valeur
2
→
approchée: ≃OC (10).
4. Créer un programme VI3.m qui calcule et trace les trajectoires du maı̂tre et du chien. Test
précédent.
→
10 + 20 cos t + 3 sin(2000 ∗ t)
5. Cette fois le maı̂tre est ivre et sa trajectoire est OM (t) =
.
20 + 15 sin t
Modifier trajmaitre1.m en trajectmaitre2.m et vitessechien1.m en vitessechien2.m
→
1
puis créer VI4.m pour dessiner les trajectoires. Test t ∈ [0, 10], n = 50, OC (0) =
.
2
3
Application à la trajectoire de trois chats
Trois chats sont positionnés aux trois sommets d’un triangle ABC à l’instant 0. A chaque
instant, ils se poursuivent avec une vitesse constante et égale à 1 en module ; le premier chat va
dans la direction du second qui, lui, va dans la direction du troisième, ce dernier allant dans la
direction du premier. Déterminer et tracer les trajectoires (approchées) sur l’intervalle de temps
[0, 8]. Sauvegarde sous VI4.m et fonctions annexes. Test A(0, 0), B(0, 10), C(9, 10), n = 30.
3
Téléchargement