| 查看: 2031 | 回复: 1 | |||
[交流]
【求助】MATLAB数值模拟已有1人参与
|
|
我编写了一个程序,结果拟合出来未知参数的置信区间很大,希望大家能帮我指导一下!!! function HZSM_8 clear all;clc expdata=[4.28 0.0724 0.0614 0.0075 0.0013 0.0021; 8.56 0.1126 0.0859 0.0164 0.0039 0.0064; 16.69 0.1529 0.1034 0.0278 0.0079 0.0138; 33.76 0.1928 0.1134 0.0412 0.0132 0.0251; 69.72 0.2305 0.1158 0.0555 0.0192 0.04;]; yexp=expdata(:,2:6); x0=[0 0 0 0 0]; k0=[1.862 0.578 1.321 0.8 9.813 1.018 0.2409 0.626 4.5301 18.174 40.311 314.1]; options=optimset('Algorithm','Levenberg-Marquardt','LargeScale','off'); [k,resnorm,residual,exitflag,output,lambda,jacobian]=lsqnonlin(@objfunc,k0,[],[],options,x0,yexp); ci=nlparci(k,residual,jacobian); fprintf('\t k1=%.4f±%.4f\n',k(1),ci(1,2)-k(1)) fprintf('\t k2=%.4f±%.4f\n',k(2),ci(2,2)-k(2)) fprintf('\t k3=%.4f±%.4f\n',k(3),ci(3,2)-k(3)) fprintf('\t k4=%.4f±%.4f\n',k(4),ci(4,2)-k(4)) fprintf('\t k5=%.4f±%.4f\n',k(5),ci(5,2)-k(5)) fprintf('\t k6=%.4f±%.4f\n',k(6),ci(6,2)-k(6)) fprintf('\t k7=%.4f±%.4f\n',k(7),ci(7,2)-k(7)) fprintf('\t k8=%.4f±%.4f\n',k(8),ci(8,2)-k(8)) fprintf('\t k9=%.4f±%.4f\n',k(9),ci(9,2)-k(9)) fprintf('\t k10=%.4f±%.4f\n',k(10),ci(10,2)-k(10)) fprintf('\t k11=%.4f±%.4f\n',k(11),ci(11,2)-k(11)) fprintf('\t k12=%.4f±%.4f\n',k(12),ci(12,2)-k(12)) fprintf('\t the sum of the squares is:%.1e\n\n',resnorm) function f=objfunc(k,x0,yexp) %使用四阶龙格库塔法求取常微分方程组的值 tspan=[0 4.28 8.56 16.69 33.76 69.72]; [t,x]=ode45(@equations,tspan,x0,[],k) y=x(2:6, ;%目标函数的定义 f1=y(:,1)-yexp(:,1); f2=y(:,2)-yexp(:,2); f3=y(:,3)-yexp(:,3); f4=y(:,4)-yexp(:,4); f5=y(:,5)-yexp(:,5); f=[f1;f2;f3;f4;f5]; function dxdt=equations(t,x,k) P=1; PT=(1-x(1))*P/(6+x(1)); Ppx=x(2)*P/(6+x(2)); PO=x(4)*P/(6+x(1)); PMx=x(3)*P/(6+x(1)); PTMB=x(5)*P/(6+x(5)); PM=[0.5-(x(1)+x(5))]/(6+x(1)); Z=(1+k(7)*PT+k(8)*PM+k(9)*Ppx+k(10)*PMx+k(11)*PO+k(12)*PTMB)^2; dx1dt=k(1)*PT*PM/Z; dx2dt=[k(1)*PT*PM-k(2)*(Ppx-PMx/2.2)-k(4)*Ppx*PM]/Z; dx3dt=[k(2)*(Ppx-PMx/2.2)-k(3)*(PMx-PO/0.4)-k(5)*PMx*PM]/Z; dx4dt=[k(3)*(PMx-PO/0.4)-k(6)*PO*PM]/Z; dx5dt=(k(4)*Ppx*PM+k(5)*PMx*PM+k(6)*PO*PM)/Z; dxdt=[dx1dt;dx2dt;dx3dt;dx4dt;dx5dt]; 结果是: k1=1.9174±58287.8297 k2=0.5759±17506.6005 k3=1.4271±43384.6026 k4=0.8909±27081.9850 k5=9.4426±287049.8962 k6=2.5515±77564.2240 k7=-0.0804±227820.0664 k8=1.4310±276004.5168 k9=5.7924±106309.8775 k10=17.1832±259330.6709 k11=37.7388±551649.7103 k12=314.3976±4536110.8346 the sum of the squares is:6.2e-007 |
» 猜你喜欢
请问哪里可以有青B申请的本子可以借鉴一下。
已经有4人回复
真诚求助:手里的省社科项目结项要求主持人一篇中文核心,有什么渠道能发核心吗
已经有6人回复
孩子确诊有中度注意力缺陷
已经有14人回复
三甲基碘化亚砜的氧化反应
已经有4人回复
请问下大家为什么这个铃木偶联几乎不反应呢
已经有5人回复
请问有评职称,把科研教学业绩算分排序的高校吗
已经有5人回复
2025冷门绝学什么时候出结果
已经有3人回复
天津工业大学郑柳春团队欢迎化学化工、高分子化学或有机合成方向的博士生和硕士生加入
已经有4人回复
康复大学泰山学者周祺惠团队招收博士研究生
已经有6人回复
AI论文写作工具:是科研加速器还是学术作弊器?
已经有3人回复
» 本主题相关价值贴推荐,对您同样有帮助:
MATLAB 源代码大全
已经有243人回复
Matlab数值模拟求助(二元N-1次方程组)
已经有3人回复
matlab数值求解边界条件微分方程组
已经有7人回复
求助大侠帮忙,有关matlab模拟数据
已经有29人回复
如何用matlab处理txt文件里的数据
已经有7人回复
【活动】学习软件,推荐书活动(有BB奖励哟)
已经有51人回复
【求助】求助 matlab编程:可否实现清除文本文档数据
已经有5人回复
【求助】有关fortran进行数值模拟
已经有10人回复
spiderone
木虫 (小有名气)
- 应助: 2 (幼儿园)
- 金币: 3472.1
- 散金: 12
- 红花: 1
- 帖子: 157
- 在线: 108.4小时
- 虫号: 2520847
- 注册: 2013-06-25
- 性别: GG
- 专业: 化学反应工程
2楼2013-12-02 15:32:20













;
回复此楼