目錄

20200718 想法源起 20200719 我們在做什麼(一) 20200722 我們在做什麼(二) 20200725 竟然成為數學家(一) 20200729 竟然成為數學家(二) 20200801 竟然成為數學家(三) 20200805 不同職級(一) 20200808 不同職級(二) 20200812 趕客系列(一)為什麼讀大學? 20200815 趕客系列(二)不同大學學位跟工作的關係 20200819 趕客系列(三)大學的目的 20200822 趕客系列(四)大學為什麼要有主修 20200826 趕客系列(五)要挑選一個什麼樣的主修 20200829 沒有無緣無故的恨(一) 20200831 科普系列 - 數學與電影動畫製作(一) 20200902 沒有無緣無故的恨(二) 20200905 沒有無緣無故的恨(三) 20200907 科普系列 - 數學與電影動畫製作(二) 20200909 終身職位的評核 20200912 學術界吸引人的地方 20200914 科普系列 - 數學與電影動畫製作 (三) 20200916 學術界辛苦的地方(一) 20200919 學術界辛苦的地方(二) 20200921 科普系列 - 數學與電影動畫製作 (四) 20200923 大學的讀書成績有多重要 20200926 本科生研究機會 20200928 科普系列 - 數學與圖像修復(一) 20200930 用創新的方法去教育科學 20201003 參加研討會的重要 20201005 科普系列 - 數學與圖像修復(二) 20201007 教授與教學 20201010 研究是什麼(一) 20201012 科普系列 - 數學與圖像修復(三) 20201014 研究是什麼(二) 20201017 研究是什麼(三) 20201019 科普系列 - 數學與圖像修復(四) 20201021 如何閱讀研究論文 20201024 研究生應該修什麼課 20201026 科普系列 - 數學與圖像修復(五) 20201029 本科生的多主修多副修 20201102 科普系列 - 數學與數獨(一) 20201105 幾位教授(一) 20201109 科普系列 - 數學與數獨(二) 20201112 幾位教授(二) 20201116 科普系列 - 數學與數獨(三) 20201119 幾位教授(三) 20

科普系列 - 數學與圖像修復(三)




同樣的道理,如果我們現在需要找回的,是在圖像中心n×n的像素點,用同樣的方法,我們就必須要解決一條N元一次線性方程組。而這個線性方程組左手邊的矩陣將會有一個很特別的結構。如果同學有修讀過偏微分方程的數值解,可以看到,這個矩陣是跟用Finite Difference Method去解決Laplace Equations with the Dirichlet Boundary Condition是一樣的。這個關係我們之後會再花一點時間討論。同學亦可以憑這個關係聯想到用平均值解決圖像修復問題時所遇到的後果。其中一個後果,就是我們找回來的顏色都必定會大於或等於邊界上顏色的最小值,亦同時會少於或等於邊界上顏色的最大值。這個特性在橢圓型偏微分方程(Elliptic Partial Differential Equations)經常出現。所以有這樣子的效果,也不會太過令人奇怪。

 

解決多元一次方程組的辦法

 

要解決上面那一個四元一次方程組不太困難,一般同學多花一點時間也可以把答案找出來。只需要將不同方程式做一些加加減減,把方程式的左手邊排除掉多餘的變數,都剩下只有一個未知數,一步一步的就可以把四個未知數都找出來。這個方法叫做消除法(Method of Elimination)。網上有太多對這個方法的介紹,我在這裏就不再仔細講解[1]。當然,人手去做這個消除法,那一條方程式跟那一條方程式作加減,也沒有太大關係。可以根據自己興趣,找不同的方程式去做計算。那到底找那一條放晴色跟那一條方程式做運算可以更有效的消除一些變數,其實就要靠經驗的累積。一般在中學課堂上,我想老師也不會有一個一般的解釋。如果可以把未知數消除,那就是一個好的方法。我猜想,這其實也是一個為什麼中學同學不喜歡數學的原因,有些時候他們用一些方法可能需要花更多的時間才可以把答案找出來,這可能會加深了同學對數學的挫敗感。可是,反過來說,這不唯一性其實也是數學有趣的地方。同學們可以有不同的「創意」去解決同一個問題,每個人解決問題的方法都可能是不相同。可是如果每一部都做對了,最後的答案也會是一樣的。而且,答案最後也會是滿分。

 

雖然說, 四元一次方程組還是可以用手解決,可是就算在大學課程,我們一般都不會要求同學用手計算(其實自己也不可能把所有計算準確做出來,所以我也不會要求同學在功課或考試時計算這些問題)。打就更不用說我們上面討論的N元一次線性方程組。假設我們需要補回來的像素點顏色有100個,我們就必須要解決一個100元一次線性方程組。不是說不可能,不過不會有人真的會用手解決。這就是為什麼我們需要運用電腦幫我們去做計算。所以我在「數值分析」那一門本科課裏面經常提到,數學家都是非常懶惰的。有很多我們可以做的問題我們都不想去做,反而要叫電腦去幫我們做。

 

那電腦是怎麼幫我們解決這個線性方程組的問題呢?電腦其實是非常愚蠢的,他只會根據我們編寫的程式去執行一些加減乘除的過程。如果,我們做消除法是可以那麼的隨心,電腦如何可以有一個固定的方法去解決這些方程組的問題呢?計算數學的其中一個目的,就需要設計不同的算法(Algorithm)去教導電腦解決一些數學上的問題。去解決線性方程組問題上,其中一個電腦可以按着指令執行的方法叫做高斯消去法(Gaussian Elimination[2]。在大部份情況下,高斯消去法都可以有效地找到線性方程組的答案。這裏我只是說大部份,就是說有一小部份的問題高斯消去法是不成功的(或者在電腦運算出來的答案可能會有比較大的誤差)。那到底是在什麼情況下我們需要小心使用這些算法呢?那也是計算數學這個範疇裏面我們需要解答的問題(這個問題的答案,我們可以使用Partial Pivoting[3]。我在這裏就不再仔細討論)。

 

當然,如果這個方程組太大,我們其實也不會運用高斯消去法找出方程組的答案。主要原因有兩個。第一,這個方法需要做的運算太多。如果我們要解決一個N元一次線性方程組,加減乘除總共的運算可能是增長。假設一個2GHz的處理器每秒大致可以做兩億次操作。這意味著,解決一個100100的線性方程組問題可能只需要少於一毫秒。這似乎不太差。但是,很多時在實際應用中,需要解決許多一百萬乘一百萬的線性方程組問題。做一次高斯消去法將需要多於5[4]!第二個原因,在很多生活應用上,我們其實不需要用消去法找出一個精確解。反而一個近似值就已經可以了。你上面那個一百萬乘一百萬的線性方程組問題,如果使用一些好的疊代方法去找一個近似值,通常一部尋常的台式或筆記本型電腦已經可以在少於一秒裡面得到一個非常準確的答案。




[1]比如說這裏https://www.mathplanet.com/education/algebra-1/systems-of-linear-equations-and-inequalities/the-elimination-method-for-solving-linear-systems

[2]https://www.wikiwand.com/en/Gaussian_elimination

[3]https://www.wikiwand.com/en/Pivot_element

[4] http://utalks.etvonline.hk/article124.php

留言