数学建模社区-数学中国
标题:
微分方程系数拟合
[打印本页]
作者:
云淡风轻小刚
时间:
2012-12-21 12:35
标题:
微分方程系数拟合
参考了一些文献,拟合三个微分方程组的7个系数,拟合的效果不是很好,麻烦高人帮我看看!
function Dy=ggg(t,y,k)
Dy=zeros(3,1);
Dy(1)=k(1)*y(1)-k(2)*y(1).*y(1);
Dy(2)=k(3)*Dy(1)+k(4)*y(1);
Dy(3)=-k(5)*Dy(1)-k(6)*Dy(2)-k(7)*y(1);
end
function f=ww(k,y0,yexp)
y0=[3.5 0 0]';
tspan=[0:12:96]';
[t y]=ode45(@ggg,tspan,y0,[],k);
f1=y(:,1)-yexp(:,1);
f2=y(:,2)-yexp(:,2);
f3=y(:,3)-yexp(:,3);
f=[f1 f2 f3];
end
k0=[1 1 1 1 1 1 1];
t=[0:12:96];
y0=[3.5 0 0];
yexp=xlsread('sample.xls');
lb=[0 0 0 0 0 0 0];ub=[];
[k,resnorm,resid,exitflag,output,lambda,jacobian]=lsqnonlin(@ww,k0,lb,ub,[],y0,yexp);
y1=[yexp(:,1)];
y2=[yexp(:,2)];
y3=[yexp(:,3)];
[t4 y4]=ode45(@ggg,[t(1),t(end)],y0,[],k);
plot(t,y1,'bo',t,y2,'g+',t,y3,'r*',t4,y4,'k-')
legend('x','p','s','Model'),
xlabel('time(h)'),ylabel('x(g/l),p(g/l)s(g/l)')
数据
t X P S
0 3.50 0.000 0.0000
12 4.55 1.435 0.7310
24 8.75 1.793 0.8310
36 7.00 2.260 0.8321
48 6.30 2.475 0.8372
60 5.60 2.626 0.8882
72 4.90 2.601 0.8905
84 4.55 2.601 0.8913
96 4.20 2.618 0.9067
matlab程序.zip
2012-12-21 12:34 上传
点击文件名下载附件
下载积分: 体力 -2 点
39.62 KB, 下载次数: 28, 下载积分: 体力 -2 点
作者:
squirrelcs
时间:
2012-12-21 18:19
学习学习~~~~~~~~~~~~~~
作者:
frankteller
时间:
2012-12-22 10:18
好东西啊!谢谢分享!!
作者:
霁雨晴蓝
时间:
2015-2-6 21:30
作者:
小舒同学
时间:
2018-5-28 19:17
请问你最后有修改好程序吗?
欢迎光临 数学建模社区-数学中国 (http://www.madio.net/)
Powered by Discuz! X2.5