| 查看: 408 | 回复: 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人回复
【长期招聘】复旦大学 AI 制药实验室 博士后招聘
已经有9人回复
越来越担心硕士毕业后没有竞争力了
已经有15人回复
2027博士申请-临床检验诊断学、病原生物学、微生物方向
已经有4人回复
申博自荐 2篇一区TOP+1篇EI+2公开发明专利 2027博士申请
已经有3人回复










回复此楼