| 查看: 900 | 回复: 3 | |||
| 本帖产生 1 个 博学EPI ,点击这里进行查看 | |||
[求助]
matlab 非线性拟合 数据拟合
|
|||
|
我在做一个动力学的方程拟合,用的是最小二乘法,下面是程序,不知道哪里有问题,结果偏差很大,求各位大神帮助! 原方程 K=k0*exp(-E/T)*PH^a*PS^b*P,知K T PH PS P,求 k0 E a b function nihe global T0 PH0 PS0 P0 K0 T0=[5014.5891 5014.5891 5014.5891 5180.8691 5180.8691 5180.8691 5347.1491 5347.1491 5347.1491]; PH0=[788732.39 592592.59 396039.6 790123.46 394366.19 594059.41 792079.21 591549.29 395061.73]; PS0=[20.19 13.28 7.1 17.71 10.1 10.65 14.2 15.15 8.85]; P0=[24220.91 29411.10 20587.77 20587.77 29411.10 24220.91 29411.10 20587.77 24220.91]; K0=[1047 1122 1233 1188 1225 1148 1815 1185 1125]; y=log(K0); x1=T0 x2=log(PH0); x3=log(PS0); x4=log(P0); y=y'; X=[ones(size(y)) x1' x2' x3' x4']; [b bint]=regress(y,X,0.1); k=exp(b(1)); E=b(2) a=b(3); c=b(4); beta0=[k E a c]; lb=[];ub=[]; [beta,resnorm,resid,exitflag,output,lambda,jacobian] = ... lsqnonlin(@ObjFunc,beta0,lb,ub); ci=nlparci(beta,resid,jacobian) % 残差关于拟合值的残差图 K0c = Rate(beta,PH0,PS0,T0,P0); plot(K0c,resid,'*') xlabel('反应速率拟合值, torr s^-^1') ylabel('残差R, torr s^-^1') refline(0,0) % 参数辨识结果 fprintf('Estimated Parameters:\n') fprintf('\tk = %.4f ± %.4f\n',beta(1),ci(1,2)-beta(1)) fprintf('\tE = %.2f ± %.2f\n',beta(2),ci(2,2)-beta(2)) fprintf('\ta = %.2f ± %.2f\n',beta(3),ci(3,2)-beta(3)) fprintf('\tc = %.2f ± %.2f\n',beta(3),ci(3,2)-beta(3)) fprintf('\tThe sum of the squares is: %.1e\n\n',resnorm) % ---------------------------------------------------------------- function f=ObjFunc(beta) global T0 PH0 PS0 P0 K0 f=K0-Rate(beta,T0,PH0,PS0,P0); % ------------------------------------------------------------------ function K=Rate(beta,T,PH,PS,P) K=beta(1).*exp(-beta(2)./T).*PH.^beta(3).*PS.^beta(4).*P; 运行结果如下 ci = 1.0e+004 * -0.0000 0.0000 -2.4270 3.5058 -0.0000 0.0002 -0.0002 0.0001 Estimated Parameters: k = 0.0001 ± 0.0015 E = 5393.89 ± 29664.08 a = 0.64 ± 1.05 c = 0.64 ± 1.05 The sum of the squares is: 2.2e+005 |
» 猜你喜欢
职称评审没过,求安慰
已经有51人回复
毕业后当辅导员了,天天各种学生超烦
已经有5人回复
26申博自荐
已经有3人回复
A期刊撤稿
已经有4人回复
垃圾破二本职称评审标准
已经有17人回复
投稿Elsevier的Neoplasia杂志,到最后选publishing options时页面空白,不能完成投稿
已经有22人回复
EST投稿状态问题
已经有7人回复
» 本主题相关价值贴推荐,对您同样有帮助:
matlab 非线性拟合
已经有16人回复
用matlab,非线性拟合两个参数之间的数量级差距比较大,参数怎么设置权重?
已经有8人回复
如何用Matlab拟合大量散点的边界曲线
已经有5人回复
急!在用origin进行非线性拟合怎样创建新的拟合函数?
已经有14人回复
matlab 多元函数拟合
已经有9人回复
在用nlinfit对非线性函数拟合时遇到的一些问题请教
已经有5人回复
matlab如何在一个图里拟合多条直线
已经有5人回复
求大神帮忙拟合一个非线性方程,求出模型参数
已经有15人回复
在进行多元非线性拟合的时候,用matlab拟合的值残差都大于0
已经有14人回复
求助用matlab 多元非线性拟合
已经有4人回复
matlab 拟合方法
已经有4人回复
求Origin或Matlab高手非线性拟合公式
已经有5人回复
关于matlab拟合
已经有4人回复
用Matlab做多变量非线性拟合求参数值,求各位大侠鼎力相助!
已经有3人回复
matlab对数据进行最小二乘拟合,若果数据为负数怎么拟合?急急急!
已经有3人回复
关于matlab微分、及非线性拟合问题
已经有5人回复
matlab数据拟合问题求助
已经有7人回复
非线性数据拟合的数学原理!!!!!????
已经有30人回复
用MATLAB或者ORIGIN怎么拟合复数数据
已经有10人回复
求指点 langmuir线性拟合 与 非线性拟合 不一致
已经有12人回复
1stopt或matlab如何求解以下的非线性方程并拟合出相应曲线?
已经有13人回复
MATLAB非线性优化拟合怎么改才正确
已经有3人回复
matlab非线性参数拟合问题
已经有7人回复

dingd
铁杆木虫 (职业作家)
- 博学EPI: 1
- 应助: 1641 (讲师)
- 金币: 15037.3
- 散金: 101
- 红花: 234
- 帖子: 3410
- 在线: 1223.5小时
- 虫号: 291104
- 注册: 2006-10-28
【答案】应助回帖
★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
闲人与懒猫: 金币+40, 博学EPI+1, ★★★很有帮助, 谢谢! 2015-01-29 20:14:43
闲人与懒猫: 金币+40, 博学EPI+1, ★★★很有帮助, 谢谢! 2015-01-29 20:14:43
|
均方差(RMSE):145.616909851711 残差平方和(SSE):190838.559912851 相关系数(R): 0.808436694770782 相关系数之平方(R^2): 0.653569889451906 确定系数(DC): 0.533303922309213 卡方系数(Chi-Square): 84.1949588985453 F统计(F-Statistic): 3.57120350124504 参数 最佳估算 ---------- ------------- a 0.000908846493918729 b 15363.6309483451 c 0.613132584682165 d -0.466403903584844 ====== 结果输出 ====== No 实测值y 计算值y 1 1047 1044.65871777826 2 1122 1294.24697276882 3 1233 947.632511671439 4 1188 1042.59182404487 5 1225 1263.95133737708 6 1148 1305.46096405217 7 1815 1813.28448120857 8 1185 1029.71059671882 9 1125 1215.31618898618 |
2楼2015-01-29 20:07:38

3楼2015-01-29 20:16:59

4楼2015-01-29 22:38:09













回复此楼