朱艷
摘要:《計算方法》課程對于培養(yǎng)學(xué)生數(shù)值計算思想、應(yīng)用科學(xué)計算解決實際問題的能力起著重要的作用。該文結(jié)合自己的教學(xué)實踐和科研工作,以雅克比(Jacobi)迭代法、高斯-德塞爾(Gauss-Seidel)迭代法及逐次超松弛(SOR)迭代法內(nèi)容為例,引入鞍點問題,提高教學(xué)的廣度和深度。
關(guān)鍵詞:計算方法;Jacobi迭代法;Gauss-Seidel迭代法;SOR迭代法;教學(xué)案例
中圖分類號:0241 文獻標(biāo)識碼:A 文章編號:1009-3044(2018)04-0107-02
A Teaching Case of Computational Method
ZHU Yan
(Qujing Normal University, Qujing 655011, China)
Abstract: Computational method curriculum plays an important role in cultivating students numerical calculation thinking and the ability to use scientific computing to solve practical problems. Based on teaching experiences and scientific research, Jacobi, Gauss-Seidel and successive over relaxation(SOR) iterative method as examples, the saddle point problem is introduced in order to improve the breadth and depth of teaching.
Key words: Computational method; Jacobi iterative method; Gauss-Seidel iterative method; SOR iterative method; Teaching case
1 概述
科學(xué)與工程的許多領(lǐng)域如流體力學(xué),高階微分方程求解,計算電磁學(xué),最優(yōu)化問題和油藏模擬等都涉及到大規(guī)模稀疏線性方程組的求解.計算方法課程中迭代法就是求解這類方程組的最基本的方法,迭代是數(shù)值分析中通過從一個初始估計出發(fā)尋找一系列近似解來解決問題(一般是解方程或者方程組)的過程,為實現(xiàn)這一過程所使用的方法統(tǒng)稱為迭代法。經(jīng)典迭代法有雅克比迭代法,高斯-賽德爾迭代法,逐次超松弛迭代法等。文[1]結(jié)合教學(xué)實踐討論《計算方法》課中應(yīng)用數(shù)學(xué)軟件MATLAB進行“曲線擬合”教學(xué)的一個案例,本文將探討在《計算方法》課程中講授雅克比(Jacobi)迭代法、高斯-德塞爾(Gauss-Seidel)迭代法及逐次超松弛(SOR)迭代法時將科研與教學(xué)相結(jié)合的一個案例。
文[2]考慮求解下面線性方程組
其中是非奇異矩陣,,是未知向量,是已知向量.對任意分裂,若矩陣是非奇異,則基于此分裂的迭代法可以表示為
,.
不失一般性,假設(shè),,可以將分裂為
,
其中為單位矩陣,和分別為矩陣的嚴格下三角矩陣和嚴格下三角矩陣,則基于上式分裂的迭代法為
,
其中,此方法稱為Jacobi迭代法。
若,此方法稱為Gauss-Seidel迭代法。
若,是松弛參數(shù).此方法稱為SOR迭代法(若,SOR法就為Gauss-Seidel法)。
將經(jīng)典迭代法與科研成果結(jié)合在一起,介紹應(yīng)用迭代法求解鞍點問題,使學(xué)生能較深刻認識到迭代法在求解大型稀疏線性方程組的意義,培養(yǎng)學(xué)生思考問題、解決問題的能力。
2 鞍點問題
現(xiàn)在考慮鞍點系統(tǒng)
,
其中對稱正定,滿秩,即秩()=,向量且。
, (1)
其中與是非奇異矩陣。
鞍點問題廣泛的存在于流體力學(xué), 電磁學(xué), 線性彈性力學(xué), 帶有限制條件的二次優(yōu)化, 最小二乘問題等應(yīng)用領(lǐng)域中。解決鞍點問題的方法一種就是基于矩陣分裂的迭代法,在式(1)中令,(),即為著名的有Uzawa算法:
該方法簡單, 易于計算機實現(xiàn), 但該方法每一步迭代需要計算矩陣的逆, 對大型線性方程組來說這是不現(xiàn)實的。為克服該缺點, 文[4]給出了改進算法,在式(1)中令,(),即
算法2.1:
在式(1)中令,(),可得另一迭代算法
算法2.2:
3 數(shù)值例子
本小節(jié),給出一個數(shù)值例子。
例[3]:考慮矩陣:
和矩陣:
此數(shù)值例子中令, IT為迭代步數(shù)及,分別表示參數(shù),上界.在實驗中,取初始值為,當(dāng)相對殘差小于停止迭代,即, 其中,。相應(yīng)的數(shù)值結(jié)果在下列表中。
根據(jù)表1,顯然在選取適當(dāng)?shù)膮?shù)時,算法2.1[4] 和算法2.2迭代步數(shù)要少于Uzawa算法,然而, 當(dāng)不變而接近于0.038,算法 2.2 迭代步數(shù)少于算法2.1[4]。
4 結(jié)論
計算方法是在理工科各專業(yè)大學(xué)本科及研究生中開設(shè)的一門計算量大、算法多、實踐性比較強的專業(yè)課. 要系統(tǒng)完善地讓學(xué)生理解和掌握這門課程的理論、方法及實質(zhì)精髓, 提高這門課程的教學(xué)效果,教師在授課時候盡量將教學(xué)科研結(jié)合一起,讓學(xué)生理解前人在這方面所做的大量工作及目前這門課程的發(fā)展情況, 從側(cè)面激發(fā)學(xué)生學(xué)習(xí)的興趣, 努力把所學(xué)理論應(yīng)用于實際中,從而增強教學(xué)效果, 提高教育質(zhì)量。
參考文獻:
[1] 唐家德.應(yīng)用MATLAB進行《計算方法》教學(xué)的一個案例[J].電腦知識與技術(shù)(學(xué)術(shù)交流),2007(11):1473-1476.
[2] 張誠堅,高健,何南忠.計算方法[M].北京:高等教育出版社,1999.33-38.
[3] K. Arrow, L. Hurwicz, H. Uzawa, Studies in Nonlinear Programming[M].Stanford University Press, Stanford, 1958.
[4] X.F. Ling, X.Z. Hu. On the iterative algorithm for large sparse saddle point problems[J]. Appl. Math. Comput., 2006,178: 372-379.