Résolution d équations différentielles avec Matlab

Documents pareils
CHAPITRE V SYSTEMES DIFFERENTIELS LINEAIRES A COEFFICIENTS CONSTANTS DU PREMIER ORDRE. EQUATIONS DIFFERENTIELLES.

Bien lire l énoncé 2 fois avant de continuer - Méthodes et/ou Explications Réponses. Antécédents d un nombre par une fonction

Continuité et dérivabilité d une fonction

Amphi 3: Espaces complets - Applications linéaires continues

Résolution d équations non linéaires

Chapitre 2 Le problème de l unicité des solutions

3 Approximation de solutions d équations

Continuité d une fonction de plusieurs variables

ÉVALUATION FORMATIVE. On considère le circuit électrique RC représenté ci-dessous où R et C sont des constantes strictement positives.

Méthodes de quadrature. Polytech Paris-UPMC. - p. 1/48

Chapitre 1 Régime transitoire dans les systèmes physiques

Théorème du point fixe - Théorème de l inversion locale

Exercices - Fonctions de plusieurs variables : corrigé. Pour commencer

Problème 1 : applications du plan affine

Baccalauréat S Antilles-Guyane 11 septembre 2014 Corrigé

Chapitre 7 : Intégration sur un intervalle quelconque

Commun à tous les candidats

EXERCICE 4 (7 points ) (Commun à tous les candidats)

Fonctions de plusieurs variables

Optimisation non linéaire Irène Charon, Olivier Hudry École nationale supérieure des télécommunications

F411 - Courbes Paramétrées, Polaires

OM 1 Outils mathématiques : fonction de plusieurs variables

Exercice autour de densité, fonction de répatition, espérance et variance de variables quelconques.

a et b étant deux nombres relatifs donnés, une fonction affine est une fonction qui a un nombre x associe le nombre ax + b

Licence à distance Chapitre V : Equations différentielles. Méthodes numériques à un pas.

Fonctions de plusieurs variables. Sébastien Tordeux

Oscillations libres des systèmes à deux degrés de liberté

Chp. 4. Minimisation d une fonction d une variable

Cours d Analyse. Fonctions de plusieurs variables

FONCTIONS DE PLUSIEURS VARIABLES (Outils Mathématiques 4)

La fonction exponentielle

Limites finies en un point

Equations différentielles linéaires à coefficients constants

Programmation linéaire

Cours Fonctions de deux variables

Représentation géométrique d un nombre complexe

Programmation linéaire et Optimisation. Didier Smets

Introduction à l analyse numérique : exemple du cloud computing

Calcul différentiel sur R n Première partie

Sujet proposé par Yves M. LEROY. Cet examen se compose d un exercice et de deux problèmes. Ces trois parties sont indépendantes.

Correction de l examen de la première session

Cours 7 : Utilisation de modules sous python

Simulation de variables aléatoires

TD1 Signaux, énergie et puissance, signaux aléatoires

Rappels sur les suites - Algorithme

Introduction à MATLAB R

Fonctions de plusieurs variables

Correction du Baccalauréat S Amérique du Nord mai 2007

CONCOURS D ENTREE A L ECOLE DE 2007 CONCOURS EXTERNE. Cinquième épreuve d admissibilité STATISTIQUE. (durée : cinq heures)

Programmes des classes préparatoires aux Grandes Ecoles

Filtrage stochastique non linéaire par la théorie de représentation des martingales

Exo7. Matrice d une application linéaire. Corrections d Arnaud Bodin.

I. Polynômes de Tchebychev

Équations non linéaires

Fonctions de plusieurs variables et applications pour l ingénieur

Premiers pas avec Mathematica

Les correcteurs accorderont une importance particulière à la rigueur des raisonnements et aux représentations graphiques demandées.

Analyse en Composantes Principales

Première partie. Préliminaires : noyaux itérés. MPSI B 6 juin 2015

SYSTEMES LINEAIRES DU PREMIER ORDRE

Souad EL Bernoussi. Groupe d Analyse Numérique et Optimisation Rabat http ://

La Licence Mathématiques et Economie-MASS Université de Sciences Sociales de Toulouse 1

Manuel d utilisation 26 juin Tâche à effectuer : écrire un algorithme 2

aux différences est appelé équation aux différences d ordre n en forme normale.

Loi binomiale Lois normales

Le modèle de Black et Scholes

Évaluation et implémentation des langages

La programmation linéaire : une introduction. Qu est-ce qu un programme linéaire? Terminologie. Écriture mathématique

Baccalauréat ES/L Amérique du Sud 21 novembre 2013

Examen optimisation Centrale Marseille (2008) et SupGalilee (2008)

Introduction. Mathématiques Quantiques Discrètes

Initiation à l algorithmique

3. Conditionnement P (B)

Étudier si une famille est une base

Espérance conditionnelle

Fonctions de deux variables. Mai 2011

RO04/TI07 - Optimisation non-linéaire

Différentiabilité ; Fonctions de plusieurs variables réelles

Notes du cours MTH1101 Calcul I Partie II: fonctions de plusieurs variables

