創作內容

11 GP

自己的高中數學整理 -2.2- 馬可夫矩陣、複數和四元數、矩陣乘法C程式碼

作者:侵略!花枝丸│2014-07-31 21:58:41│巴幣:22│人氣:7828
此篇是此整理的最尾篇,同樣以基本高中程度描述,並加入個人想法,可能會有無法接受者,請斟酌觀看。

下面要講高二下最後一個矩陣主題,轉移矩陣,正式叫馬可夫鏈
馬可夫(Андре́й Андре́евич Ма́рков,Markov)從1906年開始發展馬可夫鏈。
轉移矩陣是一種每行加起來都是1、每個元素都是不大於1之非負數的方陣,
而拿來和它相乘,各元素加起來也是1的行向量,叫做機率向量機率矩陣
它們的一個重要課題,是穩定狀態的討論,
在高二下還沒有完整學到數列的極限等相關主題,所以並不討論如何判斷一個轉移矩陣是否會有穩定狀態,以及正確的穩定狀態求法,但是因為一些事實巧合,所以我們剛好不需要討論這些問題。
第一個事實是,只要一個轉移矩陣,裡面沒有一個元素是 0,那就一定會有穩定狀態,我們在課本和題目幾乎沒有遇過有元素是0的轉移矩陣,因為題目可能不喜歡設定機率是0,所以我們高二下遇到的所有轉移矩陣,都不需要討論是否會穩定。
而課本上計算穩定狀態的方法,用的是一個合理的等式,
設有一個轉移矩陣 M,一個穩定狀態機率向量 X ,則

然而這個算式表面上是在描述,一個機率向量經過M多次變換之後,變成了X,而之後X不管經過M多少次變換,依然不變,
但背後的意義,其實是在計算M矩陣特徵值為 1 時的特徵向量:
          知道這點之後,就會有兩個問題,
轉移矩陣一定會有特徵值1嗎?
特徵值1的時候一定會是穩定狀態嗎?

首先是第一個問題,一個二階轉移矩陣M可以寫成

它的特徵多項式為

所以得出轉移矩陣一定會有特徵值1
至於第二個問題我無法證明,總之可以確定,特徵值為1的時候,特徵向量的確接近於穩定狀態(可以當做等於)。
所以說,高二下在轉移矩陣穩定狀態的討論,因為三個連續的巧合,導致我們即便不知道其中的確切理論,但也可以得出正確的穩定狀態。

上一篇整理的補充裡有講到,四元數複數都可以表示成矩陣。
四元數和矩陣的乘法都一樣有不可交換性,想當初兩個物件的發明者,
凱萊和漢彌爾頓應該是互相認識,凱萊比漢彌爾頓年輕10多歲,當初漢彌爾頓在1843年給世界帶來第一種交換相乘不相等的數字,之後1857年凱萊定義出不可交換的矩陣乘法,也就見怪不怪。
首先是複數,課本直到高二下都沒有提到複數平面,因此複數相乘可以類比平面上向量旋轉伸縮也就比較少人知道,說不定一些名校資優生已經在高一學複數時有學過,到高二下的矩陣又再複習一次,不過我不是資優生,所以我受的並不是這樣的教學。
複數平面又叫高斯平面,早在四元數出現前幾十年就已經開始發展研究,到四元數發明時應該很成熟了,矩陣運算完全確立之後,又可以再把複數賦予新的形式。
先來看複數的極式,在複數平面上,我們可以用現在平面向量的概念來描述一個複數

(用數對表示複數也是漢彌爾頓首先提出的)
而用高二上學的極座標概念,可以把一個複數轉成極座標形式,也就是用長度和角度表達,
設長度為 r,角度是 θ,則一個複數可表示為

這就是複數的極式,而利用極式,我們可以很容易看出兩個複數相乘的意義
設兩個複數,
相乘得

兩個複數相乘等於 長度相乘角度相加,也就是同時旋轉和伸縮,若是交換相乘,因為實數的加和乘都有交換性,所以結果會一樣。
而旋轉和伸縮,也有對應的矩陣,所以自然會思考這兩者是否可以連結?
首先要想如何把 a+bi 化成矩陣形式,也就是要找出一個矩陣代表虛數 i
虛數 i,基本性質就是平方是 -1
而在複數平面上,一個複數乘上 i,結果就是逆時針旋轉90度,這即便不用極式也可理解,
所以我們就拿高二下教的,代表旋轉90度的矩陣來試試,如果平方是 -1,那就可以用了

