[求助] ode45算出来的奇怪现象
function example
clear all;
clc;
tic;
k=[1.751 1.623 0.578 0.36 0.704 0.64 0.885 0.00787];
x0=[6, 1.475, 89];
t=[0:0.0001:5];%结果正常,出现三个台阶
%t=[0:0.002:5];结果不正常,没有台阶。
[t, xcal]=ode45(@kineticseqs, t, x0, [], k);
result=[t, xcal];
SUCCESS=xlswrite('C:\MATLAB71\work\IA.xls', result);
toc;
%____________________________________________
function dxdt=kineticseqs(t, x, k)
5
if t>=2 && t<=2.1
feeding=200.0;
elseif t>=2.5 && t<=2.6
feeding=210.0;
elseif t>=3 && t<=3.1
feeding=220.0;
else
feeding=0;
end
f1=(k(1).*x(3)./(k(2).*x(1)+x(3))-k(3)).*x(1);
f2=k(4).*f1+k(5).*x(1);
f3=feeding-f1./k(6)-f2./k(7)-k(8).*x(1);
dxdt=[ f1; f2; f3 ];