24小时热门版块排行榜    

CyRhmU.jpeg
查看: 1389  |  回复: 3

不曾走远

新虫 (初入文坛)

[求助] 跪求: matlab三元非线性回归,请指教。。。

跪求: matlab三元非线性回归,请指教。。。
有一组数据,进行三元非线性回归分析,Matlab怎么编程,有识之虫请指教,多谢!
y=a(1)*x1.^(a(2)).*(1+a(3)*ln(x2)).*exp(-a(4)*x3))
x1、x2、x3,为三个自变量,a(1)、a(2)、a(3)、a(4)为待定系数。
数据取了一部分,如下:
  y       x1    x2     x3
644.8 0.78 23795 143
633.1 0.80 16673 140
678.0 0.80 47284 149
677.5 0.80 79812 152
621.7 0.81 10752 137
658.5 0.82 24781 150
629.0 0.83 5126  137
641.9 0.83 14673 143
683.1 0.83 32167 152
632.6 0.86 9025  141

跪求用matlab将其4个待定系数求出来!多谢大侠相助!
回复此楼

» 猜你喜欢

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

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

dingd

铁杆木虫 (职业作家)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★
感谢参与,应助指数 +1
不曾走远: 金币+5, ★★★很有帮助 2012-10-15 22:26:58
不曾走远: 金币+3, ★★★很有帮助 2012-10-15 22:27:51
拟合问题用1stOpt更简单些,不用猜初值:
CODE:
Variable y,x1,x2,x3;
Function y=a1*x1^(a2)*(1+a3*ln(x2))*exp(-a4*x3);
Data;
//y       x1    x2     x3
644.8 0.78 23795 143
633.1 0.80 16673 140
678.0 0.80 47284 149
677.5 0.80 79812 152
621.7 0.81 10752 137
658.5 0.82 24781 150
629.0 0.83 5126  137
641.9 0.83 14673 143
683.1 0.83 32167 152
632.6 0.86 9025  141

均方差(RMSE): 5.82535725444792
残差平方和(SSE): 339.34787141949
相关系数(R): 0.96266480547321
相关系数之平方(R^2): 0.926723527696774
决定系数(DC): 0.926722803069674
卡方系数(Chi-Square): 0.257128283384663
F统计(F-Statistic): 27.2936204410447

参数        最佳估算
----------        -------------
a1        293.462825876497
a2        -0.0349876564552783
a3        0.00423477464786676
a4        -0.00517038892366596

jv1.jpg

2楼2012-10-15 16:33:36
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

不曾走远

新虫 (初入文坛)

引用回帖:
2楼: Originally posted by dingd at 2012-10-15 16:33:36
拟合问题用1stOpt更简单些,不用猜初值:

Variable y,x1,x2,x3;
Function y=a1*x1^(a2)*(1+a3*ln(x2))*exp(-a4*x3);
Data;
//y       x1    x2     x3
644.8 0.78 23795 143
633.1 0.80 16673 140
678.0 0 ...

谢谢啊!  这种方法确实很方便。(matlab也应该能做出来,可能要麻烦些)。多谢了!
3楼2012-10-15 18:23:57
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

不曾走远

新虫 (初入文坛)

引用回帖:
2楼: Originally posted by dingd at 2012-10-15 16:33:36
拟合问题用1stOpt更简单些,不用猜初值:

Variable y,x1,x2,x3;
Function y=a1*x1^(a2)*(1+a3*ln(x2))*exp(-a4*x3);
Data;
//y       x1    x2     x3
644.8 0.78 23795 143
633.1 0.80 16673 140
678.0 0 ...

谢谢啊!  这种方法确实很方便。(matlab也应该能做出来,可能要麻烦些)。多谢了!
4楼2012-10-15 22:25:25
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 不曾走远 的主题更新
信息提示
请填处理意见