為什麼矩陣能分塊運算?

知乎首問。學了一學期線代,發現分塊運算非常有用。書上只是給出了一些死板的證明,沒有給出背後的原理。感覺是一種同構,求大神指點。


謝題主及 @七月邀……我就隨便說自己的理解了啊

線性映射可以看成矩陣,看的方法就是在domain取一組基,在codomain取一組基,然後把線性映射在domain的基上取值,再投影到codomain那邊的分量上,這樣得到的就是一個矩陣。而分塊矩陣這裡換個看法,基實際上是一個vector,但是一個vector和一個一維子空間是一樣的,所以這個過程就相當於是取了domain和codomain的一個一維的直和分解。而矩陣的分量就可以看成一個一維空間到一個一維空間的線性映射。但是一維的線性映射說白了就是數乘,所以矩陣的元素也就變成數了。但是如果把維數變一下,把domain分解成若干個未必全是一維的子空間的直和,codomain也是一樣,這個時候就可以用一些低維的線性變換類似地去表示最開始的那個線性變換,這樣就是分塊矩陣了。說矩陣分塊對應於子空間分解,倒不如說矩陣本身就是子空間分解之後的產物,但是分解都是一維的,而分塊矩陣的對應的子空間分解可以出現各種各樣的維數。

其實就是一樓的百度知道里的意思了。不過 @七月你後面給的那個鏈接為啥也鏈到百度知道了……

既然題主說是線性代數,那應該不是數學系的吧。。如果是這樣的話其實不必糾結太多,就單純地把矩陣分塊看成一種記號倒也沒啥問題。。


矩陣分塊對應於子空間分解。

你可以先看下矩陣計算的理論依據是什麼?為什麼矩陣的加、乘可以這樣算?為什麼矩陣可分塊計算?
然後這裡有一個用線性變換證明矩陣分塊乘法的例子:
linear algebra
如果我沒記錯的話,G. Strang的Linear Algebra公開課視頻里也說過,他打賭就算是高斯也沒法一眼看出來矩陣乘法能分塊。孟岩當年寫過三篇《理解矩陣》,一開始就提出來「矩陣乘法為什麼能分塊」這個問題,到最後也沒展開說,大概算是太監了……

我也一直期待誰來詳細地講一下矩陣分塊到底是怎麼回事。比如更詳細的解釋一下上面那個證明,最好能再講一下其他分塊運算(尤其是分塊求逆)的原理,不過看上去好難……

更多的我就不懂啦,幫你邀請幾個學數學的。


感覺沒什麼更一般化的原理, 或者說其實人類目前並不能恰當的認識這個事情(當然這只是我個人的淺薄看法, 因為想了很久沒想出來, 然後越想感覺越麻煩, 往往這種麻煩背後就是新數學)...
各位都說的有道理, 但是怎麼都覺得是各個不同的觀點, 交織到域上的向量空間, 才恰好有各種不同的
比如說子空間分解這事, 其實就和 @王箏說的一樣, 完全是一回事, 不過就是兩種語言. 並不能得到新的東西.
考慮係數環這事,發展潛力比較大. 但是, 這帶來的麻煩也很大.
用這個同構V_1 otimes V_2^*  simeq mathrm{Hom}_k(V_1, V_2) ,矩陣可以被看作兩個線性空間張量積的元素。所以其實你也能把V_i取成各種直和的樣子...然後分塊效果不就有了...
或者就是把V_i的係數環擴充,比如將係數域擴張為多項式環k[lambda],得到的就是lambda矩陣. 擴充成方陣環, 也是一種分塊.
進一步, 通過係數擴充, 我們可以試圖將係數擴充到很多k代數(類比於方陣環)的模上.但是這樣的困難真是處處都有.
比如第一個: 就是另一位匿名用戶的評論中提到的, 分塊階數不一樣怎麼辦. 這個時候我倒還覺得不是個大問題, 因為這給問題限制太大, 如果在這種情況下, 我們能得到比較合理的解釋的部分也就僅限於分塊乘法了, 如此那也沒啥大用, 就當初技巧也無妨...
限制到方陣的情形就比較好了, 能做的事情比較多.比如這個k代數如果是交換的, 那直接上交換代數, 很多東西大家都是well-known的, 像什麼算行列式(比如可以試一下用M_n(mathbb{C})的實表示(事實上這就是分塊)來定義M_n(mathbb{C})上的行列式.)啊, Nakayama"s啊, 包括如果我們把這個k代數取成方陣環的交換子代數, 這個時候起碼樣子就是分塊了, 大家都知道的有detBig[ egin{matrix}  
     A  B \
     C  D
end{matrix} Big ] =det(AD-BC)若ABCD都在這個交換子代數里 (Sylvester對此有個推廣)
但是啊往往這個k代數是非交換的, 這裡才體現了真正的麻煩之處.比如四元數代數mathbb{H}和方陣環. 就已經很尷尬了. 最簡單的例子, 還是定義行列式, 如何去定義M_n(mathbb{H})...通常的那種逆序數(n-form)的定義根本就行不通, 所以E.Artin用M_n(mathbb{H})的復表示來做了這個定義. 至於更深入的關於這種東西我就再有點都不懂了. 也許這種新數學能給量子計算提供有力工具?

總而言之我扯這麼多就是想告訴題主啊, 你這個問題是海底針啊, 可以說你想要多深的解釋就能有多深的解釋...老華當年沒想這麼多也能做出很多工作, 完全就是拿分塊當技巧用(華羅庚的學生會打洞). 所以題主啊, 人生苦短...還是別想太多, 如果柯南完結前能有一個完美的結果希望你能燒給我.

我不懂數學, 以上都是腦洞放屁, 大家放心來噴我啊.


