| 查看: 349 | 回复: 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]; |
» 猜你喜欢
国自然申请面上模板最新2026版出了吗?
已经有10人回复
推荐一本书
已经有12人回复
基金申报
已经有4人回复
计算机、0854电子信息(085401-058412)调剂
已经有4人回复
溴的反应液脱色
已经有6人回复
纳米粒子粒径的测量
已经有7人回复
常年博士招收(双一流,工科)
已经有4人回复
参与限项
已经有5人回复
有没有人能给点建议
已经有5人回复
假如你的研究生提出不合理要求
已经有12人回复












回复此楼