Algorithme de la Méthode de Prédicteur-Correcteur pour la résolution d'équations différentielles en Matlab :
function [t,u]=predcor (odefun,tspan,y0,Nh ,... predictor ,corrector ,varargin ) %PREDCOR Résout une équation différentielle avec une % méthode predicteur -correcteur % [T,Y]=PREDCOR (ODEFUN,TSPAN,Y0,NH,PRED,CORR) avec % TSPAN=[T0 TF] % intègre le système d’équations différentielles % y’=f(t,y) du temps T0 au temps TF avec la condition % initiale Y0 en utilisant une méthode générale % prédicteur -correcteur sur une grille de NH % intervalles équidistribués. La fonction ODEFUN(T,Y) % doit retourner un vecteur correspondant à f(t,y) % de même dimension que Y. % Chaque ligne de la solution Y correspond % à un temps du vecteur colonne T. % [T,Y]=PREDCOR (ODEFUN,TSPAN,Y0,NH,PRED,CORR,P1 ,..) % passe les paramètres supplémentaires P1,P2 ,.. aux % fonctions ODEFUN, PRED et COOR de la manière % CORR(T,Y,P1,P2...). h=(tspan(2)-tspan(1))/Nh; y=y0(:); w=y; u=y.’; tt=linspace (tspan(1),tspan(2),Nh+1); for t=tt(1:end -1) fn = feval(odefun ,t,w,varargin {:}); upre = feval(predictor ,t,w,h,fn); w = feval(corrector ,t+h,w,upre,h,odefun ,... fn,varargin {:}); u = [u; w.’]; end t = tt; end |
Aucun commentaire:
Enregistrer un commentaire