1 function Y=resout_euler_implicite_bis(N,T,y0,fcn,fcnp,nmax,epsilon)
\r
5 % resoud_euler_implicite_bis : résolution d'une équation différentielle par la méthode d'Euler implicite.
\r
7 % *********************************************************
\r
9 % X=resout_euler_implicite_bis(N,T,y0,fcn,fcnp,nmax,epsilon) calcule les valeurs aux instants 0,h,2h,...,Nh=T
\r
10 % par la méthode d'Euler implicite pour l'équation différentielle y't)=f(t,y(t)) sur [0,T] et y(0)=y0.
\r
11 % A chaque itération, l'équation y_{n+1}=y_n+hf(t_{n+1},y_{n+1}) est résolue par la méthode de Newton
\r
12 % où la valeur initiale est choisie égale à y_n.
\r
14 % La dérivée partielle df/dy est entrée comme paramètre.
\r
16 % * variables d'entrées :
\r
17 % N : nombre de valeurs calculées ;
\r
18 % T : borne supérieure de l'intervalle ;
\r
19 % y0 : valeur de y à t=0 ;
\r
20 % fcn : chaine de caractères (de type 'f(t,y)') représentant la fonction
\r
21 % fcnp : chaine de caractères (de type 'f(t,y)') représentant la fonction df/dy
\r
22 % epsilon : précision souhaitée (pour la méthode de Newton)
\r
23 % nmax : nombre maximal d'itérations (pour la méthode de Newton)
\r
25 % * variables de sortie :
\r
26 % Y : valeurs calculée aux instants 0,h,2h,...,Nh=T.
\r
30 % ************ Fonctions auxiliaires utilisées ************
\r
34 % *********************************************************
\r
37 % Contrôles d'entrée
\r
39 % nombre d'arguments
\r
41 error('nombre d''arguments de la fonction incorrect');
\r
44 % Corps d'algorithme
\r
62 fx=v-yapp-h*eval(fcn);
\r
65 test=~((fx==0)|(n>=nmax)|(abs(v-oldv)<=epsilon));
\r
69 error('attention, n>nmax pour la méthode de Newton : arrêt du programme');
\r