I 單位矩陣在矩陣裡可以視為1,所以我們的確得到一個符合條件的矩陣,
所以現在可以把 a+bi 寫成矩陣了,而因為考慮封閉性,所以把 a 視為和單位矩陣相乘

這就是複數的矩陣形式,概念上也要把此矩陣視為複數向量,
順帶一提,原本複數的長度平方,剛好就是矩陣形式的行列式值,而複數的共軛就是矩陣形式轉置。
矩陣形式同樣有極形式,就和旋轉和伸縮矩陣同時相關,

二階旋轉伸縮矩陣和複數都是在平面上,性質如出一轍,殊途同歸,也可以說像是跨時代的巧合。

四元數的矩陣形式有兩種,一種是二階複數矩陣(裡面有虛數 i 的矩陣),一種是四階實數矩陣,兩種矩陣在高二下都不是很了解,所以這裡只點到為止。
然而一個誇張的事實是,我看幾個網頁就有幾種表示方式,雖然都有共通點,但是結果和性質差很多,幾經思考後,我決定在二階矩陣採用我比較接受的中文維基的形式,而四階矩陣則大膽用我自己的形式。
四元數要寫成矩陣形式,不外乎要像複數一樣,找出符合 i j k 運算性質的矩陣,
以下這三個矩陣就符合要求

平方等於-1,從左到右兩兩相乘都符合 i j k 相乘性質,
但是應該分別把哪一個視為 i j k 呢?所以就有三種可能

得出三種結果

再用一個簡單的事實來篩選,當一個四元數 a+bi+cj+dk,它的 c d 等於0時,就會等價於一個複數a+bi也就是說,把三個矩陣的cd都代入0,哪一個會等於

就算是四元數合理的二階矩陣形式。所以最後結果分別是

因此確定最後一個形式符合條件,也就是

就像複數一樣,四元數的絕對值平方等於矩陣形式行列式值

而四元數的共軛等於矩陣形式共軛轉置,也就是矩陣轉置後把元素取共軛,上面的複數矩陣形式因為矩陣裡沒有虛數,所以轉置後有沒有取共軛是一樣的

順帶一提,這裡的共軛轉置剛好等於餘因子矩陣的轉置,
所以四元數的倒數剛好也等於矩陣形式的反方陣
q 是四元數的意思。
其實其他種二階表示方式(包含其他網站的)也符合這些性質,唯一的差別在於 c d 等於0時,
並不會等於複數矩陣形式,所以我選擇符合這個性質的形式,看起來比較合理且連貫,因為我也無從得知現在學界在用的矩陣形式究竟是哪一種。

再來是四階方陣形式,因為四階方陣應該可以視為四次元向量的線性變換,所以我們先來做一次四元數原本的乘法。
設兩個四元數相乘 a+bi+cj+dk u+xi+yj+zk,相乘得

四元數如果寫成某個四階方陣的話,應該可以和原本的四元數係數做矩陣乘法,而且結果要一樣

所以很容易可以看出左邊的四階矩陣應該要寫成

因此可以得出 i j k 代表的三個矩陣,如果用這三個矩陣把四元數的 i j k 代換掉就變成

經過計算就可以驗證 i j k 矩陣互相的性質都符合定義。
而如果是兩個四階矩陣形式相乘,結果也會一樣,只不過因為結果會是個又大又長的矩陣,因此這裡只寫第一行,其他處的係數都同理

同樣的,四元數的共軛等於四階矩陣形式的轉置,
如果像上面把矩陣裡的 c d 代入0的話,會是
而四階矩陣的行列式等於四元數絕對值的四次方


我目前無法驗證我用的表示方法究竟正不正確,想法有沒有錯誤,此處只想要表達複數和四元數都可以表示成矩陣,這種對高二生而言十分新奇的想法,我認為很有放在此整理的價值。

