我有所述類型的方程c = Ax + By
求解矩陣方程在MATLAB
c
其中,x
和y
是維度矢量說50000 X 1,和A
和B
與尺寸50000 X 50000矩陣。
是否有在Matlab任何方式找到矩陣A
和B
時c
,x
和y
已知?
我有大約100,000個樣本c
,x
和y
。 A
和B
保持不變。
剛接觸Matlab,請幫忙。
我有所述類型的方程c = Ax + By
求解矩陣方程在MATLAB
c
其中,x
和y
是維度矢量說50000 X 1,和A
和B
與尺寸50000 X 50000矩陣。
是否有在Matlab任何方式找到矩陣A
和B
時c
,x
和y
已知?
我有大約100,000個樣本c
,x
和y
。 A
和B
保持不變。
剛接觸Matlab,請幫忙。
設X
是所有10萬x
是你得到了集合(這樣的X
的i
列處等於x_i
個向量)。
以同樣的方式,我們可以將Y
和C
分別定義爲y
s和c
s的2D集合。
你想什麼來解決是A
和B
這樣
C = AX + BY
你有2·50,000^2未知(的A
和B
所有條目)和numel(C)
方程。因此,如果數據向量的數量是100,000,那麼你有一個解決方案(直到取決於線性的樣本)。如果您有超過10萬個樣本,您可以尋求最小二乘法解決方案。
重新書寫:
C = [A B] * [X ; Y] ==> [X' Y'] * [A';B'] = C'
所以,我認爲
[A' ; B'] = pinv([X' Y']) * C'
在MATLAB:
ABt = pinv([X' Y']) * C';
A = ABt(1:50000,:)';
B = ABt(50001:end,:)';
糾正我,如果我錯了......
編輯:
這裏似乎有一個關於維度的大驚小怪。所以,我會盡量讓它儘可能清楚。
型號:有兩種(未知)矩陣A
和B
,每個尺寸50,000x50,000(總5E9未知)的。
的觀察是矢量的三重態:(x
,y
,c
)每個這樣的載體具有50000層的元件(總共爲150,000觀測點在每個樣品)。潛在的模型假設是在該模型中通過c = Ax + By
產生觀察。
任務:給出n
觀測(即矢量 {(x_i
,y_i
,c_i
)} _ i=1..n
的n
三胞胎)任務是揭示A
和B
。現在
,將各樣品(x_i
,y_i
,c_i
)誘導在未知A
和B
50000個方程形式c_i = Ax_i + By_i
的。 如果樣本數量n
是大於大於100,000,則有超過50,000 * 100,000(> 5e9)個方程式,系統是超過約束條件。
要編寫系統以矩陣形式我提出的所有觀察到堆疊矩陣:
X
50000 X n
以其i
第柱等於觀察x_i
Y
的大小爲50,000 x n
,其i
第列等於觀察到的y_i
C
的大小爲50,000 x n
其i
列處等於觀察c_i
有了這些矩陣,我們可以寫出模型:
C = A * X + B * Y
我希望這將清除的東西了一點點。
謝謝@丹和@woodchips爲您的興趣和啓發性評論。
EDIT(2):
提交下面的代碼來octave。在這個例子中,而不是50000尺寸我只有2個工作,而不是n=100,000
觀察我定居n=100
:
n = 100;
A = rand(2,2);
B = rand(2,2);
X = rand(2,n);
Y = rand(2,n);
C = A*X + B*Y + .001*randn(size(X)); % adding noise to observations
ABt = pinv([ X' Y']) * C';
檢查地面實況模型(A
和B
)之間的差額,回收ABt
:
ABt - [A' ; B']
產量
ans =
5.8457e-05 3.0483e-04
1.1023e-04 6.1842e-05
-1.2277e-04 -3.2866e-04
-3.1930e-05 -5.2149e-05
這是接近足夠牛逼零。 (請記住,觀察結果是嘈雜的,解決方案是最小方案)。
@woodchips:(1)請隨時編輯'pinv'行(2)更重要的是,如果有超過100,000個三元組的'x','y'和'c',爲什麼只能有一個以上的解? – Shai
您比方程式有更多的未知數,它是一個線性系統,所以這個問題是不確定的,所以有無數的解決方案,我會再回來修復你的線路 – 2013-01-24 15:40:41
@woodchips - 你有未知數2 * 50,000^2 = 5E9未知數(A中元素的數量''和'B')。您有'numel(C)'方程= 50,000(暗淡)x〜100,000(樣本數量)= 5E9 ** ** **樣本數量** ** **比您更多**有比未知更多的方程!這是一個超過**確定的系統,並沒有無限多的s olutions。 – Shai
這是可能的數學?除非我是愚蠢的,這聽起來像你有比方程更多的未知數... – Dan
丹:它是2個未知數,10萬個方程。我想這應該做的:)。 – Wli
它看起來像我500萬unknows?矩陣A和B的每個元素? – Dan