24小时热门版块排行榜    

查看: 2857  |  回复: 10

dr1581

银虫 (小有名气)

[交流] origin8.5 自定义方程的非线性拟合问题 已有2人参与

求助,origin8.5非线性拟合

希望拟合方程q=(q0*b*p)/(1+b*p),其中q和p分别是因变量和自变量,q0和b是想要拟合出来的参数。

从tools-fitting function buildings一路进行设置,对于parameter选的是q0和b,但这时不清楚对于derived parameters怎么选?选这个有什么意义?

之后,我选了derived parameters,用的Q0和B,最后赋值让QO=q0, B=b,但这样最后通不过,说不能用一个derived parameters去计算另一个derived parameters。

貌似8.5和8的拟合方式相差挺大的,也看不到什么编程窗口之类的。

请大神们指点!
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

dr1581

银虫 (小有名气)


fegg7502: 金币+1, 鼓励交流 2014-01-29 07:58:59
我试了一下,可以完全不要derived parameter

但有个很大的问题,为什么我拟合一个稍微复杂一点的方程,虽然最后通过设定初值,使得R2很好,有4个9,但是各个参数的标准差非常大?

方程是lnP=ln(N)+(1/T)*(a0+a1*N+a2*N^2+a3*N^3)+(b0+b1*N+b2*N^2),其中自变量是N,因变量是lnP,T是温度设为定值,其余a和b等是需要拟合的参数。
发现拟合结果和初值关系很大,虽然参考文献,但似乎仍然得不到好结果。

拟合结果见上传的图片,具体数据如下。也希望大神们能帮助看看啊!

拟合数据(左边是N,右边是lnP)
0.0168175022        0.1040992373
0.0240559948        0.5300625763
0.042118893        1.0781495772
0.0930130501        1.853428025
0.1733642532        2.5156171944
0.3127851987        3.1841662834
0.553265158        3.8766403338
0.772978586        4.3101619448
0.9284523442        4.5576591297
1.1249832132        4.8253540394
1.279010958        5.0096052024
1.42002795        5.1631805076
1.5513584861        5.2953399159
1.6785145274        5.4154317081
1.7962369417        5.520579487
1.9097339578        5.616860205
2.0181969544        5.7049563053
2.124155131        5.7878900204
2.2229793298        5.8627374436
2.3105427549        5.9265853918
2.4011390267        5.991182067
2.4885272481        6.0516817301
2.5730899466        6.1089160391
2.6547437596        6.1629700566
2.7335961087        6.213997927
2.8101883513        6.2628204124
2.8847415508        6.3093537102
2.9571389754        6.3539343141
3.0275268828        6.396456012
3.0963376808        6.437319232
3.1631638031        6.4765799707
3.2284972448        6.5142962088
3.2923311247        6.5507435387
3.3543795218        6.5858436108
3.4146488384        6.6196405772
3.4735168718        6.6520169999
origin8.5 自定义方程的非线性拟合问题
fit.png

[ Last edited by dr1581 on 2014-1-27 at 22:14 ]
2楼2014-01-27 16:57:42
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

dingd

铁杆木虫 (职业作家)

★ ★ ★
小木虫: 金币+0.5, 给个红包,谢谢回帖
fegg7502: 金币+2, 应助指数+1 2014-01-29 07:59:08
你的公式有问题,存在过拟合现象:

原公式:lnP=ln(N)+(1/T)*(a0+a1*N+a2*N^2+a3*N^3)+(b0+b1*N+b2*N^2);
完全可以简化等同于:
lnP=ln(N)+(1/T)*(a0+a1*N+a2*N^2+a3*N^3);

原公式有完全多组解,简化后解唯一,拟合效果也完全一样。
3楼2014-01-28 18:59:29
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

dr1581

银虫 (小有名气)

引用回帖:
3楼: Originally posted by dingd at 2014-01-28 18:59:29
你的公式有问题,存在过拟合现象:

原公式:lnP=ln(N)+(1/T)*(a0+a1*N+a2*N^2+a3*N^3)+(b0+b1*N+b2*N^2);
完全可以简化等同于:
lnP=ln(N)+(1/T)*(a0+a1*N+a2*N^2+a3*N^3);

原公式有完全多组解,简化后解唯 ...

理论是这样,但公式分为这三大项是有物理意义的,所以ai与bi意义不同,不能简化
4楼2014-01-29 09:27:26
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

dingd

铁杆木虫 (职业作家)


小木虫: 金币+0.5, 给个红包,谢谢回帖
如果ai和bi都有物理意义,那就应该根据物理意义给每个参数加上范围约束,否则会有无穷多组解。
5楼2014-01-29 09:38:16
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

戴钢盔的猪头

木虫 (知名作家)


小木虫: 金币+0.5, 给个红包,谢谢回帖
2楼说的对,从数值计算上来说应该先合并取消冗余项。最后计算结果再按照比例自行分配a,b。这样做并没有否定那几项的物理意义。

[ 发自手机版 http://muchong.com/3g ]
6楼2014-01-29 09:42:55
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

dr1581

银虫 (小有名气)

引用回帖:
5楼: Originally posted by dingd at 2014-01-29 09:38:16
如果ai和bi都有物理意义,那就应该根据物理意义给每个参数加上范围约束,否则会有无穷多组解。

非常难,各个文献报道的参数也不同,约束大致范围后,反而使得效果更差了,连基本形状都拟合不出来了。。。
7楼2014-02-01 00:41:10
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

dr1581

银虫 (小有名气)

引用回帖:
6楼: Originally posted by 戴钢盔的猪头 at 2014-01-29 09:42:55
2楼说的对,从数值计算上来说应该先合并取消冗余项。最后计算结果再按照比例自行分配a,b。这样做并没有否定那几项的物理意义。

比如我先不要b,确实可以拟合得很好,但之后如何再去分配a和b呢?
8楼2014-02-01 00:41:49
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

戴钢盔的猪头

木虫 (知名作家)


小木虫: 金币+0.5, 给个红包,谢谢回帖
引用回帖:
8楼: Originally posted by dr1581 at 2014-02-01 00:41:49
比如我先不要b,确实可以拟合得很好,但之后如何再去分配a和b呢?...

T 是定值,你确定你不会分配!?

[ 发自手机版 http://muchong.com/3g ]
9楼2014-02-01 11:05:02
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

dr1581

银虫 (小有名气)

引用回帖:
9楼: Originally posted by 戴钢盔的猪头 at 2014-02-01 11:05:02
T 是定值,你确定你不会分配!?
...

我感觉不太可能这样分配吧,这样均匀成比例的拆分。
我感觉这样做,人为性太强,物理意义不太对劲了
况且,理论上,最开始就用更多的参数去拟合,才能找到更多的条件,从而更细致地优化这条曲线。即使实际给出的参数多了,参数间有依赖关系,那么应该也无所谓啊,软件可以就依照这个依赖关系确定变量的值,比如b=3a,那么它就按b=3,a=1,b=6,a=2一个个去回归优化,也没问题啊,为什么会导致整个结果都变差呢
10楼2014-02-04 22:38:11
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 dr1581 的主题更新
普通表情 高级回复 (可上传附件)
信息提示
请填处理意见