窩來說說窩自己的理解吧。。有錯請指出。。

我們都知道能塞進矩陣的不僅僅是數字

只要是個環就能塞進去。。

然後方陣好像也可以構成環。。

...
評論有人指出半環就行了... 好吧我想的不是很明白= =.
匿了)


呢個。。。因為空間不是一坨攪在一起的。。。


矩陣乘法是基於矩陣非常基礎的定義,而分塊矩陣乘法的證明直接基於矩陣乘法的定義,所以分塊矩陣乘法的性質直接來源於矩陣及矩陣乘法定義的性質,並不需要線性變換,向量空間這些概念來支撐。書本上分塊矩陣乘法的證明過程就是其本質,只是描述的比較形式化,一下子看不出來。

下面談談我的理解

先看最簡單的n × 1矩陣(向量)乘法:

計算向量內積有兩個步驟:

  1. 向量元素一一對應後的乘積,
  2. 這些乘積的和

上圖展示了向量乘法的分塊,其中虛線代表劃分,配對關係平行於劃分,即劃分不影響配對關係。

向量分塊乘法成立的原因有兩點:
1向量分塊是有條件的,就是要維持元素間的一一對應關係,所以分塊後元素間乘積關係沒有變;
2分塊子向量內積的和等於不分塊向量的內積,這是源於加法的結合性;

以上觀點形式化的表達如下:

sum_{r=1}^n a_{ir}b_{rj} = a_{i1}b_{1j} + a_{i2}b_{2j} + cdots + a_{in}b_{nj}
=  (a_{i1}b_{1j} + cdots + a_{ip}b_{pj}) +   (a_{i(p+1)}b_{(p+1)j} + cdots + a_{ik}b_{kj})  + cdots +    (a_{i(k+1)}b_{(k+1)j} + cdots + a_{in}b_{nj}) .

再來看一般的矩陣乘法
矩陣的定義:一個m×n的矩陣是一個由mn列元素排列成的矩形陣列
矩陣乘法定義:A是n × m矩陣 ; B是 m × p 矩陣

從定義可以看出:乘積AB是n × p的矩形陣列,並且陣列中每個元素是兩個m維向量的內積,而由上可以知道向量分塊內積是成立的。
矩陣分塊乘法中對A的列的劃分其實是向量分塊內積的劃分的的二維拓展;注意對A列的劃分將決定對B行的劃分

對A的行的劃分是矩陣拼接的反操作;A的 k × p子矩陣與B的乘積就是每一行單獨與B乘,仍是k行;其實任意劃分都行,不一定要連續,比如將A的1,3,5...,等奇數行做一個劃分與B乘,只要將結果正確的放入1,3,5,...行就行了。 連續的分塊的好處就是只要自然的將結果矩陣拼接起來就可以了,得到形式上的簡便。
對A行的劃分不會決定對B列的劃分


綜上,我認為分塊矩陣的乘法的本質有兩點:

  1. 加法的結合性
  2. 矩陣可以看作是一系列元素拼接起來的,而劃分是其反操作,能很好的維持相對位置關係

其實你把矩陣轉換回方程組,然後將矩陣分塊乘轉換成方程組算= ̄ω ̄=多算幾次,然後你大概就懂就是這個感覺了(實測過,感覺要吐)
——————————————————————————分割線
其實數學定理上沒有什麼所謂的原理←_←不同於物理化學,某一個現象就有對應的原理....如果硬要說數學有原理o(╯□╰)o那就是那些所謂的數學趣題才有原理....像這樣的簡晰的定理,硬要找原理的話,那就是所謂的數感了。類似見到勾股定理,就感覺直角三角形就是那樣.....


矩陣緣起於線性方程組的求解,而一般求解線性方程組的方法就是將係數矩陣變為增廣矩陣,然後做初等行變換。那矩陣的「可分塊」,是不是可以看做增廣的一種逆運算?


不去研究死板的證明,而去想什麼原理,形象,哲學之類的東西,很容易走錯路的


我只是個搬運工,許以超的書給出了完整證明。


我說說我的理解哈,不用證明,想像一下就行。還不會用latex,盡量簡單描述,&<&>表示向量內積。

矩陣相乘AB=C,不論分不分塊,這裡都可以把左陣看成一行行向量從上而下堆砌(vi^T),右陣看成一列列向量從左自右堆砌(wj),則相乘後i行j列元素c(ij)只能由左陣的i行和右陣的j列貢獻:c(ij)=&,現在把vi^T左右分開成[viL^T | viR^T],wj上下分開成[wjU ; wjB](;表示換行,這是列向量), 那麼[viL^T | viR^T]*[wjU ; wjB]=&+&=c(ij),結果分成了兩個部分的和。

這就是說行列雖然斷開了,但是他們始終記憶著自己的信息(vi^T:我雖然斷開了,但我還是屬於i行。wj:生是j列的人,死是j列的鬼!)在v和w分開的片段按照對應位置拼合時候,全部在(ij)位置處工整地生成了c(ij)的分量他們加起來就是c(ij),每一個分量都是來自血統純正的i行片段和j列片段,相乘後每一個元素c(ij)的產生不會因為分塊而發生改變或混亂。


對於數學來說,被證明後就可以成為定理。詳情請參見丘維聲的《高等代數》,裡面有對矩陣分塊運算的證明,這就是為什麼矩陣能分塊運算。


推薦閱讀:

如何理解Bregman divergence?
怎樣學習隨機微分方程?需要哪些基礎?
為什麼許多規律極其簡單的數列卻仍未找到通項公式?
矩陣A的特徵值與奇異值大小關係?
如何看待線性代數中矩陣的位置?

TAG:數學 | 線性代數 | 矩陣 | 高等代數 |