多参数非线性拟合的程序调试
请教下各位大神,我想用1stopt实现文献里的参数拟合,函数、参数、数据如下图:
我自己用1stopt编写的程序如下:
Parameter DGk, C, b, A, Dk;
Constant h=6.62606896E-34, k=1.3806488E-23, T=293.15;
Variable X, Y;
Function Y=(h/(2*k*T))*exp(DGk/T-C*X^(2*b)/(2*T))*Ln(((1+exp( (Dk-C*X^(2*b))/T ))^(-1))/(((1+exp( (Dk-C*X^(2*b))/T))^(-1))-A))/Cosh((Dk-C*X^(2*b))/(2*T));
Data;
//X Y
185.1791 396928.7
180.1024 536762.9
175.0256 1204571
170.0921 2855239
160.2047 7160981
目前的问题是,不能得到和文献中一致的唯一解,请教下各位老师、大神们。多谢多谢啦@beefly@月只蓝 返回小木虫查看更多
今日热帖
文献那个是origin拟合的吧
你的数据太大了,你将y数据除以 1E6, 然后将模型也除以 1E6 , y=f(x)/1E6 再拟合试试看看。
谢谢您指点。按您说的方法试过后,还是不行。。。
结果不唯一可能是点数太少了。
你用1stOpt拟合的时候,限定一下参数的范围。
好的,我再试试。拟合最优解有太多不确定性。。。
多谢啦。
你这些待拟合参数都是有物理意义的,在保证自己拟合的结果有意义的前提下,比较自己拟合结果和文献结果的决定系数,如果自己拟合结果更好,果断采用自己的。不要盲目相信文献。
感谢您的回复,您说的很正确啊。
但是如果这些参数不能得到唯一解,多次拟合的结构也都不同,请问此时怎么取舍呢?谢谢
用文献的结果,拟合结果为:
均方差(RMSE): 353560.527784683
残差平方和(SSE): 625025234036.917
相关系数(R): 0.995800183619893
相关系数之平方(R^2): 0.991618005697413
决定系数(DC): 0.980334238729045
用软件尝试可轻易获得更优:
均方差(RMSE): 134795.389791354
残差平方和(SSE): 90848985545.0159
相关系数(R): 0.998657427874081
相关系数之平方(R^2): 0.997316658248075
决定系数(DC): 0.997141532270789
结果取舍问题,可以试着通过设置参数取值范围、整理公式、公式变化降低公式中参数数量级差异、选择最优决定系数对应的结果。
就重复文献而言,你已经重复出来了
,