Вы находитесь на странице: 1из 2

cole des Mines de Nantes

Anne 1

Mthodes Numriques
TP n4 quations direntielles ordinaires
Les objectifs assigns ce TP sont :
de se familiariser avec limplmentation de quelques unes des mthodes de rsolution des ODE vues
en CM ;
dtudier les consquences pratiques du choix du pas de temps sur la convergence de la mthode,
en sappuyant sur la comparaison avec la solution littrale ;
de dcouvrir les procdures odeXXX "prtes lemploi" de matlab (ou octave) en matire de
rsolution dODE

Programmation de la mthode de Runge-Kutta dordre 2


En cours, nous avons vu que lalgorithme de Runge-Kutta dordre 2 tait donn par

t f (ti , yi )

y = yi +

2



, y .
yi+1 = yi + t f t +
2
Dans ce TP, on se propose donc de programmer cette mthode de rsolution dquations direntielles,
applique au problme suivant :

y (t) = (t) y(t) o C ,

y(0) = 1 .
o le coecient peut ventuellement dpendre explicitement du temps.
1) Dans un premier temps, nous poserons = 5. Ecrire, sous la forme dune fonction prenant en
argument la valeur du pas de temps t, un script permettant de calculer numriquement la solution du
problme test pour t [0 , 10].
2) Tracer, les solutions numriques obtenues pour direntes valeurs de t comprises entre 0.01 et 0.5
ainsi que la solution thorique (un graphique par valeur de t). Que se passe-t-il dans le cas particulier
o t = 0.4 ?
3) Sur la base des acquis de cours et du TD4 portant sur la stabilit, expliquez ce que vous avez constat
prcdemment.
4) Compltez votre script pour que puisse maintenant dpendre du temps. Il est conseill de faire
en sorte que son expression analytique soit donne en argument de la fonction o est implmente la
mthode de Runge-Kutta (pour cela, il faudra aussi utiliser la commande eval, dcrite dans le guide
matlab). Toutefois, en cas de dicult majeure avec cette mthode, on pourra tout aussi bien modier le
codage de la fonction directrice pour y faire apparatre la dpendance temporelle explicite de retenue
la Q5.
2

t
5) Rsoudre ensuite le problme lorsque = ( 10
+ 3t + 1) et nouveau, tester plusieurs valeurs de
t et comparer la solution littrale correspondante. Quelle valeur doit-on choisir pour t pour tre sr
que le schma ne diverge pas ?

Utilisation dun schma prencod sur MATLAB ou OCTAVE


Toujours pour cette forme de (t) adopte au point 5 ci-dessus, rsoudre lquation direntielle
laide dun solveur prencod. Sous MATLAB, on pourra opter pour un schma de type RK4 (commande
"ode45") ou "prdicteur-correcteur" de Matlab (commande "ode113"), cette dernire option ntant pas
1

cole des Mines de Nantes

Anne 1

disponible sous octave 1 . On en protera pour lire la documentation fournie ce sujet sur le logiciel de
votre choix (une documentation assez rcente du package ODEPKG est disponible sur campus).
Comparer ensuite avec les solutions obtenues prcdemment, en faisant notamment varier loption de
prcision absolue au sein de la commande "odeset". Que constater vous notamment au niveau du maillage
temporel ? Conclure.

1. Pour disposer de ces schmas prencods, il convient, sous octave, de commencer par charger le package "OdePkg"
le plus simple est dutiliser la commande "pkg install -forge odepkg" en tant connect internet puis de les rendre
accessibles en tapant la commande "pkg load odepkg".

Вам также может понравиться