左同亮,周富照,張一博,楊培,郭紅玲
(長沙理工大學(xué) 數(shù)學(xué)與計(jì)算科學(xué)學(xué)院,湖南 長沙410114)
高校理工科類專業(yè)一般都開設(shè)了《數(shù)值方法》或《計(jì)算方法》或《數(shù)值計(jì)算》課程,雖然有關(guān)輔助教學(xué)系統(tǒng)討論很多,但關(guān)于《計(jì)算方法》的輔助教學(xué)系統(tǒng)研究很少。在這門課的傳統(tǒng)教學(xué)過程,教師在介紹常用的數(shù)值方法時(shí),一般只介紹這些方法的原理、步驟或算法,講到數(shù)值實(shí)例,規(guī)模一般很小并且是用手來計(jì)算,不能及時(shí)呈現(xiàn)每種算法所編程序的運(yùn)算過程和結(jié)果,這樣學(xué)生對(duì)這些重要方法只有抽象的認(rèn)識(shí)。
本文利用計(jì)算機(jī)運(yùn)算速快、儲(chǔ)存能力強(qiáng)等特點(diǎn)[1],研發(fā)了一套關(guān)于插值與逼近等的仿真實(shí)驗(yàn)系統(tǒng)或輔助教學(xué)系統(tǒng),該系統(tǒng)能幫助老師直觀展示數(shù)值實(shí)例的演示過程,使學(xué)生對(duì)高度抽象的理論有直觀形象的認(rèn)識(shí),并且該系統(tǒng)有著很好的師生交互界面,能在算法、程序、運(yùn)算過程、運(yùn)算結(jié)果和教學(xué)內(nèi)容之間切換。
對(duì)《數(shù)值方法》中的插值與逼近的主要方法進(jìn)行總結(jié),選擇Lagrange 插值、三次樣條插值、Hermit插值、最佳平方逼近和最小二乘法曲線擬合等方法,對(duì)每一種方法設(shè)計(jì)基本算法,根據(jù)每種算法寫出相應(yīng)的c++程序并進(jìn)行調(diào)試、運(yùn)行,運(yùn)行通過后建成一個(gè)程序庫[2]。
系統(tǒng)主要利用Microsoft Visual C++ 進(jìn)行可視化設(shè)計(jì),大量采用MFC 標(biāo)準(zhǔn)控件[3]。系統(tǒng)開發(fā)流程如圖1:
圖1 設(shè)計(jì)流程
首先運(yùn)用AppWizard 建立單對(duì)話框工程,命名為“插值與逼近等仿真實(shí)驗(yàn)系統(tǒng)”,在工程中添加多個(gè)屬性頁面實(shí)現(xiàn)不同方法的可視化,基本語句如下:
其次,在屬性頁面中添加MFC 控件,通過鏈接函數(shù)調(diào)用程序庫中的程序,完成對(duì)不同方法的可視化操作。
最后,調(diào)試運(yùn)行工程,得到一個(gè)“插值與逼近等仿真實(shí)驗(yàn)系統(tǒng).exe”可執(zhí)行文件。
點(diǎn)擊“插值與逼近等仿真實(shí)驗(yàn)系統(tǒng).exe”可執(zhí)行文件運(yùn)行系統(tǒng),得到如圖2 初始界面。
圖2 初始界面
然后點(diǎn)擊菜單項(xiàng)中的“插值與逼近”,可顯示下級(jí)菜單,如圖3。
圖3 下級(jí)菜單界面
如要對(duì)插值法進(jìn)行仿真實(shí)驗(yàn),點(diǎn)擊“插值法”選項(xiàng),得到如圖4 所示界面。
圖4 插值法界面
對(duì)于函數(shù)逼近只需選擇“函數(shù)逼近”,可得到類似界面。在點(diǎn)擊圖4 中第三級(jí)選項(xiàng)時(shí)可進(jìn)入主界面,對(duì)主界面的具體操作下面舉例說明。
由于各種仿真實(shí)驗(yàn)操作是類似的,下面僅就三次樣條插值和最小二乘法進(jìn)行演示。
運(yùn)行“插值與逼近等仿真實(shí)驗(yàn)系統(tǒng).exe”文件,得到如圖4 所示界面,點(diǎn)擊“三次樣條插值”進(jìn)入三次樣條插值仿真實(shí)驗(yàn)的主界面,如圖5。
圖5 三次樣條運(yùn)行界面
在“x 的值”編輯框輸入1、2、3,數(shù)值間以空格隔開,以同樣格式輸入y 的值:1、3、-1,插值方法項(xiàng)輸入2(三轉(zhuǎn)角方程),邊界情況為1(即端點(diǎn)一階導(dǎo)數(shù)值已知),邊界條件分別輸入1、1(格式同前);然后點(diǎn)擊“計(jì)算”按鈕,運(yùn)行結(jié)果如圖6。
若需對(duì)其它實(shí)例進(jìn)行演示,只需點(diǎn)擊“清除”按鈕,就可將前面的輸入和結(jié)果清空,按類似的操作進(jìn)行即可。
圖6 三次樣條運(yùn)行結(jié)果界面
例2已知數(shù)據(jù)如下表:
試求它的最小二乘擬合曲線。
建立直角坐標(biāo)系,根據(jù)數(shù)據(jù)進(jìn)行在坐標(biāo)系中描點(diǎn),可見這些點(diǎn)位于一條雙曲線附近[5],可以選擇作為基函數(shù)進(jìn)行曲線擬合。
類似例1 的步驟,進(jìn)入到最小二乘法仿真實(shí)驗(yàn)的界面,如圖7:
圖7 最小二乘法運(yùn)行界面
在“x 的值”編輯框中輸入1、2、5、7,數(shù)字間用空格隔開,y 的值以同樣方法輸入9,4,2,1,基函數(shù)的選擇為1 和1/x,擬合曲線選擇為“多項(xiàng)式曲線擬合”,點(diǎn)擊“計(jì)算”按鈕,運(yùn)行結(jié)果如圖8。
圖8 最小二乘法運(yùn)行結(jié)果
本文只針對(duì)數(shù)值方法或計(jì)算方法中的插值與逼近等輔助教學(xué)系統(tǒng)進(jìn)行初步討論,采用vc++環(huán)境設(shè)計(jì),至于計(jì)算方法中其它內(nèi)容的輔助教學(xué)系統(tǒng)的研究也已展開,希望隨著研究的深入,本門課程的輔助教學(xué)系統(tǒng)從界面設(shè)計(jì)到操作更加美觀和方便,并且能提供更多的課程信息。
[1]宋峰,王麗輝,丁潤松.智能計(jì)算機(jī)輔助教學(xué)系統(tǒng)的發(fā)展前[J].劍南文學(xué).經(jīng)典教苑,2010(4):3-10.
[2]甄西豐.實(shí)用數(shù)值計(jì)算方法[M].北京:清華大學(xué)出版社,2006:294.
[3]孔鵬,等.Visual C++6.0 完全自學(xué)手冊(cè)[M].北京:機(jī)械工業(yè)出版社,2007:100.
[4]齊舒創(chuàng)作室.Visual C++6.0 用戶界面制作技術(shù)與應(yīng)用實(shí)例[M].北京:中國水利水電出版社,1999:120.
[5]李慶揚(yáng),王能超,易大義.數(shù)值分析[M].武漢:華中科技大學(xué)出版社.2004:55.
湖南人文科技學(xué)院學(xué)報(bào)2013年2期