| 查看: 350 | 回复: 0 | ||
飞鸿印雪jay银虫 (小有名气)
|
[求助]
我想求这个方程里的k,用这个代码但是有错误,求大神改改,万分感谢!!!
|
|
function k1k2k3 format long clear all clc tspan = [0 30 50 80 140 170 200 230 260 290 320 360 400 460 520 580 600]; x0 = [9;0;0;0;0]; k0 = [1 1 1 1 1 1 1 1 1 1]; lb = [0 0 0 0 0 0 0 0 0 0]; ub = [1 1 1 1 1 1 1 1 1 1]; data=[30 7.939 1.458 7.939 1.458 7.939 50 7.687 1.535 7.687 1.535 7.687 80 7.289 1.602 7.289 1.602 7.289 140 6.658 1.717 6.658 1.717 6.658 170 6.531 1.722 6.531 1.722 6.531 200 6.218 1.671 6.218 1.671 6.218 230 5.979 1.620 5.979 1.620 5.979 260 5.591 1.550 5.591 1.550 5.591 290 5.414 1.488 5.414 1.488 5.414 320 4.968 1.433 4.968 1.433 4.968 360 4.692 1.350 4.692 1.350 4.692 400 4.438 1.319 4.438 1.319 4.438 460 4.144 1.294 4.144 1.294 4.144 520 4.041 1.294 4.041 1.294 4.041 580 4.052 1.287 4.052 1.287 4.052 600 4.052 1.287 4.052 1.287 4.052]; yexp = data(:,2:6); [k,resnorm,residual,exitflag,output,lambda,jacobian] =... lsqnonlin(@ObjFunc,k0,lb,ub,[],tspan,x0,yexp); ci = nlparci(k,residual,jacobian); fprintf('\n\n使用函数lsqnonlin()估计得到的参数值为:\n') fprintf('\tk1 = %.9f ± %.9f\n',ci(1,2)-k(1),k(1)) fprintf('\tk2 = %.9f ± %.9f\n',ci(1,2)-k(2),k(2)) fprintf('\tk3 = %.9f ± %.9f\n',ci(1,2)-k(3),k(3)) fprintf('\tk3 = %.9f ± %.9f\n',ci(1,2)-k(4),k(4)) fprintf('\tk3 = %.9f ± %.9f\n',ci(1,2)-k(5),k(5)) fprintf('\tk3 = %.9f ± %.9f\n',ci(1,2)-k(6),k(6)) fprintf('\tk3 = %.9f ± %.9f\n',ci(1,2)-k(7),k(7)) fprintf('\tk3 = %.9f ± %.9f\n',ci(1,2)-k(8),k(8)) fprintf('\tk3 = %.9f ± %.9f\n',ci(1,2)-k(9),k(9)) fprintf('\tk3 = %.9f ± %.9f\n',ci(1,2)-k(10),k(10)) fprintf(' The sum of the squares is: %.9e\n\n',resnorm) function f = ObjFunc(k,tspan,x0,yexp) % 目标函数 [t, Xsim] = ode45(@KineticsEqs,tspan,x0,[],k); Xsim1=Xsim(:,1); Xsim2=Xsim(:,2); Xsim3=Xsim(:,3); Xsim4=Xsim(:,4); Xsim5=Xsim(:,5); % Xsim6=Xsim(:,6); ysim(:,1) = Xsim1(2:end); ysim(:,2) = Xsim2(2:end); ysim(:,3) = Xsim3(2:end); ysim(:,4) = Xsim4(2:end); ysim(:,5) = Xsim5(2:end); % ysim(:,6) = Xsim6(2:end); size(ysim(:,1)); size(ysim(:,2)); size(ysim(:,3)); size(ysim(:,4)); size(ysim(:,5)); % size(ysim(:,6)); size(yexp(:,1)); size(yexp(:,2)); size(yexp(:,3)); size(yexp(:,4)); size(yexp(:,5)); % size(yexp(:,6)); f = [(ysim(:,1)-yexp(:,1)) (ysim(:,2)-yexp(:,2)) (ysim(:,3)-yexp(:,3)) (ysim(:,4)-yexp(:,4)) (ysim(:,5)-yexp(:,5))]; function dCdt = KineticsEqs(t,C,k) % ODE模型方程 dCAdt = (k(1)+k(5)+k(6)+k(7))*C(1); dCBdt = k(1)*C(1)-(k(2)+k(8)+k(9))*C(2); dCCdt = k(5)*C(1)+k(2)*C(2)-(k(3)+k(10))*C(3); dCDdt = k(6)*C(1)+k(9)*C(2)+k(3)*C(3)-k(4)*C(4); dCEdt = k(7)*C(1)+k(8)*C(2)+k(10)*C(3)+k(4)*C(4); dCdt = [dCAdt; dCBdt;dCCdt;dCDdt;dCEdt]; |
» 猜你喜欢
酰胺脱乙酰基
已经有9人回复
有时候真觉得大城市人没有县城人甚至个体户幸福
已经有3人回复
CSC & MSCA 博洛尼亚大学能源材料课题组博士/博士后招生|MSCA经费充足、排名优
已经有5人回复
有70后还继续奋斗在职场上的吗?
已经有6人回复
博士延得我,科研能力直往上蹿
已经有7人回复
退学或坚持读
已经有27人回复
面上基金申报没有其他的参与者成吗
已经有5人回复
遇见不省心的家人很难过
已经有22人回复













回复此楼