- Codice:
function [yout,tt] = RK2_esplicito(fun,t0,tf,y0,tab,h)
t=t0;
%tableau
[c,A,b]=tab();
y = y0(:);
%numero passi
s=length(b);
k = y*zeros(1,length(b)+1);
k(:,1) = feval(fun,t,y);
%variabile per contare i tempi per plottare
n=ceil((tf-t0)/h)+1;
%creo un vettore di tempi in cui valuto la funz
tt=zeros(1,n);
%la prima colonna è il tempo iniziale
tt(1)=t0;
%ciclo sul tempo
for i=2:(n-1)
tt(i)=tt(i-1)+h;
end
%avevo ceil + 1, quindi aggiungo l'ultima colonna
tt(n)=tf;
while(t < tf)
if((t+h) > tf)
h=tf-t;
end
%calcolo le k
k(:,1) = feval(fun,t,y);
for j=1:s
k(:,j+1) = feval(fun, t+c(j)*h, y+h*f*A(:,j));
end
y = y + h*f*b(:,1);
t=t+h;
end
yout=y;
end
i tableau (tab nelle dipendenze della funzione) sono in un file e non so come fare per dirgli questa cosa. ho provato a passare 'nomefile.m' nelle dipendenze ma non esce. premetto che non ho mai seguito nessun corso di matlab e quindi anche i comandi più semplici mi sono oscuri.
non potendolo provare dato che non so come passare i tableau, vedete già qualche errore nel codice?
grazie in anticipo a tutti!