Chapitre 6. Fonction réelle d une variable réelle

III- Raisonnement par récurrence

MATHÉMATIQUES EN PREMIER CYCLE PRÉSENTATION DU PROGRAMME

Calculs de probabilités avec la loi normale

Algorithmes pour la planification de mouvements en robotique non-holonome

Correction du baccalauréat ES/L Métropole 20 juin 2014

Méthodes numériques et éléments de programmation

SUJET ZÉRO Epreuve d'informatique et modélisation de systèmes physiques

Introduction à l étude des Corps Finis

8.1 Généralités sur les fonctions de plusieurs variables réelles. f : R 2 R (x, y) 1 x 2 y 2

NOTICE DOUBLE DIPLÔME

Calculer avec Sage. Revision : 417 du 1 er juillet 2010

de calibration Master 2: Calibration de modèles: présentation et simulation d

BACCALAURÉAT PROFESSIONNEL ÉPREUVE DE MATHEMATIQUES. EXEMPLE DE SUJET n 2

Les indices à surplus constant

Corps des nombres complexes, J Paul Tsasa


Complément d information concernant la fiche de concordance

Cours d Analyse 3 Fonctions de plusieurs variables

Raisonnement par récurrence Suites numériques

Lecture graphique. Table des matières

Transcription:

Résolution d équations différentielles avec Matlab Olivier Gauthé 1 Rappel sur les équations différentielles 1.1 Définition et généralités Une équation différentielle ordinaire (ODE, ordinary differential equation) est une équation reliant une fonction d une variable réelle et ses dérivées. Dans sa forme la plus générale, elle s écrit f(y, y, t) = 0 (1) où y est la fonction inconnue, y sa dérivée et t la variable réelle. Cette formulation est extrêmement générale et peut poser de grosses difficultés mathématiques. Dans tout ce qui suit, on se limitera aux équations différentielles ordinaires explicites, c est à dire de la forme y = f(y, t) (2) On ne s intéressera pas ici aux équations différentielles partielles et on dira simplement équation différentielle pour désigner une équation différentielle ordinaire. 1.2 Conditions initiales et théorème de Cauchy-Lipschitz Une équation différentielle admet généralement une infinité de solution, mais un problème physique, par exemple la chute d une pierre, n a qu une seule solution : celle qu on mesure. Pour trouver la solution physique du problème considéré, il faut fixer une condition initiale, c est à dire un couple (t 0, y 0 ) tel que y(t 0 ) = y 0. On appelle problème de Cauchy la donnée d une équation différentielle et d une condition initiale. Le théorème de Cauchy-Lipschitz assure alors que si la fonction f est suffisamment régulière, il existe une unique solution au problème de Cauchy. On considèrera que cette condition de régularité est toujours respectée par la suite. Exemple : le problème de Cauchy y = y, y(0) = 1 admet une unique solution, la fonction exponentielle. 1

1.3 Résolution d une équation différentielle Dans la grande majorité des cas, on ne connaît pas de solution exacte à une équation différentielle : les solutions analytiques sont des exceptions. On sait qu une solution exacte existe, mais on ne peut pas en dire plus. À défaut d une solution exacte, on peut résoudre numériquement une équation différentielle, c est à dire obtenir une valeur numérique approchée y(t) pour un ensemble de temps discrets. L objectif est que lorsque le pas de temps diminue, la solution approchée converge vers la solution exacte. 2 Méthodes numériques Nous allons détailler quelques méthodes numériques permettant de résoudre l équation différentielle 2.1 Méthode d Euler dy dt = f(y, t), y(t 0) = y 0 (3) La méthode d Euler est la méthode numérique la plus simple pour résoudre une équation différentielle. Elle n est jamais utilisée en condition réelle car peu performante, mais elle a l avantage de la simplicité. Elle consiste à partir du point y 0 à t 0 et à intégrer la dérivée y obtenue en utilisant l équation différentielle. On part du développement limité y(t + t) = y(t) + t dy dt + O( t2 ) (4) On insère l équation différentielle (3) dans cette équation et on obtient y(t + t) = y(t) + f(y, t). On fixe un pas de temps fini t et une grille de temps {t i } = {t 0 + i t}, et on note y i = y(t i ). L équation (4) donne alors le schéma numérique : y i+1 = y i + t f(t i, y i ) (5) Note : rien n impose d utiliser un pas de temps constant t. Au contraire, on obtient une meilleure précision en prenant un pas de temps variable bien choisi. L erreur est cumulative : à chaque étape, on utilise le résultat de l étape précédente et on accroît l erreur. À chaque étape, l erreur commise est en O( t 2 ), l erreur totale sur le résultat final est donc contrôlée comme O( t) (méthode d ordre 1), ce qui est assez lent : il faut un pas de temps très petit pour obtenir un résultat proche de la valeur exacte. Une implémentation de la méthode d Euler pour résoudre l équation (refeq :ODE) sur l intervalle [t 0, t f ] avec un pas de temps dt est donc, en code Matlab : t = t0:dt:tf; n = length(t); % on fixe la grille de temps 2

