ODE with a parameter that chages at each time step
Mostrar comentarios más antiguos
Hi all,
I have a problem solving a ODE with Matlab.
The ODE is:
y(t)'of j= [(sigma^2)/(2*k)]*(1-y(t)*k)*(y(t)-[y(t)of j-1])^2;
I've written this code:
mu = 0.20;
r = 0.05;
sigma = 0.40;
T = 10;
k = 0.2;
IC = 0.0;
TSPAN = 0:0.1:T;
TSPANlength = length(TSPAN);
%Number of crahes
N=3;
PiVektor = zeros(N,TSPANlength);
for i=1:1:N
[~, PiVektor(i, :)] = ode23(@(t, pi)myodeN(pi, PiVektor(i-1),k,mu,r,sigma),TSPAN, IC);
PiVektor(i,:) = fliplr(PiVektor(i,:));
figure(1);
hold on
plot(TSPAN,PiVektor(i,:));
end
function dpidt = myodeN(pi,piNminus1,k,mu,r,sigma)
dpidt = [(sigma^2)/(2*k)]*(1-pi*k)*(pi-piNminus1)^2;
end
The problem is that in this way the ODE is always calculated using just the first value from the previous calculation.
Is it possibile to change the value of my parameter at each time step?
Thanks a lot,
Ilaria
2 comentarios
Andrew Newell
el 4 de Sept. de 2011
I don't understand your notation. What does y(t)' of j mean?
ilaria
el 4 de Sept. de 2011
Respuesta aceptada
Más respuestas (2)
Grzegorz Knor
el 4 de Sept. de 2011
Did you mean delay differential equations?
doc dde23
ilaria
el 7 de Sept. de 2011
0 votos
Categorías
Más información sobre Ordinary Differential Equations en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!