作者Achui (垂仔)
看板MATLAB
標題Re: [問題] 有條件的利用最小平方法求最佳解
時間Sat May 18 16:03:48 2013
※ 引述《Achui (垂仔)》之銘言:
: 標題: [問題] 有條件的利用最小平方法求最佳解
: 時間: Sat May 18 12:07:13 2013
:
: A * X = B
: A:已知的資料,是一個10*3大小的矩陣
: B:已知的資料,是一個10*1大小的矩陣
: X:欲求解的3*1大小的轉換矩陣
:
: 利用最小平方法求出X的最佳解: X=A\B
: 但若加上一個條件: X的元素和=1
: 該怎麼做呢??
: --
:
※ 發信站: 批踢踢實業坊(ptt.cc)
: ◆ From: 220.132.80.215
: → aia:X改成[x1 x2 1-x1-x2]之後重算一次A,B矩陣,A變10*2矩陣 05/18 13:31
抱歉,不太懂a大的意思
A=[22 18 12
67 49 40
28 32 46
19 22 13
44 43 65
58 81 77
68 39 17
19 21 49
57 25 21
16 11 18];
B=[ 44
125
32
31
54
34
174
23
122
32];
X=A\B=[3.2208 ; -1.4597 ; -0.3583]
然後再令X2=[3.2208 ; -1.4597 ; 1-3.2208-(-1.4597)]是嗎?
接下來要如何重算A B得到一個10*2的A矩陣?
: 推 profyang:樓上你這樣跟A多加一個row:[1 1 1]然後B多加個元素[1] 05/18 14:22
: → profyang:有什麼不同?這樣最小方差出來的X三個元素還是不一定會 05/18 14:23
: → profyang:滿足相加等於1 05/18 14:23
: 推 profyang:ㄟ等等好像確實不一樣... 05/18 14:28
: 推 profyang:1F的方法應該是正解 但是這樣等於還要自己重組矩陣 05/18 14:51
: → profyang:還蠻好奇有沒有更方便的做法= =+ 05/18 14:51
: → profyang:應該說更容易寫成code的做法 05/18 14:52
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.132.80.215
1F:→ aia:a1*x1+a2*x2+a3*(1-x1-x2)=b => (a1-a3)*x1+(a2-a3)*x2=b-a3 05/18 16:07
2F:→ aia:用上面的式子組成新的係數矩陣之後再反除 05/18 16:08
3F:→ aia:得到x1,x2後用總和為1之關係式算x3即可 05/18 16:09
4F:→ Achui:了解了!! 謝謝幫忙我在來研究一下fmincon的解法~ 05/18 16:11
5F:→ jenhom:CF = @(x) sum((B-A*x).^2); x0=[1;0;0]; 05/19 01:11
6F:→ jenhom:yy=fmincon(CF,x0,[],[],[1 1 1],1) 05/19 01:11
7F:→ jenhom:還需要optimize一下 05/19 01:12