24小时热门版块排行榜    

查看: 2405  |  回复: 12
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

zjs12309

金虫 (小有名气)

[求助] matlab非线性最小二乘法求解 已有1人参与

MATLAB菜鸟一枚,刚刚接触,看了一些教程,还不是很懂。求以下MATLAB命令:

A=[9.9918 34.8711         27.6458 3.3942 0.7045 2.6463 10.3137 0.8961 1.0735 18.1463 8.0727 6.9464]
B=[10.2507 34.7255 26.7698         2.4635 1.5682 2.6000 9.3137 1.6580 1.8725 19.1463 8.4000 7.5714]
C=[10.0409 35.1425 27.1349 2.9538 1.7045 2.8021 9.6078 1.8398 1.9608 19.0366 9.0364 8.5357]
D=[9.4414 34.9618 26.7888 2.8404 1.5114 3.6000 9.5882 1.8961 2.0735 18.4878 8.4727 7.8571]
E=[10.4414 35.7255 27.7698 3.4635 1.2992 2.6105 9.6863 1.4459 1.6961 19.9760 9.7270 7.5357]

Y=[10.0409 34.9618 27.1349 2.9538 1.5114 2.6463 9.6078 1.658 1.8725 19.0366 8.4727 7.5714]

Y=aA+bB+cC+dD+eE
且a+b+c+d+e=1.0000且a, b, c, d, e均≥0。

如何通过MATLAB用非线性最小二乘法求解a, b, c, d, e?
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zjs12309

金虫 (小有名气)

引用回帖:
10楼: Originally posted by dingd at 2014-04-09 11:05:10
约束不满足:aa+bb+cc+dd+ee=1;...

那要怎样才能满足该约束呢?求赐教,下面是我的代码。

Variable A,B,C,D,E,Y;
ParameterDomain = [0,];
Function Y=aa*A+bb*B+cc*C+dd*D+ee*E;
         aa+bb+cc+dd+ee=1;
Data;
9.9918        10.2507        10.0409        9.4414        10.4414        10.0409
34.8711        34.7255        35.1425        34.9618        35.7255        34.9618
27.6458        26.7698        27.1349        26.7888        27.7698        27.1349
3.3942        2.4635        2.9538        2.8404        3.4635        2.9538
0.7045        1.5682        1.7045        1.5114        1.2992        1.5114
2.6463        2.6000        2.8021        3.6000        2.6105        2.6463
10.3137        9.3137        9.6078        9.5882        9.6863        9.6078
0.8961        1.6580        1.8398        1.8961        1.4459        1.658
1.0735        1.8725        1.9608        2.0735        1.6961        1.8725
18.1463        19.1463        19.0366        18.4878        19.976        19.0366
8.0727        8.40000        9.0364        8.4727        9.7270        8.4727
6.9464        7.5714        8.5357        7.8571        7.5357        7.5714
12楼2014-04-09 11:48:24
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 13 个回答

dingd

铁杆木虫 (职业作家)


fegg7502: 金币+1, 鼓励交流 2014-04-04 08:16:23
1stOpt求解:
CODE:
Variable A,B,C,D,E,Y;
ParameterDomain = [0,];
Function Y=aa*A+bb*B+cc*C+dd*D+ee*E;
         aa+bb+cc+dd+ee=1;
Data;
A=[9.9918 34.8711         27.6458 3.3942 0.7045 2.6463 10.3137 0.8961 1.0735 18.1463 8.0727 6.9464];
B=[10.2507 34.7255 26.7698         2.4635 1.5682 2.6000 9.3137 1.6580 1.8725 19.1463 8.4000 7.5714];
C=[10.0409 35.1425 27.1349 2.9538 1.7045 2.8021 9.6078 1.8398 1.9608 19.0366 9.0364 8.5357];
D=[9.4414 34.9618 26.7888 2.8404 1.5114 3.6000 9.5882 1.8961 2.0735 18.4878 8.4727 7.8571];
E=[10.4414 35.7255 27.7698 3.4635 1.2992 2.6105 9.6863 1.4459 1.6961 19.9760 9.7270 7.5357];
Y=[10.0409 34.9618 27.1349 2.9538 1.5114 2.6463 9.6078 1.658 1.8725 19.0366 8.4727 7.5714];

均方差(RMSE):0.0843074888689747
残差平方和(SSE):0.0852930321527076
相关系数(R): 0.999969172296392
相关系数之平方(R^2): 0.999938345543131
确定系数(DC): 0.999935065410494
卡方系数(Chi-Square): 0.0154533630540416
F统计(F-Statistic): 26950.1973188213
约束条件: aa+bb+cc+dd+ee-1 = 1.572435515E-010

参数        最佳估算
----------        -------------
aa        0.154698357748344
bb        0.484572362128209
cc        0.121606254983523
dd        0.119151975959729
ee        0.119971049337439

====== 结果输出 ======

No        实测值y        计算值y
1        10.0409        10.1115843894597
2        34.9618        34.9468605559334
3        27.1349        27.0719491461721
4        2.9538        2.83198073783884
5        1.5114        1.41212191670732
6        2.6463        2.75215083048252
7        9.6078        9.58157118918759
8        1.658        1.56516756455979
9        1.8725        1.76242049883334
10        19.0366        18.9993398425564
11        8.4727        8.59462138062438
12        7.5714        7.6217371923488
2楼2014-04-03 15:42:26
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zjs12309

金虫 (小有名气)

引用回帖:
2楼: Originally posted by dingd at 2014-04-03 15:42:26
1stOpt求解:

Variable A,B,C,D,E,Y;
ParameterDomain = ;
Function Y=aa*A+bb*B+cc*C+dd*D+ee*E;
         aa+bb+cc+dd+ee=1;
Data;
A=;
B=;
C=;
D=;
E=;
Y=;


均方差(RMSE):0.0843074888689747
...

thx,这样算出来的离差平方和会是最小的么?
3楼2014-04-04 00:32:05
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

dingd

铁杆木虫 (职业作家)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
感谢参与,应助指数 +1
zjs12309: 金币+20, ★★★很有帮助 2014-04-22 16:56:55
满足你约束条件的前提下是最优的。
4楼2014-04-04 09:02:37
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
信息提示
请填处理意见