y = zeros(1,n); y(1) = y0; % on fixe la taille du tableau y % on fixe la condition initiale for i=1:n-1 % on écrit y(i+1) : i+1 ne doit donc pas dépasser n y(i+1) = y(i) + f(y(i),t(i)); % on applique le schéma numérique end 2.2 Autres méthodes numériques La méthode d Euler converge très lentement, l erreur est mal contrôlée. On cherche donc des algorithmes plus efficaces. On ne détaillera pas le déroulé des méthodes, le lecteur intéressé est renvoyé à la littérature sur le sujet. Méthode du point du milieu : la méthode du point du milieu consiste à prendre la valeur de la dérivée au point situé au milieu de chaque intervalle de temps. C est une méthode d ordre 2, c est à dire que l erreur est contrôlée en O( t 2 ). Le schéma numérique s écrit y i+1 = y i + t f(t i+1/2, y i+1/2 ) (6) avec t i+1/2 = t i + t/2 et y i+1/2 = y i + t/2 f(t i, y i ). Méthode de Heun : la méthode de Heun, ou méthode d Euler améliorée ou encore méthode de Runge-Kutta d ordre 2 est une autre méthode d ordre 2. Son schéma numérique est : y i+1 = y i + t 2 (f(t i+1/2, ỹ) + f(t i, y i )) (7) avec ỹ = y i + t f(t i, y i ) Méthode de Runge Kutta d ordre 4 : la méthode de Runge-Kutta est une méthode générale utilisable à n importe quel ordre. Le schéma numérique de l ordre 4 s écrit 2.3 Application k 1 = t f(t i, y i ) k 2 = t f(t i+1/2, y i + k 1 /2) k 3 = t f(t i+1/2, y i + k 2 /2) k 4 = t f(t i+1, y i + k 3 ) y i+1 = y i + (k 1 + 2k 2 + 2k 3 + k 4 )/6 Implémenter la méthode du point du milieu et la méthode de Runge Kutta pour résoudre le problème de Cauchy y(t) = 2y, y(0) = 1 sur l intervalle de temps [0, 4].Tracer les courbe des résultats obtenu par cette méthode, par la méthode d Euler ainsi que la solution exacte. Faire varier le pas de temps et regarder comment les solutions évoluent. Tracer la courbe de l erreur exp(8) y(4) en fonction du pas de temps pour différentes méthodes. 3

2.4 Utilisation de la fonction ode45 Matlab propose sa propre méthode de résolution d équation différentielle avec la fonction ode45. Aller lire l aide en ligne de cette fonction. On lit que la syntaxe est [t,y] = ode45(odefun,tspan,y0). Pour résoudre le problème précédent, il faut donc rentrer [t45,y45] = ode45(@(t,y) 2*y,[0,4],1) Ici, on définit une fonction sans nom qui renvoie 2y et on passe une référence à cette fonction comme argument à ode45. On aurait aussi pu définir cette fonction dans un fichier annexe fct_ode1.m et l appeler avec ode45(@fct_ode1, [0,4],1). Matlab détermine tout-seul sa grille de temps, on ne lui passe donc que les bornes comme argument. 3 Équations différentielles d ordres supérieurs Nous avons jusqu ici traité uniquement des fonctions différentielles d ordre 1. En physique, on rencontre des équations différentielles d ordre supérieur, comme l équation du ressort ẍ + ω 2 x = 0. Le principe consiste à se ramener à une équation différentielle d ordre 1. Pour cela, on pose v = ẋ. On a alors les équations ẋ = v On pose Y = v = ω 2 x ( ) x, A = v ( ) 0 1 ω 2 0 et l équation du ressort devient une équation différentielle vectorielle d ordre 1 Ẏ = A Y (8) Le fait que l équation initiale soit linéaire permet de se ramener à un simple produit matriciel : dans le cas général non linéaire, on a juste une équation Ẏ = f(y ) (9) Plus généralement, une équation différentielle scalaire d ordre n peut se ramener à une équation vectorielle d ordre 1 de dimension n. Les conditions initiales s écrivent Y (0) = Y 0, c est à dire qu on fixe le vecteur initial, soit n scalaires. On peut ensuite appliquer les méthodes numériques du chapitre précédent. En particulier, ode45 ne résout que des équations différentielles d ordre 1, mais de dimension quelconque. Dans le cas du ressort, on construit la matrice A et on résout alors l équation différentielle sur l intervalle [0, 7] en rentrant [t45,y45] = ode45(@(t,y) A*y,[0,7],[1,0]) 4

Noter que y45 est alors un tableau de taille [length(t45), 2] : y45(:,1) contient la valeur de la position à chaque instant t i et y45(:,2) contient la vitesse au même instant. Dans le cas général, le plus simple est d écrire la fonction dy/dt dans un fichier annexe et d appeler cette fonction comme argument de ode45, plutôt que de la définir dans la ligne d appel de la fonction (se référer à l aide en ligne). Application : modifier les méthodes précédentes pour résoudre des équations d ordre 2. Résoudre l équation du ressort, tracer la vitesse et la position en fonction du temps et observer comment la solution évolue en fonction du pas de temps. 5