注册 登录
编程论坛 Matlab

[求助] 重发ode45算出来的奇怪现象,上次说明可能不清楚

jinjian 发布于 2006-12-29 00:20, 631 次点击



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 ];




只有本站会员才能查看附件,请 登录

1 回复
#2
jinjian2006-12-29 00:22
模拟出来的x(3)的形状应该如图所示。
1