朱艷
摘要:《計(jì)算方法》課程對(duì)于培養(yǎng)學(xué)生數(shù)值計(jì)算思想、應(yīng)用科學(xué)計(jì)算解決實(shí)際問題的能力起著重要的作用。該文結(jié)合自己的教學(xué)實(shí)踐和科研工作,以雅克比(Jacobi)迭代法、高斯-德塞爾(Gauss-Seidel)迭代法及逐次超松弛(SOR)迭代法內(nèi)容為例,引入鞍點(diǎn)問題,提高教學(xué)的廣度和深度。
關(guān)鍵詞:計(jì)算方法;Jacobi迭代法;Gauss-Seidel迭代法;SOR迭代法;教學(xué)案例
中圖分類號(hào):0241 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):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é),高階微分方程求解,計(jì)算電磁學(xué),最優(yōu)化問題和油藏模擬等都涉及到大規(guī)模稀疏線性方程組的求解.計(jì)算方法課程中迭代法就是求解這類方程組的最基本的方法,迭代是數(shù)值分析中通過從一個(gè)初始估計(jì)出發(fā)尋找一系列近似解來解決問題(一般是解方程或者方程組)的過程,為實(shí)現(xiàn)這一過程所使用的方法統(tǒng)稱為迭代法。經(jīng)典迭代法有雅克比迭代法,高斯-賽德爾迭代法,逐次超松弛迭代法等。文[1]結(jié)合教學(xué)實(shí)踐討論《計(jì)算方法》課中應(yīng)用數(shù)學(xué)軟件MATLAB進(jìn)行“曲線擬合”教學(xué)的一個(gè)案例,本文將探討在《計(jì)算方法》課程中講授雅克比(Jacobi)迭代法、高斯-德塞爾(Gauss-Seidel)迭代法及逐次超松弛(SOR)迭代法時(shí)將科研與教學(xué)相結(jié)合的一個(gè)案例。
文[2]考慮求解下面線性方程組
其中是非奇異矩陣,,是未知向量,是已知向量.對(duì)任意分裂,若矩陣是非奇異,則基于此分裂的迭代法可以表示為
,.
不失一般性,假設(shè),,可以將分裂為
,
其中為單位矩陣,和分別為矩陣的嚴(yán)格下三角矩陣和嚴(yán)格下三角矩陣,則基于上式分裂的迭代法為
,
其中,此方法稱為Jacobi迭代法。
若,此方法稱為Gauss-Seidel迭代法。
若,是松弛參數(shù).此方法稱為SOR迭代法(若,SOR法就為Gauss-Seidel法)。
將經(jīng)典迭代法與科研成果結(jié)合在一起,介紹應(yīng)用迭代法求解鞍點(diǎn)問題,使學(xué)生能較深刻認(rèn)識(shí)到迭代法在求解大型稀疏線性方程組的意義,培養(yǎng)學(xué)生思考問題、解決問題的能力。
2 鞍點(diǎn)問題
現(xiàn)在考慮鞍點(diǎn)系統(tǒng)
,
其中對(duì)稱正定,滿秩,即秩()=,向量且。
, (1)
其中與是非奇異矩陣。
鞍點(diǎn)問題廣泛的存在于流體力學(xué), 電磁學(xué), 線性彈性力學(xué), 帶有限制條件的二次優(yōu)化, 最小二乘問題等應(yīng)用領(lǐng)域中。解決鞍點(diǎn)問題的方法一種就是基于矩陣分裂的迭代法,在式(1)中令,(),即為著名的有Uzawa算法:
該方法簡(jiǎn)單, 易于計(jì)算機(jī)實(shí)現(xiàn), 但該方法每一步迭代需要計(jì)算矩陣的逆, 對(duì)大型線性方程組來說這是不現(xiàn)實(shí)的。為克服該缺點(diǎn), 文[4]給出了改進(jìn)算法,在式(1)中令,(),即
算法2.1:
在式(1)中令,(),可得另一迭代算法
算法2.2:
3 數(shù)值例子
本小節(jié),給出一個(gè)數(shù)值例子。
例[3]:考慮矩陣:
和矩陣:
此數(shù)值例子中令, IT為迭代步數(shù)及,分別表示參數(shù),上界.在實(shí)驗(yàn)中,取初始值為,當(dāng)相對(duì)殘差小于停止迭代,即, 其中,。相應(yīng)的數(shù)值結(jié)果在下列表中。
根據(jù)表1,顯然在選取適當(dāng)?shù)膮?shù)時(shí),算法2.1[4] 和算法2.2迭代步數(shù)要少于Uzawa算法,然而, 當(dāng)不變而接近于0.038,算法 2.2 迭代步數(shù)少于算法2.1[4]。
4 結(jié)論
計(jì)算方法是在理工科各專業(yè)大學(xué)本科及研究生中開設(shè)的一門計(jì)算量大、算法多、實(shí)踐性比較強(qiáng)的專業(yè)課. 要系統(tǒng)完善地讓學(xué)生理解和掌握這門課程的理論、方法及實(shí)質(zhì)精髓, 提高這門課程的教學(xué)效果,教師在授課時(shí)候盡量將教學(xué)科研結(jié)合一起,讓學(xué)生理解前人在這方面所做的大量工作及目前這門課程的發(fā)展情況, 從側(cè)面激發(fā)學(xué)生學(xué)習(xí)的興趣, 努力把所學(xué)理論應(yīng)用于實(shí)際中,從而增強(qiáng)教學(xué)效果, 提高教育質(zhì)量。
參考文獻(xiàn):
[1] 唐家德.應(yīng)用MATLAB進(jìn)行《計(jì)算方法》教學(xué)的一個(gè)案例[J].電腦知識(shí)與技術(shù)(學(xué)術(shù)交流),2007(11):1473-1476.
[2] 張誠堅(jiān),高健,何南忠.計(jì)算方法[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.