數學家最初發明行列式和矩陣是為了解決什麼問題?
怎麼從本質上去理解矩陣和行列式?它們之間有什麼聯繫?它們有什麼實際應用?尤其是在計算機方面有哪些應用?
下面是我們《馬同學線性代數基礎班》的節選,正好回答這個問題的一部分:「矩陣、矩陣乘法的由來是什麼?「
矩陣、矩陣乘法最初的目的是為了解線性方程組。
在現實生活中有很多線性方程組,比如:
1 色彩空間
電視機成像的原理大概是,通過一把電子槍,把電子打到屏幕上:
不過對於這樣的彩色圖片:
根據之前對色彩空間的介紹,我們以 為基,可張成整個色彩空間。
所以,我們可以使用三把電子槍,分別是 ,來呈現出彩色的畫面:
但是,電視台那邊過來的信號不是 ,而是 ,其中 是對色彩空間的另外一種分解方式。
這點從我們電視背後的介面就可以看出,在下圖中標註的色差介面,即 ,其實就是 (兩者的區別不是在色彩分解上,而是電視成像技術中的「逐行掃描」以及「隔行掃描」。也有資料說,一個是數字信號,一個是模擬信號,僅供參考):
下面是之前彩圖的 分解,第二幅圖就是灰度圖,也就是 :
這是有原因的,因為最早的電視是黑白電視,升級到彩色電視,但是依然要保持對黑白電視的兼容, 中的 正好是灰度圖,可以讓黑白電視成像。
假如你是黑白電視,背後應該就只有一個視頻輸入介面,只需插入電視台過來的 信號就可以觀看了。
但是,如果是彩色電視,那麼得到電視台傳過來的 信號,就需要解如下方程組得到 ,給三把電子槍使用:
這個方程組怎麼解呢?
2 高斯消元法
已知 求 實際是一個線性方程組,解這種方程組有一個通用的辦法,高斯消元法。
2.1 高斯消元法的目標
之前的方程不好計算了,我們舉一個簡單的例子:
從幾何上來講,兩個方程都是直線,求解方程組就是找到兩根直線的交點:
因為都是直線,所以我們稱為線性方程組。
求解的思路幾乎是句廢話,即找到交點的 坐標:
也就是把方程化成這個樣子:
這就是高斯消元法的目標。
2.2 高斯消元法的思路
要達到這個目標,高斯消元法的思路是,第一行把這些給消了:
第二行把這些給消了:
第三行反過來,把這些給消了:
第二行,把這些給消了:
最後,達到目標:
2.3 例子
下面我們看看怎麼用高斯消元法來解。
先標註一下方程組, 表示第一行, 表示第二行:
表示新的第一行, 表示新的第二行,我們進行以下操作:
其中, 的意思就是:
我們得到新的方程組:
按照這個思路,完整的解題過程如下:
至此,解出答案:
3 標記法
阿瑟·凱萊對於看似簡單的高斯消元法進行了研究,得出了驚人的結果。
他當時研究矩陣的動機出於對線性方程組計算的簡化。
比如,下面是一個線性方程組:
對於這樣一個線性方程組,在固定未知數的順序( 出現在第一個位置, 出現在第二個位置,常數在等號右邊)後,且保證每個未知數都出現(不出現時,係數為0),方程組就只需要係數來表示了。
按照上面的規定,方程組可以簡寫為如下數塊:
3.1 練習題
:將
用數塊來表示。
:
在保證順序且每個未知數都出現的原則下,原方程組可改寫為:
因此,方程組寫成數塊形式為:
4 凱萊的高斯消元法
我們開始用凱萊的方法進行高斯消元法。
4.1 方程簡化
還是解之前的方程組:
將方程組簡化為數塊:
之前說過,高斯消元法的目標是:
寫完整點就是:
因此我們的目標就是要把數塊變成下面這個樣子:
對應之前的高斯消元法:
得到結果:
正如你看到的,解起來並不複雜,但是要將過程描述清楚卻很繁瑣,這很不數學。
能不能更優雅的展現這個過程呢?
4.2 數塊乘法
數學家發明了一種數塊的乘法,簡潔地進行高斯消元法。
4.2.1 單行乘法
對於:
用數塊乘法表示為:
4.2.2 多行乘法
對於:
之前的式子都忽略了 ,這裡為了更清晰一些,標註了出來。
它表達了兩個過程。
將此定義為:
其中第一行運算的結果放在第一行,第二行運算的結果放在第二行:
4.3 過程簡化
有了這個運算規則後,整個高斯消元法就可以表示如下:
至此,得到答案:
還可以簡寫如下:
可見,數塊以及對應的乘法,在高斯消元法的過程中,非常簡潔清楚易用。
5 總結
阿瑟·凱萊在1858年的《矩陣理論紀要》的論文中,給這個數塊以合法的數學地位,取了一個名字:矩陣。剛才的數塊乘法自然也被稱為了矩陣乘法。
後面,又發現了現實中有很多線性方程、線性問題(比如微積分),所以又扯出了一大串內容出來。但不管怎麼,都是從這裡開始的。
打一個硬廣,對《馬同學線性代數基礎班》感興趣的可以到公眾號:「馬同學高等數學「去報名參加。
行列式最初發明的時候就是用於解線性方程,矩陣很明顯,就是用來表示線性方程的係數。根據維基百科(行列式)「行列式的概念最初是伴隨著方程組的求解而發展起來的。最初的雛形由日本數學家關孝和與德國數學家戈特弗里德·萊布尼茨各自獨立得出,時間大致相同。」
如果你說要理解,我可以很簡單地說說看。其實匿名用戶說得很好,我願意說得再具體些:
(1)行列式是一個函數,但是這是個廢話——我們要知道它對應的值究竟是什麼——具體的說,這個函數的返回值是一個體積。例如:2 x 2 的行列式明顯就是一個平行四邊形的有向面積,具體怎麼理解,還是看維基百科。這樣,你就可以理解,為什麼行列式如果有兩行相等,得到的值等於零了,因為根本張不開,體積當然為 0。
(2)矩陣用來表示線性變換。一個矩陣,右乘一個向量 v,得到一個向量 u,這個矩陣就完成了從 v 到 u 的變換。
在計算機方面有很多應用,且不說計算幾何中幾乎處處都是於此有關的問題,矩陣的分析對於圖論問題也是很重要的,例如一個圖的鄰接矩陣稍加修改,則頭幾個本徵向量就可以對應稱對圖的 Community Detection。
關於這些理解,隨意看看參考書應該都能找到,我說個大概,你再多想想,自然也就明白了。好的線性代數參考書,推薦《線性代數應該這樣學》。歡迎看看中文維基的相關條目:行列式http://zh.wikipedia.org/wiki/%E8%A1%8C%E5%88%97%E5%BC%8F 矩陣http://zh.wikipedia.org/wiki/%E7%9F%A9%E9%98%B5
最近看到了幾篇非常經典的博客,加深了我對矩陣和行列式的理解。如果想要對線性代數有更進一步理解的朋友不妨去看看。下面貼出博客的地址:矩陣的理解(一):http://blog.csdn.net/myan/article/details/647511矩陣的理解(二): http://blog.csdn.net/myan/article/details/649018矩陣的理解(三): http://blog.csdn.net/myan/article/details/1865397
可以簡單的認為矩陣最初是為了簡記方程組並求解,後來通過改變觀察角度例如分塊解讀出了巨量信息。
先講個不相關的故事。英國作家Lewis Carroll的愛麗絲夢遊仙境大受歡迎後,聽說女王下令讓他把他寫的所有書都寄給女王一本。於是女王收到了An Elementary Treatise on Determinants, With Their Application to Simultaneous Linear Equations and Algebraic Equations(淺論行列式,及其在線性和代數方程組中的應用),大家可以帶著這個故事再去讀愛麗絲。
下面回答: 行列式是一個函數。他取一個方矩陣為變數,得到一個數。 矩陣和行列式從發明以來,就用來處理兩個問題:方程組,空間變換。 這兩個問題何處不在?所以矩陣和行列式何處派不上用場?常見的一元函數y=f(x)是研究兩個數x,y 的關係。當研究多元參數的關係時,可把它們看高維空間里的多元向量 (x1,x2....) (y1,y2....)之間的關係矩陣是對多元向量的線性操作,如 (x1,x2....)經過矩陣M的變化可變為 (y1,y2....)
矩陣的行列式代表操作的強度,感覺像是"我這個操作要把這個向量拉長N倍"行列式為0代表矩陣M做的是降維操作,即矩形M把可把向量 (x1,x2....)拍扁成向量 (y1,y2....),但 (y1,y2....)無法通過逆操作恢復到原來的向量 (x1,x2....),有些信息已丟失。
怎麼講呢,矩陣的作用有很多,單純從矩陣的定義來看,只是一個二維數組而已。
但是,從數學標準教科書上來講,矩陣的引入來自求解線性方程組,對於一個線性方程組,可以把其表示成AX=B的形式,其中A為n×m矩陣,這是通過研究這幾個矩陣來研究方程組解的關係,我猜測這大概是最初的引用(僅僅是猜測)
對於計算機來講,一個是影響是二維數組,這僅僅是一種數據結構;二是在數學方面上的影響,這個有很多,矩陣在數學中表示的含義會衍生出一種種在計算機中的應用,如矩陣在研究方程組的解(不僅僅是線性)、圖論、幾何(方陣可以表示旋轉)、以及很多數值計算(很多非線性的東西用線性來逼近精確解,線性就用到矩陣)。
至於行列式,只是一個函數而已,從方陣到方陣中元素所在集合的一個映射。行列式的值和矩陣的性質有些關係。只說說矩陣和計算機相關的部分吧,我記不了太多,大家幫著補充。 1、用矩陣配合lup分解,可以求解線性方程,類似的方法可以用來解決線性規劃的問題(單純形法),線性規劃在工業領域運用還是比較廣的,比如鋼材原料是10米,需要切成4.7米、3.2米、1.3米各多少多少根......怎麼切最省材料。 2、最小二乘需要用到矩陣,該方法主要用作從一組(包含x,y兩個值)存在一定誤差的實驗結果,反推函數。 3、配合矩陣,有種匈牙利方法,用於解決指派問題(也可轉為二分圖的最大匹配) 4、有種叫做楊氏矩陣的數據結構 5、矩陣乘法可以用來解決最短路徑問題,也可以用來求聯通圖裡面2點間指定長度的路徑數量。 6、矩陣乘法或矩陣的冪可以用來求斐波那契數列的第n項(可以推廣到廣義斐波那契數列)。 7、用於計算一組向量之間的距離。 8、矩陣運算本身就涉及眾多演算法。
b站有個不錯的視頻 從幾何角度可以很容易理解
線性代數的本質
降維打擊拿自然語言處理裡面文章分類來舉例,行列式和矩陣可以加快分類的速度。省去買1000萬設備的錢。
根據2016年8月今日頭條給出的官方數據,他們的「頭條號」平台的賬號數量已經超越19萬個,假設平均每人每天發布一篇,那麼保守估計一周就能產生100萬的文章。
今日頭條是屬於你喜歡什麼就給你更多類型的平台,那麼當他知道你喜歡看帶雞血的雞湯文時,怎麼知道新產生的這100篇文章哪些是雞湯文要推薦給你呢?
首先要做的是分類
怎麼分類來著?可以回顧我之前總結的三步 如何把一堆文章分類
在確定了辭彙表,並且計算出各文章的辭彙向量後,就要兩兩對比了。這是一道小學數學題:
100萬文章,兩兩對比,一共要比幾次?
答案是:[100萬*(100萬-1)]/2 = 5000億
此處附帶一條基礎信息:一台計算機每秒可以比對1000次。
那麼求要多少年?
答案是15年。
卧槽.... 這是不是太慢了... 這才一周的文章啊
能不能加個速?
方法有兩個,
第一是用一些並行計算的工具,比如像google的MapReduce之類的工具,用多台計算機並行處理,比如買上個1000台,那麼計算就只要0.015年,5.5天了。
第二是把大學線性代數裡面的矩陣挖出來,把大矩陣拆成三個小矩陣相乘,時間可以直接減少到0.015年。所以... 矩陣相關的運算有時候還是有實際價值的,比如幫你節約1000台電腦的錢,按macbook1萬一台來算,大概值個1000萬RMB。
線性方程組的公式解問題
線性代數是用來描述運動的,矩陣是運動方向,向量就是對象。這是建立在多維空間上的運動的計算。矩陣相乘是新的矩陣代表新的方向,矩陣乘向量就是對象新的位置。
最近在上線性代數習題課,所謂矩陣的產生我覺得是由於解多元線性方程組的解,然後消元的過程發現未知量沒什麼用直接去掉,單獨拿出來的一個數學工具。
在高等代數裡面,引入行列式和矩陣都是通過方程組引入的,以及初等變換都是通過方程來解釋的,所以可能因為方程書寫太麻煩,就用行列式和矩陣來表示吧
把複雜的空間概念,甚至四維,五維的概念,可以用平面的二維結構進行整理和計算,這難道不神奇嗎?
現在的推薦演算法所要解決的問題,可以用矩陣準確的抽象出來和建模。把人和物的關係用矩陣的行和列分別對應,矩陣對應坐標為某人對某物的一個rating。所以推薦演算法就是由這些已經填充的值,通過某些transform來填充那些未知的值。這就是推薦演算法。
矩陣用於表達是R^n到R^m的線性映射,可以認為是方程組表達方式的一種語法糖。
推薦閱讀:
※二階張量與矩陣的區別與聯繫是什麼?
※矩陣行列式是如何求二階導數?
※矩陣奇異值與矩陣範數之間有什麼聯繫?
※如何直觀理解矩陣和線性代數?
※hessian矩陣的特徵向量有什麼含義?