0% ont trouvé ce document utile (0 vote)
198 vues2 pages

Euler Et Scilab

Ce document décrit la méthode d'Euler pour résoudre une équation différentielle. La méthode consiste à subdiviser l'intervalle et approximer la solution en chaque point à l'aide de la dérivée. Un algorithme et un programme Scilab sont fournis pour appliquer la méthode numériquement.

Transféré par

gdg
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
198 vues2 pages

Euler Et Scilab

Ce document décrit la méthode d'Euler pour résoudre une équation différentielle. La méthode consiste à subdiviser l'intervalle et approximer la solution en chaque point à l'aide de la dérivée. Un algorithme et un programme Scilab sont fournis pour appliquer la méthode numériquement.

Transféré par

gdg
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

TD: Programmation de la méthode d'Euler TS

Il s'agit de résoudre de manière approchée de l’équation différentielle:


y’ = ay et y(0) = 1 (E) sur [0,1] lorsque a est un réel donné
On admet que (E) possède une unique solution.
On utilise la méthode d'Euler pour obtenir une approximation de la solution sous la
forme d'une courbe représentative.

Principe: On cherche à déterminer une approximation d'une fonction f, dérivable sur un


intervalle I, connaissant une relation entre f' et f ainsi que la valeur de f en un point a
de I
On subdivise l'intervalle, en construisant la suite de points
x0=a x1=a+h x2=x1+h etc…
h est appelé le pas.
f étant dérivable, on a f(x1) = f(x0+h) ≈ f'(x0)h+f(x0).
Lorsque h est petit on obtient une approximation de f(x1) et on réitère le procédé.
A l'étape k, on a f(xk+1) = f(xk+h) ≈ f'(xk)h + f(xk) (*)

Application de la méthode à notre problème.


Ici on a:
x0=
x1=
.......
xk=
.........
xn=1
Quelle est la nature de la suite de valeurs (xk):
Quelle est la relation entre n et h:
a et h étant supposé connus, adapter la relation (*) au problème posé.

On note yk la valeur approché de f(xk). Quelle est la nature de la suite de valeurs (yk)?

Ecriture d'un algorithme


Décrire les étapes permettant de remplir le tableau suivant:

xk 0 h 2h ........................................... 1

yk 1 y1 y2 ......................................... yn
Ecriture d'un programme dans scilab:
Voici un programme écrit en Scilab, écrire en regard des instructions, ce que fait le
programme, sur le modèle des commentaires déjà écrits.

function [x,y]=euler(a,h) ici on crée une fonction qui remplit deux tableaux x et y

x(1)=0;y(1)=1;
n=1/h;
for i=2:n+1
x(i)=x(i-1)+h;
y(i)=y(i-1)*(1+a*h);
end
endfunction

clf() initialise la fenêtre graphique

xtitle('résolution de dy/dt=ay sur [0;1] avec la méthode d Euler') insère un titre

[x,y]=euler(-2,0.1);
plot2d(x,y,2,axesflag=4) trace la courbe correspondante en rouge

[x,y]=euler(-2,0.05);
plot2d(x,y,3,axesflag=4) trace la courbe correspondante, en vert.

[x,y]=euler(-2,0.01);
plot2d(x,y,5,axesflag=4) trace la courbe correspondante, en bleu.

Remarque: dans Scilab, les tableaux ne peuvent commencer leur indexation à 0, d'où
l'adaptation de l'algorithme dans la boucle for.
Admirons le résultat: Ouvrir Scilab puis dans application, lancer l'éditeur de programme,
recopier le programme, sans les commentaires puis faites charger dans Scilab, modifier
ensuite les paramètres a et h et relancer.

Vous aimerez peut-être aussi