2013-01-24 100 views
2

我有所述類型的方程c = Ax + By求解矩陣方程在MATLAB

c其中,xy是維度矢量說50000 X 1,和AB與尺寸50000 X 50000矩陣。

是否有在Matlab任何方式找到矩陣ABcxy已知?

我有大約100,000個樣本c,xyAB保持不變。

剛接觸Matlab,請幫忙。

+5

這是可能的數學?除非我是愚蠢的,這聽起來像你有比方程更多的未知數... – Dan

+0

丹:它是2個未知數,10萬個方程。我想這應該做的:)。 – Wli

+1

它看起來像我500萬unknows?矩陣A和B的每個元素? – Dan

回答

4

X是所有10萬x是你得到了集合(這樣的Xi列處等於x_i個向量)。
以同樣的方式,我們可以將YC分別定義爲ys和cs的2D集合。

你想什麼來解決是AB這樣

C = AX + BY 

你有2·50,000^2未知(的AB所有條目)和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,:)'; 

糾正我,如果我錯了......

編輯:
這裏似乎有一個關於維度的大驚小怪。所以,我會盡量讓它儘可能清楚。

型號:有兩種(未知)矩陣AB,每個尺寸50,000x50,000(總5E9未知)的。
的觀察是矢量的三重態:(xyc)每個這樣的載體具有50000層的元件(總共爲150,000觀測點在每個樣品)。潛在的模型假設是在該模型中通過c = Ax + By產生觀察。
任務:給出n觀測(即矢量 {(x_iy_ic_i)} _ i=1..nn三胞胎)任務是揭示AB。現在

,將各樣品(x_iy_ic_i)誘導在未知AB 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 ni列處等於觀察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'; 

檢查地面實況模型(AB)之間的差額,回收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 

這是接近足夠牛逼零。 (請記住,觀察結果是嘈雜的,解決方案是最小方案)。

+0

@woodchips:(1)請隨時編輯'pinv'行(2)更重要的是,如果有超過100,000個三元組的'x','y'和'c',爲什麼只能有一個以上的解? – Shai

+0

您比方程式有更多的未知數,它是一個線性系統,所以這個問題是不確定的,所以有無數的解決方案,我會再回來修復你的線路 – 2013-01-24 15:40:41

+0

@woodchips - 你有未知數2 * 50,000^2 = 5E9未知數(A中元素的數量''和'B')。您有'numel(C)'方程= 50,000(暗淡)x〜100,000(樣本數量)= 5E9 ** ** **樣本數量** ** **比您更多**有比未知更多的方程!這是一個超過**確定的系統,並沒有無限多的s olutions。 – Shai