function Y=resout_runge_kutta2(N,T,y0,fcn)
% 
%
%
%	resout_runge_kutta2 : résolution d'une équation différentielle par la méthode de Runge Kutta 2 (explicite).
%
% *********************************************************
%
%    Y=resout_runge_kutta2(N,T,y0,fcn) calcule les valeurs aux instants 0,h,2h,...,Nh=T par la méthode
%    de Runge Kutta d'ordre 2 (explicite) pour l'équation différentielle y't)=f(t,y(t)) sur [0,T] et y(0)=y0.
%	
%	* variables d'entrées :
%      N : nombre de valeurs calculées ; 
%      T : borne supérieure de l'intervalle ;
%      y0 : valeur de y à t=0 ;
%      fcn : chaine de caractères (de type 'f(t,y)') représentant la fonction f.
%
%	* variables de sortie :
%     Y : valeurs calculée aux instants 0,h,2h,...,Nh=T.
%
% 
% 
% ************ Fonctions auxiliaires utilisées ************
%
%       aucune
%
% *********************************************************
%



% Contrôles d'entrée

% nombre d'arguments
if nargin~=4
   error('nombre d''arguments de la fonction incorrect');
end
   
% Corps d'algorithme
h=T/N;
Y=zeros(1,N+1);
Y(1)=y0;
auxiY=y0;
for i=1:N
   t=h*(i-1);
   y=auxiY;
   k1=h*eval(fcn);
   t=t+h;
   y=auxiY+k1;
   k2=h*eval(fcn);
   auxiY=auxiY+(k1+k2)/2;
   Y(i+1)=auxiY;
end




