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

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

Chapitre 7 : Intégration sur un intervalle quelconque

Continuité et dérivabilité d une fonction

3 Approximation de solutions d équations

Problème 1 : applications du plan affine

Amphi 3: Espaces complets - Applications linéaires continues

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

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

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

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

Continuité d une fonction de plusieurs variables

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

Résolution d équations non linéaires

Commun à tous les candidats

F411 - Courbes Paramétrées, Polaires

Fonctions de plusieurs variables

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

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

La fonction exponentielle

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.

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

Fonctions de plusieurs variables. Sébastien Tordeux

Cours d Analyse. Fonctions de plusieurs variables

Rappels sur les suites - Algorithme

Limites finies en un point

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

Calcul différentiel sur R n Première partie

Simulation de variables aléatoires

Introduction à MATLAB R

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

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

Programmation linéaire et Optimisation. Didier Smets

Chp. 4. Minimisation d une fonction d une variable

Correction de l examen de la première session

Programmation linéaire

Analyse en Composantes Principales

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

Equations différentielles linéaires à coefficients constants

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

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

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

OM 1 Outils mathématiques : fonction de plusieurs variables

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

Cours Fonctions de deux variables

I. Polynômes de Tchebychev

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

FONCTIONS DE PLUSIEURS VARIABLES (Outils Mathématiques 4)

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

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

Calcul matriciel. Définition 1 Une matrice de format (m,n) est un tableau rectangulaire de mn éléments, rangés en m lignes et n colonnes.

SYSTEMES LINEAIRES DU PREMIER ORDRE

Partie 1 - Séquence 3 Original d une fonction

Programmes des classes préparatoires aux Grandes Ecoles


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

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

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

LES TYPES DE DONNÉES DU LANGAGE PASCAL

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.

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

Étudier si une famille est une base

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

Cours 7 : Utilisation de modules sous python

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

Équations non linéaires

Fonctions de plusieurs variables

Image d un intervalle par une fonction continue

Fonctions de plusieurs variables et applications pour l ingénieur

Fonctions de deux variables. Mai 2011

Espérance conditionnelle

Premiers pas avec Mathematica

3. Conditionnement P (B)

Calculs de probabilités avec la loi normale

Exercices Corrigés Premières notions sur les espaces vectoriels

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

* très facile ** facile *** difficulté moyenne **** difficile ***** très difficile I : Incontournable

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

RO04/TI07 - Optimisation non-linéaire

Les indices à surplus constant

BTS Groupement A. Mathématiques Session Spécialités CIRA, IRIS, Systèmes électroniques, TPIL

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

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

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

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

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

Raisonnement par récurrence Suites numériques

Le modèle de Black et Scholes

Planche n o 22. Fonctions de plusieurs variables. Corrigé

Optimisation Discrète

Lecture graphique. Table des matières

Calcul fonctionnel holomorphe dans les algèbres de Banach

Évaluation et implémentation des langages

Présentation du PL/SQL

Introduction. Mathématiques Quantiques Discrètes

Cours d Analyse 3 Fonctions de plusieurs variables

Circuits RL et RC. Chapitre Inductance

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, c est à dire de la forme y = f(t, y) (1) où y est la fonction inconnue, y sa dérivée et t la variable réelle. 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. On peut en fait définir une famille plus générale d équations différentielles, de la forme g(t, y, y ) = 0. On se limitera dans ce cours aux équations explicites, avec le terme y en dehors de la fonction f. 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.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 1

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(t, y), y(t 0) = y 0 (2) 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, qu on obtient en utilisant l équation différentielle. On part du développement limité y(t + t) = y(t) + t dy dt + O( t2 ) (3) On insère l équation différentielle (2) 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 (3) donne alors le schéma numérique : y i+1 = y i + t f(t i, y i ) (4) En fait, rien n impose d utiliser un pas de temps t constant. 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 (2) 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); y = zeros(1,n); y(1) = y0; % on fixe la grille de temps % on fixe la taille du tableau y % on fixe la condition initiale for i=1:n-1 % i+1 ne doit donc pas dépasser n y(i+1) = y(i) + dt*f(t(i),y(i)); % schéma numérique end 2

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 mid, y mid ) (5) avec t mid = t i + t/2 et y mid = 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 : avec ỹ = y i + t f(t i, y i ). y i+1 = y i + t ( f(ti+1, ỹ) + f(t i, y i ) ) (6) 2 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 t mid = t i + t/2 k 1 = t f(t i, y i ) k 2 = t f(t mid, y i + k 1 /2) k 3 = t f(t mid, 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 2.3 Application 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 obtenus 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. 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 3

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 également des équations différentielles d ordre supérieur, comme l équation du ressort ẍ + ω 2 x = 0. Le principe pour les résoudre consiste à se ramener à une équation différentielle d ordre 1. Pour cela, on pose v = ẋ. On a alors les équations ẋ = v v = ω 2 x On pose alors une variable vectorielle Y : Y = ( ) x v et on cherche à quelle équation différentille obéit le vecteur Y. On calcule donc sa dérivée Ẏ : (ẋ ) ( ) ( ) v Y2 Ẏ = = v ω 2 = x ω 2 (9) Y 1 où on a utilisé l équation (7). On observe qu on peut écrire chacun des coefficients de Ẏ en fonction de ceux de Y : on s est donc ramené à une équation différentielle d ordre 1 en la variable Y : avec la fonction f définie par : A = (7) (8) Ẏ = f(t, Y ) (10) ( ) 0 1 ω 2, f : (t, X) A X (11) 0 Ici, l équation initiale est linéaire ce qui permet de ramener la fonction f à un simple produit matriciel, de plus elle ne dépend pas de t. Dans le cas général, f est quelconque. 4

Plus généralement, une équation différentielle scalaire d ordre n peut toujours se ramener à une équation vectorielle d ordre 1 de dimension n. Les conditions initiales s écrivent alors 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 pratique, la fonction ode45 ne résout que des équations différentielles d ordre 1, mais de dimension quelconque. Il faut donc ramener une équation différentielle à une équation d ordre 1 avant d appeler ode45. Dans le cas du ressort, on commence par construire la matrice A. On résout ensuite l équation différentielle sur l intervalle [0, 2π] avec les conditions initiales x(0) = 1, v(0) = 0 en rentrant : [t45,y45] = ode45(@(t,y) A*y,[0,2*pi],[1,0]) Noter que y45 est alors un tableau de taille (length(t45), 2) : la première colonne y45(:,1) contient la valeur de la position à chaque instant t i et la deuxième colonne 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 différentielles 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