ODE with a parameter that chages at each time step
显示 更早的评论
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 个评论
Andrew Newell
2011-9-4
I don't understand your notation. What does y(t)' of j mean?
ilaria
2011-9-4
采纳的回答
更多回答(2 个)
Grzegorz Knor
2011-9-4
Did you mean delay differential equations?
doc dde23
类别
在 帮助中心 和 File Exchange 中查找有关 Ordinary Differential Equations 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!