王同科, ?;圪e, 王彩華
(天津師范大學(xué)數(shù)學(xué)科學(xué)學(xué)院,天津300387)
?
數(shù)值分析實(shí)踐教學(xué)實(shí)驗(yàn)設(shè)計(jì)
王同科,?;圪e,王彩華
(天津師范大學(xué)數(shù)學(xué)科學(xué)學(xué)院,天津300387)
[摘要]簡(jiǎn)述了數(shù)值分析課程實(shí)驗(yàn)設(shè)計(jì)的總體思路,設(shè)計(jì)了三個(gè)新的探索性實(shí)驗(yàn),包括遞歸方程擬合、非光滑函數(shù)插值和奇異積分計(jì)算.這些實(shí)驗(yàn)均從最簡(jiǎn)單的情形出發(fā),通過觀察、比較、分析和聯(lián)想得出了新的結(jié)論,有助于培養(yǎng)學(xué)生的創(chuàng)新思維能力,為更好地開展數(shù)值分析實(shí)踐教學(xué)提供指導(dǎo).
[關(guān)鍵詞]數(shù)值分析; 遞歸方程擬合; 非光滑函數(shù)插值; 奇異積分計(jì)算; Mathematica軟件
1實(shí)驗(yàn)設(shè)計(jì)綜述
數(shù)值分析研究數(shù)值求解數(shù)學(xué)問題的方法和理論,是一門理論與實(shí)踐并重的課程.在數(shù)值分析教學(xué)中,實(shí)踐環(huán)節(jié)對(duì)于培養(yǎng)學(xué)生運(yùn)用知識(shí)的能力和創(chuàng)新能力之重要性已成為高校教學(xué)上的共識(shí),因此各個(gè)學(xué)校普遍設(shè)置了數(shù)值分析實(shí)驗(yàn)環(huán)節(jié),安排每周1至2學(xué)時(shí)的上機(jī)實(shí)習(xí).如何有效地利用有限的實(shí)驗(yàn)課時(shí),使學(xué)生真正掌握數(shù)值分析的基礎(chǔ),如何爭(zhēng)取更多時(shí)間引導(dǎo)學(xué)生深入地探索與實(shí)驗(yàn),很多學(xué)校進(jìn)行了有益嘗試.文[1]綜述了三峽大學(xué)數(shù)值分析課程教學(xué)改革的研究成果,文[2]總結(jié)了中南大學(xué)以MATLAB 為平臺(tái)進(jìn)行數(shù)值分析課程輔助教學(xué)的方法,文[3,4]主張采用現(xiàn)代信息網(wǎng)絡(luò)進(jìn)行數(shù)值分析實(shí)驗(yàn)教學(xué),文[5,6]分別指出了數(shù)值分析教學(xué)中存在的問題,特別提出應(yīng)根據(jù)不同學(xué)校的學(xué)生特點(diǎn)改革教學(xué)內(nèi)容,加強(qiáng)實(shí)驗(yàn)教學(xué).這些研究成果為各個(gè)學(xué)校的數(shù)值分析教學(xué)提供了有益的參考.
在數(shù)值分析增設(shè)實(shí)驗(yàn)課時(shí)的同時(shí),很多學(xué)校同步開設(shè)了數(shù)學(xué)實(shí)驗(yàn)和數(shù)學(xué)建模課程.這三門課程相互融合、互為補(bǔ)充,使數(shù)學(xué)教學(xué)從純理論邁向了以理論為主,兼顧實(shí)踐的階段,共同促進(jìn)了學(xué)生實(shí)踐能力的提高[7,8].從實(shí)驗(yàn)設(shè)計(jì)的角度出發(fā),但琦等[9]將數(shù)學(xué)實(shí)驗(yàn)分為基礎(chǔ)性實(shí)驗(yàn)和綜合性實(shí)驗(yàn),而基礎(chǔ)性實(shí)驗(yàn)包含驗(yàn)證性實(shí)驗(yàn)和計(jì)算性實(shí)驗(yàn);綜合性實(shí)驗(yàn)包含探索性實(shí)驗(yàn)和應(yīng)用性實(shí)驗(yàn).這種分類方法對(duì)于數(shù)值分析實(shí)驗(yàn)同樣適用,早期的數(shù)值分析實(shí)驗(yàn)主要是基礎(chǔ)性實(shí)驗(yàn),要求學(xué)生編寫常用算法的C語言或Fortran語言程序;近些年,則普遍引入了通用數(shù)學(xué)軟件,程序編寫的難度大大下降,有更多的時(shí)間安排一些綜合性實(shí)驗(yàn),學(xué)生更有興趣,學(xué)習(xí)效果有了很大提高[10].
隨著計(jì)算機(jī)性能的不斷提高,計(jì)算機(jī)代數(shù)系統(tǒng)(CAS)已經(jīng)發(fā)展到了高度智能化的水平,符號(hào)運(yùn)算與數(shù)值計(jì)算的邊界越來越模糊,二者的有機(jī)融合催生了許多高效率的算法.對(duì)于數(shù)值分析實(shí)踐教學(xué)來說,應(yīng)該乘勢(shì)而為,適度引入符號(hào)運(yùn)算,通過符號(hào)運(yùn)算與數(shù)值計(jì)算結(jié)果的對(duì)比分析,比較數(shù)值算法的優(yōu)劣,看清數(shù)值算法的本質(zhì)或借助符號(hào)運(yùn)算,提高數(shù)值方法的計(jì)算效率.在這方面,我們已經(jīng)設(shè)計(jì)了一些實(shí)驗(yàn),如Chebyshev多項(xiàng)式降階實(shí)驗(yàn), 二次插值函數(shù)一階導(dǎo)數(shù)超收斂點(diǎn)實(shí)驗(yàn), 列主元Gauss消去法增長(zhǎng)因子實(shí)驗(yàn)等,均已收錄到了教材: Mathematica與數(shù)值分析實(shí)驗(yàn)[11]中.這本教材圍繞算法這一主題展開,用算法的實(shí)現(xiàn)、算法的理解、算法的應(yīng)用這一主線將各部分內(nèi)容有機(jī)地串聯(lián)在一起,實(shí)驗(yàn)內(nèi)容涵蓋了數(shù)值分析例題選解、基礎(chǔ)算法實(shí)驗(yàn)、數(shù)值方法探索性實(shí)驗(yàn)和數(shù)值方法應(yīng)用性實(shí)驗(yàn).目前該教材已被一些學(xué)校采用,收到了良好的效果.
在數(shù)值分析實(shí)驗(yàn)設(shè)計(jì)環(huán)節(jié),基礎(chǔ)性實(shí)驗(yàn)內(nèi)容相對(duì)固定,應(yīng)用性實(shí)驗(yàn)則有大量的數(shù)學(xué)模型案例可供選用,而探索性實(shí)驗(yàn)則相對(duì)缺乏.除了在教材[11]中給出的一些探索性實(shí)驗(yàn)外,近幾年,結(jié)合科研工作,我們又設(shè)計(jì)了一些新的探索性實(shí)驗(yàn),下面給予簡(jiǎn)單介紹.
2幾個(gè)典型的探索研究性實(shí)驗(yàn)
2.1遞歸方程擬合
題目設(shè)an+1=an+1/an,a1=1,給定一些n,畫出(n,an)的散點(diǎn)圖,并尋找合適的函數(shù)擬合以上圖形.
分析與求解本題給出的公式實(shí)際是一個(gè)非線性的差分方程,可以嘗試使用Mathematica8.0的RSolve命令求解,但無法成功求出問題的解.下面采用擬合方法求該差分方程的近似解,由于an+1=an+1/an本質(zhì)上是一個(gè)不動(dòng)點(diǎn)迭代,采用NestList命令計(jì)算一些n對(duì)應(yīng)的an值,Mathematica程序?yàn)?/p>
g[x_]:=x+1.0/x; (*定義迭代函數(shù)*)
nt = 5000; x0 = 1; (*n=nt=5000*)
t = NestList[g, x0, nt] (*計(jì)算前5 000個(gè)n對(duì)應(yīng)的an值,并存放在表t 中*)
p1=ListPlot[t, PlotStyle -> {PointSize[Small], Red}, AxesStyle -> Thick, BaseStyle -> {Bold, FontSize -> 15}, AxesLabel -> {n, Subscript[a, n]}](*繪制散點(diǎn)圖,如圖1所示*)
圖1 (n,an)的散點(diǎn)圖
由圖1可知,an隨n單調(diào)增加,觀察圖像可以考慮使用對(duì)數(shù)函數(shù)或指數(shù)函數(shù)進(jìn)行擬合.經(jīng)測(cè)試,指數(shù)函數(shù)擬合效果較好,擬合命令為 FindFit[t,a*n^b,{a,b},n].執(zhí)行該擬合命令得擬合公式為
f(n)=1.42034n0.499504,
擬合誤差
對(duì)于本實(shí)驗(yàn),得到f(n)=1.42034n0.499504并不困難,進(jìn)一步的推導(dǎo)實(shí)際是一個(gè)探索發(fā)現(xiàn)的過程,需要充分發(fā)揮我們的想象力.
2.2非光滑函數(shù)插值
題目1. 給定函數(shù)
2. 將f1(x)和f2(x)分別在x=0點(diǎn)做Taylor展開,比較它們有什么不同?
3. 當(dāng)n=2時(shí),對(duì)于函數(shù)f1(x),使用其Taylor展開式中的基函數(shù)構(gòu)造插值函數(shù),計(jì)算插值最大誤差,并與二次插值多項(xiàng)式進(jìn)行比較.
4. 將區(qū)間[0,1]剖分為n=4等份,求f1(x)的四次插值多項(xiàng)式,并使用其Taylor展開式中的基函數(shù)構(gòu)造插值函數(shù),計(jì)算插值最大誤差,與n=2時(shí)的插值進(jìn)行比較,觀察誤差的變化情況.
分析與求解1. 當(dāng)n=2時(shí),插值節(jié)點(diǎn)為xk=k/2,k=0,1,2,直接使用二次Lagrange插值公式,得
圖2 fi(x)的插值誤差圖形(左)和函數(shù)圖形(右)
使用Mathematica的NMaximize命令可知,
進(jìn)一步繪出f1(x)和f2(x)的函數(shù)圖形,見圖2右圖,可見兩個(gè)函數(shù)的值相差并不大,是什么原因?qū)е虏逯档谋平Ч羞@么大的差別?聯(lián)想到插值余項(xiàng)公式
仔細(xì)觀察圖2右圖,可知函數(shù)f1(x)在x=0點(diǎn)的光滑性較差,原因正在于此.
2. 直接使用Mathematica的Series命令將f1(x)和f2(x)分別在x=0點(diǎn)做Taylor展開,如對(duì)于f1(x),命令為s1[x_]=Series[f1[x],{x,0,4}],得
(1)
可得插值函數(shù)
圖3 兩種插值的誤差圖形
4. 當(dāng)n=4時(shí),插值節(jié)點(diǎn)為xk=k/4,k=0,1,…,4,可求得f1(x)的四次Lagrange插值多項(xiàng)式
若使用f1(x)的分?jǐn)?shù)階Taylor展開式(1)中的基函數(shù),則得
計(jì)算插值最大誤差,連同n=2的結(jié)果,一起列在表1中.
表1 n=2和n=4時(shí)f1(x)的兩種插值最大誤差
由表1知,當(dāng)插值節(jié)點(diǎn)增加時(shí),f1(x)的多項(xiàng)式插值精度并沒有明顯提高,而其分?jǐn)?shù)階插值精度則有數(shù)量級(jí)的提高.
本實(shí)驗(yàn)中f1(x)在x=0點(diǎn)的導(dǎo)數(shù)不存在,這雖然僅是函數(shù)的一個(gè)局部性質(zhì),但它對(duì)于插值精度的影響則是全局的.對(duì)于這種局部非光滑函數(shù),通常的多項(xiàng)式插值并不能準(zhǔn)確地反映出函數(shù)的這種非光滑性質(zhì),因而逼近效果往往比較差[12].若使用非光滑函數(shù)做插值基函數(shù),則可以大大改善插值精度,但插值基函數(shù)的種類繁多,需正確選擇.基本方法是將函數(shù)在不可導(dǎo)點(diǎn)做廣義的Taylor級(jí)數(shù)展開[12],使用該展開式的基函數(shù)構(gòu)造插值.這種級(jí)數(shù)展開通常歸結(jié)為符號(hào)計(jì)算,本實(shí)驗(yàn)是符號(hào)計(jì)算與數(shù)值計(jì)算聯(lián)合使用提高算法精度的一個(gè)典型例子.實(shí)驗(yàn)中的分?jǐn)?shù)階插值采用了簡(jiǎn)單的待定系數(shù)方法,更一般的構(gòu)造方法及誤差估計(jì)見文[13].
2.3奇異積分計(jì)算
題目1. 設(shè)定計(jì)算精度ε=10-8,用Romberg算法計(jì)算積分
統(tǒng)計(jì)外推次數(shù)及函數(shù)值計(jì)算個(gè)數(shù),該方法對(duì)于這兩個(gè)積分計(jì)算效率高嗎?
2. 查找資料,寫出復(fù)合梯形公式的誤差漸近展開式,從理論上解釋上面積分計(jì)算快或慢的原因.
3. 修改Romberg算法,使之對(duì)第一個(gè)積分有更高的計(jì)算效率.
分析與求解1. 設(shè)f(x)∈C[a,b],將區(qū)間[a,b]劃分為n等份,記
h=(b-a)/n,xi=a+ih,i=0,1,2,…,n,
(2)
復(fù)合梯形公式單獨(dú)使用時(shí)計(jì)算精度不高,通常情況下可以使用Romberg算法進(jìn)行外推.Romberg算法通過對(duì)不同步長(zhǎng)的復(fù)合梯形公式進(jìn)行組合,逐步消去誤差低階項(xiàng)達(dá)到快速收斂的目的.Romberg算法公式為
其中T0,k表示區(qū)間[a,b]二分k次后求得的梯形值,Tm,k表示外推m次的加速值.
表2 Romberg算法計(jì)算兩個(gè)積分的結(jié)果統(tǒng)計(jì)
由表2知,Romberg算法可以計(jì)算這兩個(gè)積分,積分②計(jì)算正常,但積分①外推收斂很慢,計(jì)算效率非常低.為什么同一個(gè)函數(shù)在不同區(qū)間上的計(jì)算效果差別如此之大呢?注意到Romberg算法外推的理論基礎(chǔ)是復(fù)合梯形公式的誤差漸近展開式,我們需要從誤差漸近展開式出發(fā)進(jìn)行討論.
2. 當(dāng)被積函數(shù)f(x)在積分區(qū)間上充分光滑時(shí),梯形公式(2)的誤差漸近展開式為[11]
(3)
(4)
進(jìn)一步,有
接下來進(jìn)行正常外推即可.這種方法稱為改進(jìn)的Romberg算法.
Romberg外推算法是數(shù)值分析的一個(gè)必做實(shí)驗(yàn),通常僅對(duì)充分光滑函數(shù)進(jìn)行,計(jì)算效率很高,學(xué)生除了練習(xí)編程之外,難有其他收獲.此實(shí)驗(yàn)通過奇異積分計(jì)算,開闊學(xué)生思路,讓學(xué)生認(rèn)識(shí)到,在實(shí)際計(jì)算時(shí)針對(duì)具體函數(shù)正確選用算法或改進(jìn)現(xiàn)有算法十分重要,其基礎(chǔ)是算法的理論分析.在數(shù)值分析學(xué)習(xí)中,理論與實(shí)踐同等重要,缺一不可.學(xué)生通過完成實(shí)驗(yàn)還可以體會(huì)科學(xué)探索的過程,如有興趣,還可以進(jìn)一步學(xué)習(xí)奇異積分的誤差漸近展開式及其推導(dǎo)過程[15,16].
3結(jié)論
在數(shù)值分析教學(xué)中開設(shè)上機(jī)實(shí)驗(yàn)課早已成為各個(gè)高校的共識(shí),但設(shè)置何種實(shí)驗(yàn)則討論較少,特別是探索創(chuàng)新型實(shí)驗(yàn)更少.本文設(shè)計(jì)了三個(gè)新的數(shù)值分析實(shí)驗(yàn),這些實(shí)驗(yàn)是相關(guān)基礎(chǔ)實(shí)驗(yàn)的深化和推廣,有助于學(xué)生加深對(duì)所學(xué)數(shù)值方法的理解.學(xué)生通過完成實(shí)驗(yàn),可以有效地提高科學(xué)計(jì)算能力.
[參考文獻(xiàn)]
[1]杜廷松.關(guān)于《數(shù)值分析》課程教學(xué)改革研究的綜述和思考[J].大學(xué)數(shù)學(xué),2007,23(2):8-15.
[2]萬中,韓旭里.《數(shù)值分析》課程教學(xué)的新認(rèn)識(shí)及改革實(shí)踐[J].數(shù)學(xué)教育學(xué)報(bào),2008,17(2):65-66.
[3]吳勃英,王勇,石振鋒.《數(shù)值分析》實(shí)驗(yàn)課網(wǎng)絡(luò)實(shí)驗(yàn)平臺(tái)建設(shè)體會(huì)[J].大學(xué)數(shù)學(xué),2007,23(3):13-14.
[4]謝治州.“數(shù)值分析”實(shí)驗(yàn)教學(xué)的實(shí)踐與探索[J].實(shí)驗(yàn)室研究與探索,2010,29(5):133-136.
[5]殷明,朱曉臨,陳曉紅,陳國琪.計(jì)算方法課程改革的設(shè)想與實(shí)踐[J].大學(xué)數(shù)學(xué),2006,22(5):15-17.
[6]劉徽,黃寬娜.計(jì)算方法課程教學(xué)改革的探索與實(shí)踐[J].西南師范大學(xué)學(xué)報(bào)(自然科學(xué)版),2013,38(6): 183-187.
[7]周金明,朱曉臨,張偉.結(jié)合數(shù)學(xué)建模,改革《數(shù)值分析》教學(xué)[J].大學(xué)數(shù)學(xué),2013,29(5):13-17.
[8]溫一新,王濤.數(shù)學(xué)實(shí)驗(yàn)和數(shù)學(xué)建模教學(xué)中數(shù)學(xué)軟件應(yīng)用的實(shí)例分析[J].大學(xué)數(shù)學(xué),2014,30(5):26-30.
[9]但琦,楊廷鴻,吳松林,付詩祿,林瓊.論大學(xué)數(shù)學(xué)實(shí)驗(yàn)課的教學(xué)設(shè)計(jì)[J].大學(xué)數(shù)學(xué),2010,26(5):1-5.
[10]何亞麗,劉春鳳.數(shù)值計(jì)算方法課程中實(shí)驗(yàn)環(huán)節(jié)的設(shè)計(jì)[J].大學(xué)數(shù)學(xué),2008,24(1):9-12.
[11]王同科,張東麗,王彩華.Mathematica與數(shù)值分析實(shí)驗(yàn)[M]. 北京:清華大學(xué)出版社,2011.
[12]王同科,佘海艷,劉志方.分?jǐn)?shù)階光滑函數(shù)線性和二次插值公式余項(xiàng)估計(jì)[J].計(jì)算數(shù)學(xué),2014,36(4):393-406.
[13]樊夢(mèng),王同科,常慧賓.非光滑函數(shù)的分?jǐn)?shù)階插值公式[J].計(jì)算數(shù)學(xué),2016,38(2):212-224.
[14]李慶揚(yáng),王能超,易大義.數(shù)值分析(第五版)[M].北京:清華大學(xué)出版社,2008.
[15]Sidi A. Euler-Maclaurin expansions for integrals with endpoint singularities: a new perspective[J]. Numerische Mathematik, 2004, 98(2): 371-387.
[16]Wang Tongke, Li Na, Gao Guanghua. The asymptotic expansion and extrapolation of trapezoidal rule for integrals with fractional order singularities[J]. International Journal of Computer Mathematics, 2015, 92(3): 579-590.
Experimental Design for Practical Teaching in Numerical Analysis
WANGTong-ke,CHANGHui-bin,WANGCai-hua
(School of Mathematical Sciences, Tianjin Normal University, Tianjin 300387, China)
Abstract:Based on reviewing the basic ideas for experimental design in numerical analysis, this paper designs three new exploratory experiments, including fitting for a recurrence equation, interpolation for insufficiently smooth functions and the computation of singular integrals. These experiments are all starting from the simplest cases and draw new conclusions through observation, comparison, analysis and conjecture, which are helpful to train the students’ innovative thinking ability, as well as provide better guidance for the practical teaching in numerical analysis.
Key words:numerical analysis; fitting for recurrence equation; interpolation for insufficiently smooth function; computation of singular integral; Mathematica software
[收稿日期]2015-09-05;[修改日期] 2016-03-26
[基金項(xiàng)目]天津市普通高等學(xué)校本科教學(xué)質(zhì)量與教學(xué)改革研究計(jì)劃項(xiàng)目
[作者簡(jiǎn)介]王同科(1965-),男,博士,教授,從事計(jì)算數(shù)學(xué)研究.Email:wangtke@sina.com
[中圖分類號(hào)]O241
[文獻(xiàn)標(biāo)識(shí)碼]C
[文章編號(hào)]1672-1454(2016)02-0057-07