TD méthod num

download TD méthod num

of 40

  • date post

    01-Jan-2016
  • Category

    Documents

  • view

    100
  • download

    0

Embed Size (px)

Transcript of TD méthod num

  • FACULTE DES SCIENCES ET TECHNIQUES

    Dpartement Gnie Mcanique

    TD Mthodes Numriques

    Exercice 1: On considre le problme de Cauchy :

    a) Calculer la solution analytique b) Appliquer les mthodes d'Euler explicite et d'Euler implicite pour obtenir la solution numrique c) Raliser un programme Matlab pour les deux Mthodes d) Vrifier que les deux mthodes convergent avec un ordre linaire Solution a) La solution analytique est :

    b) Les schmas explicite et implicite d'Euler sont : Schma explicite :

    Schma implicite :

    c/ et d/ Voir programme Matlab

  • Exercice 2 :

    Pour approcher le problme de Cauchy :

    on considre la mthode de trapze ou de Crank-Nicolson tel que :

    o h est le pas de temps

    1/ En supposant que la solution exacte y(t) soit C (R+), calculer l'erreur locale de troncature

    introduite par la mthode numrique ci-dessus.

    1/ Par dfinition : l'erreur locale de troncature de la mthode de Crank-Nicolson

    O y(t) est la solution exacte

    Corrig :

    donc

    2/ Sachant que:

    Quelle est l'ordre de convergence de cette mthode ?

    Corrig:

    On a :

    Donc

  • Cette mthode est donc d'ordre 2

    3/ Soit le problme :

    Retrouver la solution analytique

    Pour rsoudre numriquement ce problme, on applique les mthodes d'Euler progressive et de Crank-Nicolson

    Le tableau ci-contre montre les erreurs commises par

    les deux mthodes l'instant t=5 pour diffrents

    valeurs du pas de temps h.

    Identifier quelle colonne entre les deux a t calcule en utilisant la mthode de Crank-Nicolson. Justifier la

    rponse.

    Trouver la condition de stabilit sur h pour la mthode d'Euler progressive.

    Corrig :

    Voir programme Matlab pour la rsolution numrique

    On a vu que la mthode de Crank-Nicolson est d'ordre 2 et on sait que la mthode d'Euler progressive est d'ordre 1.

    On remarque que lorsqu'on divise le pas de temps par 2, l'erreur dans la premire mthode est divise de la mme

    faon par un facteur de 2, tandis que dans la seconde mthode elle est divise par 4. On en dduit que la premire

    mthode correspond la mthode d'Euler progressive d'ordre 1 et la seconde mthode la mthode de Crank-

    Nicolson d'ordre 2.

    n h h(i)/h(i+1) ErreurMthode1 e1(i)/e1(i+1) ErreurMthode2 e2(i)/e2(i+1)

    1 1 ?? 0,03052276 ?? 0,005215832 ??2 0,5 2 0,01460741 2,089539487 0,001034686 5,0409805493 0,25 2 0,007161485 2,039718019 0,00024971 4,1435438814 0,125 2 0,003548112 2,018393162 6,18916E05 4,0346425155 0,0625 2 0,001765997 2,009126856 1,54398E05 4,008581734

    Condition de stabilit :

    Soit le problme :

    On effectue un dveloppement de Taylor suivant :

    Ou encore :

  • L'erreur locale sur la mthode est :

    La mthode est stable lorsque tend vers zro quand n tends vers l'infini

    Pour cela il faut que

    C'est--dire :

    Ici :

    On dduit donc

    4) Vrifier l'ingalit de la question 2/ dans le cas o .

  • Exercice 3: Pendule simple

    L'quation rgissant le mvt d'un pendule simple de longueur et faisant un angle par rapport la verticale :

    On rappelle que , et on prendra pour l'implmentation .

    1/Ecrire une fonction Matlab dcrivant l'quation du pendule comme un systme d'quations diffrentielles d'ordre 1.

    Solution

    1/ Le problme de Cauchy est sous la forme gnrale

    En effet :

    Ecrivons la fonction :

    Les variables phi et phiprime sont des vecteurs de longueur 2, o phi(1) reprsente l'angle que le pendule fait

    avec la verticale, phi(2) reprsente .

    2) Programmer la mthode d'Euler explicite, pour un systme d'ordre 1 et de dimension quelconque.

    Une solution pour Euler.m :

    3) L'tat initial du pendule dfinit l'amplitude du mouvement : si celle-ci est faible, la solution de l'quation

    linarise donne une approximation du comportement du pendule.

  • Faire un programme Matlab pour valider cette approximation pour diffrents tats initiaux en comparant pour

    chacun des cas le rsultat de l'intgration numrique de l'quation du pendule avec la solution analytique du

    problme linaris.

    Do

    Dfinir un fichier de script qui trace sur un mme graphique pour l'intervalle de temps [0 5] et pour l'tat initial

    - La solution du pendule calcule par la mthode d'Euler avec 5000 points d'intgration.

    -La solution du pendule donne par la mthode prdfinie de Matlab ode45

    La solution analytique de l'quation linarise.

    Recommencer pour

    Solution Matlab

  • Exercice 3 (suite) : Pendule Amorti :

    On dsire rsoudre numriquement l'quation diffrentielle dcrivant le mouvement d'un pendule amorti :

    o la position du pendule est donne par x , m est la masse du pendule, k la constante de raideur du ressort

    (linaire) et le coefficient de frottement (linaire).

    Soient les donnes suivantes du problme

    Conditions initiales : t=0s, le pendule est sa position d'quilibre (x(0)=0) mais possde une vitesse de 2m/s.

    En utilisant la mthode de Runge-Kutta, raliser un programme Matlab pour rsoudre l'quation diffrentielle pour

    .

    Solution :

    Dans une premire tape, on va transformer cette quation du second ordre en un systme de deux quations du

    premier ordre. A cet effet, posons :

    On a donc le systme diffrentiel suivant :

    Soient les donnes suivantes du problme

    Conditions initiales : t=0s, le pendule est sa position d'quilibre (x(0)=0) mais possde une vitesse de 2m/s.

    Rsoudre l'quation diffrentielle pour .

    La fonction dcrivant l'EDO function udot = oscillateur(t,u) % on initialise le vecteur colonne udot udot = zeros(2,1); %on calcule les drives % ? /m = 0.5 et k/m = 1.5, udot(1) = u(2); udot(2) = -0.5*u(2) -1.5*u(1);

    Programme du pendule amorti %Valeur initiale : u0 = [0 2] [t u] = ode45('oscillateur',[0 20],[0 2]); % Affichage de la position et la vitesse du pendule en fonction du temps plot(t,u(:,1));hold on; plot(t,u(:,2),'r-.'); xlabel('temps (s)'); title('Pendule amorti'); legend('Position (m)','Vitesse

  • (m/s)');

  • Exercice 4 : Tir de projectile Soit rsoudre lquation diffrentielle suivante :

    avec M=70 kg g=9.81N/kg C=0.27 kg/m Lquation est quivalente

    o et

    Dterminer numriquement V(t). On choisit un pas de temps , et on donne comme condition initiale V(t=0)=0. Tracer la solution de cette quation diffrentielle pour .

    Solution (voir ExoRef1.m) La solution numrique obtenue par la mthode dEuler s'crit :

    On obtient un graphique qui donne lvolution de la solution V(t) en fonction du temps.

  • Exercice : Projectile On cherche rsoudre le problme du mouvement

    d'un point solide de masse m la position

    dans le repre ayant une

    vitesse dans un champ de pesanteur

    (voir figure).

    D'aprs la mcanique du point, il suffit d'appliquer le

    PFD au solide :

    Mouvement dun point de masse dans un champ de

    pesanteur

    1/ Ecrire ce problme sous la forme d'un problme de Cauchy, tel que :

    O avec

    2/ Soient les conditions initiales du problme : et .

    En utilisant une mthode numrique adquate, resoudre le systme diffrentiel ci-dessus pour determiner le point d'attrissage de trois tirs avec diffrents angles de lancement avec une vitesse initiale

    Solution

    Supposons que le mouvement est bidimensionnel dans le plan

    Projetons l'quation vectorielle dans le repre donne le systme d'quation diffrentiel suivant :

    Les conditions initiales du problme :

    La solution exacte du mouvement est :

    Rsolution numrique : Soit le systme diffrentiel d'ordre 2 :

    Pour rsoudre numriquement ce systme, commenons par poser :

  • Ce systme peut s'crire donc :

    De mme, on dfinit :

    Ce systme diffrentiel peut s'crire donc :

    En regroupant l'ensemble des composantes sous la forme d'une seule quation diffrentielle matricielle,

    on a alors :

    avec

    Problme de Cauchy :

    Trouver telle que :

    La rsolution de cette quation fournira les fonctions :

    2/

    Programme de la fonction fprojectile en Matlab pour calculer f (t, u (t)) : (fprojectile )

    Le script suivant rsout le systme d'quations diffrentielles (S1) avec les conditions initiales et . Les rsultats sont montrs pour la position de la particule

    (N+1=31) temps compris entre 0 et 11s. Dtermination des paramtres initiaux L'un des buts de la mthode de Tir est de dterminer ou d'optimiser les paramtres initiaux afin d'obtenir un certain comportement dsir de la solution. Exemple : Dans le cas d'un projectile, on peut chercher dterminer pour quel angle de lancement le projectile ira-t-il le plus loin possible ? C'est on va cherche le point d'atterrissage du solide pour lequel on a :

  • Faisons une approximation linaire entre de la coordonne telle que : On a alors :

    Le point d'atterrissage est le zro de la fonction d'approximation linaire . Ce qui donne aprs simplification :

    La vitesse en x est en gnrale non constante, on peut donc faire une approximation linaire pour calculer :

    D'o

    Le point d'atterrissage est dfini compltement, soit Ci-dessous, on donne une reprsentation montrant les traces des trajectoires et le point d'attrissage de trois tirs avec diffrents angles de lancement avec une vitesse initiale

  • Exercice 5: Equation thermique Une plaque mtallique paisse la temprature de 200C (ou 473K) est soudainement place dans une chambre de 25K, o la plaque est refroidie la fois par la convection naturelle et