2011-09-26 43 views
0

我正在尋找一種在八度中生成簡單線性地圖的簡單方法。我需要的矩陣,稱之爲西格馬(n)的,通過下面的屬性來定義:對於所有矩陣(均爲n維),我們有以下等式:
sigma(n) * kron(A,B) = kron(B,A) * sigma(n)如何生成「交換」地圖又名「交換」地圖

對於例如,
sigma(2) = [1,0,0,0; 0,0,1,0; 0,1,0,0; 0,0,0,1]

sigma(n)有沒有簡單的功能?

對於我的目的n會相當小,小於50,所以效率不是問題。

編輯:現在正確的定義式

回答

1

我意識到這是不好的形式來回答自己的問題,但頭部少量搔抓,我設法產生明確的矩陣:

function sig = sigma_(n) 
    sig = zeros(n^2,n^2); 
    for i = 0:(n-1) 
    for j = 0:(n-1) 
     sig(i*n + j + 1, i+ (j*n) + 1) = 1; 
    endfor 
    endfor 
endfunction 

如果任何人有一個更合適的方法來做到這一點,我米仍然感興趣。

+0

+1 - 永遠不要錯過回答你自己的問題,只要一定要感謝那些也提供了答案的人(通過評論或對他們的答案進行投票)。另外,請務必用複選標記標記答案。 –

0

有趣的問題!

我不認爲你所問的是完全可能的。然而,這兩個Kronecker積是類似的,通過置換矩陣,即,一個具有:

kron(A,B) = P kron(B,A) P^{-1} 

這置換矩陣是這樣的:Px值是通過將X爲矩陣逐行,和堆疊獲得結果矩陣的列在一起。

編輯您提出的證明是不可能的。考慮矩陣

A = 1 1  B = 1 0 
    1 1   0 0 

隨後兩個克羅內克產品有:

1 1 0 0  1 0 1 0 
1 1 0 0  0 0 0 0 
0 0 0 0  1 0 1 0 
0 0 0 0  0 0 0 0 

假設你乘上向左任何矩陣西格瑪第一矩陣:最後兩列將保持在零,所以結果不能等於第二個矩陣。 QED。

+0

確實存在所需的矩陣(出於完全一般的原因),並且使用正確的索引方案可以很容易地寫下來。正如你所暗示的那樣,它是一個置換矩陣。我的問題是如何編寫一個簡短的函數來讓Octave明確產生矩陣。 –

+0

有多尷尬 - 你很正確。我的錯誤在於:所要求的屬性是'sig * kron(A,B)= kron(B,A)* sig',就像你上面所描述的那樣。我會修好它。 –