24小时热门版块排行榜    

查看: 1407  |  回复: 8

wodaifei

银虫 (小有名气)

[求助] 非线性回归参数..急求帮助!!谢谢

各位学哥学姐:小弟刚开始学matlab(菜鸟级别),遇到问题求帮助:
公式:lny=a+b/x+clnx                求解a,b,c
x        y       
283.15        5.37997
293.15        4.79126
303.15        4.23979        ,,,,,,,
313.15        3.80361       
323.15        3.42896       
333.15        3.10245       
343.15        2.81782       
353.15        0.03688       
按非线性方式回归最后运行出来出现:
Matrix dimensions must agree.
对于这个问题要想得到参数该怎么解决啊,
小弟很着急,各位学哥学姐帮帮忙啊
万分感谢!!!!
回复此楼
要想拥有一切,就要让自己变得足够优秀!!!
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

xiuyouxu

铁杆木虫 (职业作家)

【答案】应助回帖


soliton923(金币+1): 谢谢参与~~ 2011-06-29 20:17:53
wodaifei(金币+1): 2011-06-30 10:14:53
Matrix dimensions must agree.

矩阵维数不一致, 检查矩阵运算是否有问题.
忘记自己,忘记一切烦恼(欢迎访问我的网站兆字节:http://www.mathbeta.com/)
2楼2011-06-29 16:44:48
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

dingd

铁杆木虫 (职业作家)

【答案】应助回帖


soliton923(金币+1): 谢谢参与~~ 2011-06-29 20:18:05
wodaifei(金币+1): 2011-06-30 08:39:53
你把方程“lny=a+b/x+clnx”改为:

y=exp(a+b/x+c*ln(x))

试试!
3楼2011-06-29 20:08:47
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

pengyehui

木虫 (正式写手)

【答案】应助回帖

wodaifei(金币+2): 2011-06-30 10:14:38
检查数据的输入吧!
三楼的建议值得商榷,因为原来问题已经可以线性化了,按三楼的方法,把问题搞成非线性的,复杂了!商榷而已!
4楼2011-06-29 22:07:59
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

wodaifei

银虫 (小有名气)

引用回帖:
Originally posted by pengyehui at 2011-06-29 22:07:59:
检查数据的输入吧!
三楼的建议值得商榷,因为原来问题已经可以线性化了,按三楼的方法,把问题搞成非线性的,复杂了!商榷而已!

这应该不是线性吧,否则应该能算出来,我就按照正确步骤一步一步来的,最后出现以上问题,我也知道是矩阵的问题,可小弟就是不知道该怎么改。。。
要想拥有一切,就要让自己变得足够优秀!!!
5楼2011-06-30 08:43:53
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

pengyehui

木虫 (正式写手)

【答案】应助回帖


lovibond(金币+1): 鼓励交流 2011-07-01 08:32:14
令Y=lny; X1=1/x; X2=lnx
不就线性了吗
6楼2011-06-30 09:38:33
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

wodaifei

银虫 (小有名气)

引用回帖:
Originally posted by pengyehui at 2011-06-30 09:38:33:
令Y=lny; X1=1/x; X2=lnx
不就线性了吗

非常感谢啊,呵呵,小弟愚昧。。。
要想拥有一切,就要让自己变得足够优秀!!!
7楼2011-06-30 10:14:27
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

dingd

铁杆木虫 (职业作家)

【答案】应助回帖

wodaifei(金币+1): 2011-06-30 19:20:44
如果原问题是非线性的,不建议线性化后求解,因为误差有可能非常大,以此题为例,线性化后公式及数据:
y1=a+b*x1+c*x2;
数据:
x1        x2        y1
0.00353169698039908        5.64597679255981        1.68268279794997
0.00341122292341805        5.68068442341022        1.56679342484846
0.0032986970146792        5.71422773251774        1.44451373971541
0.00319335781574325        5.74668230897142        1.33595061576793
0.00309453814018258        5.7781166117089        1.23225700820423
0.0030016509079994        5.80859283900855        1.13219212193131
0.00291417747340813        5.83816766935464        1.03596353634767
0.00283165793572137        5.86689289585493        -3.30008588029374

拟合结果:
a        2392.53187520471
b        -107971.570616336
c        -356.014799219908

直接非线性拟合:
公式: y=exp(a+b/x+c*ln(x))
数据:
x        y
283.15        5.37997
293.15        4.79126
303.15        4.23979
313.15        3.80361
323.15        3.42896
333.15        3.10245
343.15        2.81782
353.15        0.03688

结果:
a        392.19036548745
b        -16708.6338358188
c        -58.7228208089647

非线性直接误差平方和:3.26128834414432
线性化后求得参数代入原方程误差平方和: 30.7310566203494

误差是惊人的。
8楼2011-06-30 15:48:50
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

wodaifei

银虫 (小有名气)

引用回帖:
Originally posted by dingd at 2011-06-30 15:48:50:
如果原问题是非线性的,不建议线性化后求解,因为误差有可能非常大,以此题为例,线性化后公式及数据:
y1=a+b*x1+c*x2;
数据:
x1        x2        y1
0.00353169698039908        5.64597679255981        1.68268279794997
0.0034112 ...

哥,真的很感谢啊。。。你说的对,我做的时候也感觉有问题。。同学给的数据确实存在问题,不过方法是对的。。。再次感谢!!!
要想拥有一切,就要让自己变得足够优秀!!!
9楼2011-06-30 19:22:09
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 wodaifei 的主题更新
信息提示
请填处理意见