这个是原方程
下面文件一个是数据
这是我模仿人家的程序 可是老是有问题 请帮我改改吧 谢谢
function piadatfit2
clear all;
tspan=[0 15 30 45 60 75 90 105 120];
cexp=[9.825 0 0 0 1.269;6.37526 1.9963 0.9619 3.44974 1.269;5.244978 3.287052 1.29297 4.580022 1.269;4.47617 3.95034 1.44173 5.34825 1.269;3.97372125 4.377602255 1.473676495 5.85127875 1.269;3.50231 4.67683 1.67972 6.32269 1.269;3.074439 4.89039375 1.76854 6.750561 1.269;2.83596 5.14027 1.83809 6.98904 1.269;2.62121175 5.331707217 1.872081033 7.20378825 1.269;
k0==[0 0 0 0 0];
c0==[9.825 0 0 0];
LB==[0 0 0 0 0 0 0 0 0];
UB==[+inf +inf +inf +inf +inf +inf +inf +inf +inf];
[k,resnorm,residual]==lsqnonlin(@objpia,k0,LB,UB,[],cexp,tspan,c0)
[tplot cplot]==ode45(@piakin,tspan,c0,[],k);
plot(tspan,cexp(:,1),'bx',tplot,cplot(:,1),'b-',tspan,cexp(:,2),'ko',tplot,cplot(:,2),'k-');
function f=objpia(k,cexp,tspan,c0,);
[~, c]=ode45(@piakin,tspan,c0,[],k);
f1=c(:,1)-cexp(:,1);
f2=c(:,2)-cexp(:,2);
f3=c(:,3)-cexp(:,3);
f4=c(:,4)-cexp(:,4);
f5=c(:,5)-cexp(:,5);
f=[f1;f2;f3;f4;f5];
function (dc/dt)=piakin(c,k);
dc1/dt=(k1*k3*c(1)/(k2*c(4))-k8*k4*c(2))*0.774/(1+k1*c(1)*c(4)/(k2*c(4))+k4*c(2)+k1*c(1)/(k5*c(4))+k7*c(3));
dc2/dt=(k1*k3*c(1)/(k2*c(4))-k8*k4*c(2))*0.774/(1+k1*c(1)*c(4)/(k2*c(4))+k4*c(2)+k1*c(1)/(k5*c(4))+k7*c(3));
dc3/dt=(k1*k3*c(1)/(k2*c(4))-k8*k4*c(2))*0.774/(1+k1*c(1)*c(4)/(k2*c(4))+k4*c(2)+k1*c(1)/(k5*c(4))+k7*c(3));
dc4/dt=(k1*k3*c(1)/(k2*c(4))-k8*k4*c(2))*0.774/(1+k1*c(1)*c(4)/(k2*c(4))+k4*c(2)+k1*c(1)/(k5*c(4))+k7*c(3));
dc5/dt=(k1*k3*c(1)/(k2*c(4))-k8*k4*c(2))*0.774/(1+k1*c(1)*c(4)/(k2*c(4))+k4*c(2)+k1*c(1)/(k5*c(4))+k7*c(3));
dc/dt=[dc1/dt dc2/dt dc3/dt dc4/dt dc5/dt]';