1│2│3│4│5 |
.原載於科學月刊第二卷第六期 •註釋 | ||
重複逼近面面觀
兼介向量變換 林孝信
|
在本期〈我們自己做計算機〉一文的第九章中,提到重複逼近法 (Iterative Process) 解聯立一次方程式。原文未詳細說明。這是個應用廣泛、理論本身又十分有趣的問題,因此在此略作說明。
從初中起,我們就學過解一次聯立方程式,而且我們知道日常生活見到的許多四則計算問題,多數都屬聯立方程式的問題。事實上一次聯立方程式應用的範圍更要廣得多,許多高深的物理、化學或工程的研究,隨時都會用到這些粗淺的計算。所以這個基本的運算,必須要徹底了解它,要從各個角度了解它。
以下我們以重複逼近法為主題,環繞它作各種討論分析。
先研究最簡單的二元一次聯立方程式:
基本解法是二式各乘上適當係數,相減以消去未知數之一(x1 或 x2),結果是 這樣的計算,人人會算,人人易算。電子計算機當然也會算,但卻未必「易」算──尤其當多元(譬如說二十元)聯立時。當然,二十元聯立方程組,也不是人人「易」算。通常每個未知數也是個分數 但此時分子分母各為 20!(即 )那麼多個數字相加減而來;而每個數字又分別由20個不同係數相乘得出的。這些加減乘除雖難不倒計算機;但我們要命令(寫程式(Program) 編註 )可就十分複雜了。
這時我們就想起計算機的特點了──「快」。利用此一特點,我們能不能想個法子使計算不必完全準確,但程式(命令)變得十分簡單;再利用計算機重複多算幾次,便可求出足夠精確結果?這正是重複逼近法的精神。
那麼,怎樣的計算,會使程式簡單?例如,
a1 x= c1
的計算,程序很簡單,只要把係數 a1 除過去便得了。但如
a1 x+b1 y=c1
便不簡單。因為 y 的值不曉得(假設先要解 x),我們只好和下一個方程式聯立,一旦聯立,公式便複雜了。倘若我們假定 y 為某一定值 y0,那麼便可輕易求出 x=x1。當然,此時 x1 不是真正的解,因為 y0 是「假定」的。把這個 x1 值代入第二方程式
a2 x+b2 y=c2
便很容易也求出 y=y1。(這個當然也不精確。)
但現在 y1 比 y0 好些,不完全憑空「假定」,而是經過一番計算得來(雖然計算根源,還是假定了 y0)。現在把 y1 代入第一式子,又可算出 x=x2,這個 x2 跟方程組的關係,就比 x1 要深了一層。把 x2 代入第二式,又得到 y2;然後又代回第一式得 x2……如此循環不已,這就是重複逼近法。
這方法的命令(程式)非常簡單,而且可以一樣容易地推廣到20……甚至100元聯立方程式。只需計算夠快,可以連續多算幾次,便可利用此法。因此它在電子計算機中常被採用。
可是妳是不是覺得有點不太保險?對啦!我們怎知這樣算下去,會「逼近」我們要求的真正答案?說不定愈離愈遠呢!x2 只比 x1 關係深,但「關係深」不一近「逼近」答案,而且,最初我們要「假定」y0 為多少?它和「逼近」有沒有關係?
這話不錯!我們就進一步算算看。現在倘若我們已算了 n 次,把 yn 代入第一式:
再代 xn+1 入第二式得 yn+1: 我們要看看,yn+1 和 yn 那個比較靠近真正的解 ( )。我們看 和 yn+1 差多少? 這是個十分漂亮的結果!我們發現,只要 的絕對值小於 1,即 |a2 b1|<|a1 b2|,那麼 yn+l 就比 yn 更趨近真正的值 。
從另個角度來看,
與 n 無關。這就是說, 與
之比也是
。
因此,把
代入上式,再把 又代入。如此不斷代入,直到 yn-n=y0 為止,我們就得: 只要 ,當 n 夠大時, 便可稱心如意地「小」。
因此得到結論:
以上是對 y0 的計算。對 xn 的結果完全一樣,比值亦為 (不是 !萬一是如此,就天下大亂了!)詳細計算請讀者自己來。
|
對外搜尋關鍵字: .線性組合 |
|
(若有指正、疑問……,可以在此 留言 或 寫信 給我們。) |
EpisteMath (c) 2000 中央研究院數學所、台大數學系 各網頁文章內容之著作權為原著作人所有 |
繪圖:簡立欣 | 最後修改日期:4/29/2002 |