| 查看: 400 | 回复: 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]; |
» 猜你喜欢
浙江师范大学是怎么坑我的
已经有4人回复
闲聊
已经有6人回复
江苏省自然基金 什么时候出结果
已经有7人回复
浙江师范大学是怎么坑我的
已经有10人回复
求教各位大神:2026教育部人文社科青年基金项目何时公示呀?
已经有6人回复
面上有专家说实验设备不是我们单位的
已经有8人回复
科研求助
已经有4人回复









回复此楼