然後是我用我現有的C語言能力寫出來,計算矩陣乘法的程式(點圖片可以放大)
這是可以計算矩陣乘法的程式,一開始輸入兩個矩陣的列數行數,只要符合矩陣乘法的規定(左矩陣行數等於右矩陣列數)都可以運算,若是不符規定就會顯示「此兩矩陣不可以執行乘法」。
從老師那裡不時會聽到,矩陣在電腦上有很大的用途,但是依照我對C語言的了解程度,並沒有可以直接表示矩陣的物件,或是可以執行矩陣計算的運算子(運算符號),在程式碼上沒辦法直接簡單寫出 A * B = C ,然後就可以顯示乘出來的C矩陣。
所以如果沒有事先寫好代表矩陣的物件,和用來計算加減乘法的程式碼,是沒有辦法做矩陣計算的,於是我就想試著寫出乘法程式,因為加減法的作法很簡單,所以並沒有嘗試的必要。
理論上最大可以計算兩個100x100矩陣相乘的程式,但是我目前沒有真的測試過100階方陣,所以也不知道電腦能不能跑,因為其實計算四階方陣相乘已經很麻煩了,雖然電腦計算得了,但是要把兩個矩陣32個元素正確打進去就已經是一件苦差事了。
此程式裡用到了二維陣列迴圈,還有鍵盤輸入,二維陣列就是我覺得可以用來表示矩陣的物件,兩者的概念類似,不過其實陣列也可以寫到三維四維,不過應該很少用到。
裡面可能有幾個函數或寫法是專業程式設計者會避免的,但是我還只是新手,又看不懂正確寫法,所以沒有改正。
此程式最核心,計算乘法的那幾行,其實有參考(應該說就是照抄了)網路上的範例,這其實是不應該的,不過我後來發現高二數學講義上寫的矩陣乘法居然和這一模一樣

所以這應該是數學界公認的算法。一開始我確實想要自己想出把矩陣乘法程式化的寫法,不過看了範例之後,我覺得我自己寫不出如此簡潔的計算程式碼,所以只好抄下來了,不過剩下的都是我自己寫的,但也要承認除了那幾行以外,剩下只是簡單的工作而已。
在我寫這篇整理的時候,這程式也省了我許多的事,不管是二階方陣或上面的四階方陣,都可以比較方便的得到結果,不過只限於元素是數字的時候,而我這篇整理中,未知數還是佔大部分。

此篇整理被我分成了三份,和上一篇整理相比雖然長了許多,但是卻更少提到各個段落的歷史,看起來前後也不怎麼連貫。
我發現矩陣的發展實在太廣,從1957年前後到現在各種領域的應用,還牽涉到各種高級的理論,文章越寫越覺得自己不自量力,看不懂網路上那些計算概念,還如何寫成整理,所以各個段落都停頓得突然,也缺少很多東西,這些文章開頭有先做過說明,
高二下的矩陣主題範圍非常狹小,但是一旦跨過了課本上的主題,各種理論和計算又太廣太難,所以我想用簡單的語言把一些有難度但是重要的概念先做基礎說明,上一篇向量也是一樣,只是矩陣部分的教學沒有違反歷史,因此也不用糾正,只是課本少講了很多東西。

(如果時間允許的話,下一篇是圓錐曲線的整理)
引用網址:https://home.gamer.com.tw/TrackBack.php?sn=2534466
All rights reserved. 版權所有,保留一切權利

相關創作

同標籤作品搜尋:馬可夫|穩定狀態|機率|轉移矩陣|複數|極式|四元數|轉置|特徵值

留言共 2 篇留言

雨晴
文章一開始提出的兩個問題,之所以一定有特徵值1是因為行特徵值等於列特徵值(都是特徵多項式的根)而且轉移矩陣由定義有一個明顯的列特徵向量(1, 1, 1, …, 1)具特徵值1

04-07 13:30

雨晴
至於為什麼特徵值1是穩定狀態,只要說明不會有絕對值大於等於1的特徵值即可,然而大於1的特徵值會導致太大的數字出現,而特徵值-1經由計算可以發現會造成某些元等於0

04-07 13:42

侵略!花枝丸
感謝補充,當時這裡的敘述確實怪怪的04-07 14:09
我要留言提醒:您尚未登入,請先登入再留言

11喜歡★ericlee0602 可決定是否刪除您的留言,請勿發表違反站規文字。

前一篇:自己的高中數學整理 -2... 後一篇:上課不認真之 ── 地平...

追蹤私訊切換新版閱覽

作品資料夾

leon770530巴友
我的小屋首頁共有4篇健身相關證照心得文,對健身有興趣的朋友可以來看看喔!看更多我要大聲說昨天23:10


face基於日前微軟官方表示 Internet Explorer 不再支援新的網路標準,可能無法使用新的應用程式來呈現網站內容,在瀏覽器支援度及網站安全性的雙重考量下,為了讓巴友們有更好的使用體驗,巴哈姆特即將於 2019年9月2日 停止支援 Internet Explorer 瀏覽器的頁面呈現和功能。
屆時建議您使用下述瀏覽器來瀏覽巴哈姆特:
。Google Chrome(推薦)
。Mozilla Firefox
。Microsoft Edge(Windows10以上的作業系統版本才可使用)

face我們了解您不想看到廣告的心情⋯ 若您願意支持巴哈姆特永續經營,請將 gamer.com.tw 加入廣告阻擋工具的白名單中,謝謝 !【教學】