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