ODE with a parameter that chages at each time step
Mostra commenti meno recenti
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 Commenti
Andrew Newell
il 4 Set 2011
I don't understand your notation. What does y(t)' of j mean?
ilaria
il 4 Set 2011
Risposta accettata
Più risposte (2)
Grzegorz Knor
il 4 Set 2011
Did you mean delay differential equations?
doc dde23
ilaria
il 7 Set 2011
0 voti
Categorie
Scopri di più su Ordinary Differential Equations in Centro assistenza e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!