李 龍,方智明,羅振國(guó)
(衡陽(yáng)師范學(xué)院 數(shù)學(xué)與計(jì)算科學(xué)系,湖南 衡陽(yáng) 421002)
基于Matlab軟件的數(shù)值分析實(shí)踐教學(xué)研究
李 龍,方智明,羅振國(guó)
(衡陽(yáng)師范學(xué)院 數(shù)學(xué)與計(jì)算科學(xué)系,湖南 衡陽(yáng) 421002)
本文基于Matlab軟件在處理數(shù)值計(jì)算等方面特點(diǎn)和優(yōu)勢(shì),并結(jié)合數(shù)值分析課程的實(shí)踐性,從上機(jī)實(shí)驗(yàn)問(wèn)題的選取等方面,討論了基于Matlab的數(shù)值分析實(shí)踐教學(xué),以增強(qiáng)學(xué)生的學(xué)習(xí)積極性和主動(dòng),提高知識(shí)運(yùn)用能力。
Matlab數(shù)值分析;實(shí)踐教學(xué);上機(jī)實(shí)驗(yàn)
數(shù)值分析又稱(chēng)為數(shù)值計(jì)算方法,主要研究用計(jì)算機(jī)解決數(shù)學(xué)問(wèn)題的數(shù)值方法及其理論。數(shù)值分析課程既像通常的數(shù)學(xué)課程那樣有自身嚴(yán)密的科學(xué)體系,又是一門(mén)應(yīng)用性和實(shí)踐性很強(qiáng)的課程。通過(guò)本課程的學(xué)習(xí),能使學(xué)生熟練掌握數(shù)值計(jì)算的基本理論和基本方法,提高算法設(shè)計(jì)和理論分析能力,提高應(yīng)用數(shù)學(xué)與計(jì)算機(jī)解決實(shí)際問(wèn)題的能力。正因?yàn)槿绱?,傳統(tǒng)的只注重對(duì)書(shū)本理論知識(shí)的講解,導(dǎo)致學(xué)生學(xué)習(xí)這門(mén)課程時(shí)感到抽象難懂,并且課程中的計(jì)算公式多而復(fù)雜和計(jì)算結(jié)果的不可預(yù)見(jiàn)性,造成學(xué)生不能全面理解各種計(jì)算方法,使得學(xué)生的學(xué)習(xí)積極性和主動(dòng)性不夠。因此,在數(shù)值分析的教學(xué)應(yīng)該理論課程與實(shí)踐課程并重,通過(guò)上機(jī)實(shí)踐教學(xué),可以讓學(xué)生直觀地通過(guò)數(shù)據(jù)來(lái)驗(yàn)證計(jì)算方法的斂散性、穩(wěn)定性,比較各種方法的優(yōu)劣,通過(guò)對(duì)數(shù)據(jù)的圖形化方式加深學(xué)生對(duì)算法思想原理的理解,激發(fā)學(xué)生的學(xué)習(xí)興趣,提高學(xué)生解決實(shí)際問(wèn)題的能力。
在數(shù)值分析實(shí)踐教學(xué)過(guò)程中,有的采用C/C++進(jìn)行教學(xué)和實(shí)驗(yàn),這要求學(xué)生既要充分了解算法原理,又要熟練掌握C/C++的語(yǔ)法和編程技巧,導(dǎo)致學(xué)生和教師將大量的時(shí)間和精力都花在繁瑣的數(shù)值計(jì)算和作圖上。在這些年的數(shù)值分析實(shí)踐教學(xué)中,我們覺(jué)得Matlab軟件應(yīng)替代C/C++成為數(shù)值分析實(shí)踐教學(xué)的首選。Matlab是MathWorks公司開(kāi)發(fā)的一款以數(shù)值計(jì)算為主要特色,集數(shù)值計(jì)算、符號(hào)分析、圖形可視化、文字處理于一體的集成化軟件,在數(shù)值計(jì)算領(lǐng)域有其獨(dú)特的優(yōu)勢(shì)。
Matlab是一種面向科學(xué)與工程計(jì)算的高級(jí)語(yǔ)言,計(jì)算和繪圖功能強(qiáng)大。針對(duì)計(jì)算數(shù)學(xué)領(lǐng)域的特定問(wèn)題求解,如數(shù)值逼近、數(shù)值線性代數(shù)、微分方程數(shù)值解、數(shù)值積分等問(wèn)題,Matlab都能給出該類(lèi)問(wèn)題的各種高效算法,并且算法簡(jiǎn)單直接,能讓學(xué)生從繁瑣的編程中解放出來(lái),從而激發(fā)他們的學(xué)習(xí)興趣和效率。Matlab軟件特點(diǎn)和優(yōu)勢(shì)主要體現(xiàn)在:
1.Matlab具有程序結(jié)構(gòu)控制、函數(shù)調(diào)用、數(shù)據(jù)結(jié)構(gòu)、輸入輸出、面向?qū)ο蟮瘸绦蛘Z(yǔ)言特征,而且簡(jiǎn)單易學(xué)、編程效率高。
2.數(shù)值計(jì)算、符號(hào)計(jì)算和繪圖功能強(qiáng)大,且操作簡(jiǎn)單。
3.Matlab提供強(qiáng)大的工具箱。
特別的,Matlab在處理矩陣運(yùn)算時(shí),相比與C/C++等語(yǔ)言編程要簡(jiǎn)單很多,且算法直觀易懂。
>>B=[1 1;0 1];>>C=A*B
即可得到矩陣A和B的乘積。而C/C++則需要多個(gè)for循環(huán)語(yǔ)句才能完成該運(yùn)算。
目前我們所用的數(shù)值分析教材中的數(shù)值實(shí)驗(yàn)內(nèi)容太單一,大多時(shí)候只是將數(shù)值方法用來(lái)求一個(gè)數(shù)學(xué)表達(dá)式的解,問(wèn)題脫離實(shí)際。例如數(shù)值積分上機(jī)實(shí)驗(yàn),基本上都是給出一個(gè)函數(shù)積分問(wèn)題或一些離散點(diǎn)處的函數(shù)值,讓學(xué)生用各種的數(shù)值積分算法求它們的近似解,這樣一來(lái)使得學(xué)生感覺(jué)不到數(shù)值積分的用處;又例如微分方程數(shù)值解,都是給出一個(gè)微分方程的表達(dá)式,讓學(xué)生用各種數(shù)值解法去求這個(gè)方程的數(shù)值解,所采用的例子完全脫離社會(huì)實(shí)際。這樣一來(lái),使得學(xué)生在遇到實(shí)際問(wèn)題時(shí),由于平時(shí)缺乏鍛煉而無(wú)從下手,從而使得學(xué)生的實(shí)際問(wèn)題解決能力得不到提高。而國(guó)外的數(shù)值分析教材都選取了大量來(lái)自實(shí)際的問(wèn)題,例如人口增長(zhǎng)模型、傳染病模型、經(jīng)濟(jì)增長(zhǎng)模型等,讓學(xué)生感覺(jué)數(shù)值分析內(nèi)容有趣而且與實(shí)際問(wèn)題緊密聯(lián)系,讓他們覺(jué)得自己所學(xué)的知識(shí)還能解決現(xiàn)實(shí)生活中的問(wèn)題,這樣在問(wèn)題解決時(shí),學(xué)生會(huì)有一種成就感和喜悅感,從而大大提高了學(xué)生的學(xué)習(xí)興趣。因此,我們?cè)跀?shù)值分析的實(shí)踐教學(xué)中,應(yīng)選取一些貼近實(shí)際的問(wèn)題,讓學(xué)生感受到數(shù)學(xué)知識(shí)的魅力,提高學(xué)生的知識(shí)運(yùn)用能力,同時(shí)為學(xué)生的數(shù)學(xué)建模打下良好的理論基礎(chǔ)和應(yīng)用基礎(chǔ),提高學(xué)生的學(xué)習(xí)興趣。下面我們以數(shù)值積分上機(jī)實(shí)驗(yàn)為例進(jìn)行說(shuō)明。
我們選用湘江水流量估計(jì)這一實(shí)際問(wèn)題來(lái)作為學(xué)生的上機(jī)實(shí)驗(yàn)。水流量問(wèn)題是學(xué)生們平時(shí)生活中經(jīng)常遇到的問(wèn)題,只要我們打開(kāi)水龍頭,就會(huì)有水流量這一問(wèn)題。學(xué)生們會(huì)覺(jué)得平時(shí)日常生活的水流量,很好去估計(jì),只要拿個(gè)容器去測(cè)量就可以了。但是,對(duì)于湘江河水的水流量那應(yīng)該怎么去估計(jì)呢?該問(wèn)題貼近生活實(shí)際,學(xué)生一聽(tīng)這個(gè)問(wèn)題可以用我們所學(xué)的知識(shí)來(lái)解決,大家都很積極主動(dòng)?,F(xiàn)在給出該問(wèn)題的數(shù)據(jù):根據(jù)實(shí)際測(cè)量數(shù)據(jù),我們可以得到在湘江河流某處河道寬為700m,該河道處橫截面的不同位置在某一測(cè)量時(shí)刻的水深如表1所示,并且測(cè)量時(shí)該河道處的水流速度為0.5m/s,請(qǐng)大家估計(jì)湘江河道此時(shí)的水流量。
由我們的日常知識(shí)和分析可知,要想計(jì)算出湘江河道在此時(shí)的水流量,我們就要事先計(jì)算出該河道處的橫截面面積。由數(shù)學(xué)分析中的定積分可知,如果知道此處河道的水深曲線函數(shù)h(x),則其橫截面面積為但是在實(shí)際問(wèn)題中h(x)的表達(dá)式是不可能精確得到的,那么我們?cè)撊绾吻蟠藭r(shí)河道的橫截面面積,并滿足足夠的精度呢?
表1 湘江某處橫截面不同位置的水深數(shù)據(jù)(單位:m)
對(duì)于這一類(lèi)問(wèn)題,給定函數(shù)在某些點(diǎn)處的函數(shù)值,要求該函數(shù)的定積分,我們馬上就要想到數(shù)值積分。設(shè)湘江橫截面面積為S,則水流量值=S×流速。已知函數(shù)h(x)在15個(gè)節(jié)點(diǎn)處的值,并且節(jié)點(diǎn)之間是等距。因此,可以采用復(fù)合梯形公式、復(fù)合辛普森公式和牛頓-科特斯公式求S的近似值。從而將這樣一個(gè)求湘江水流量的實(shí)際問(wèn)題轉(zhuǎn)化成數(shù)值積分問(wèn)題,讓學(xué)生自己上機(jī)通過(guò)Matlab編程來(lái)計(jì)算出各種求積公式算出的流量估計(jì)值。這樣一來(lái),有學(xué)生自己動(dòng)手,親身體會(huì)用所學(xué)知識(shí)解決實(shí)際問(wèn)題的成就,在培養(yǎng)學(xué)生解決實(shí)際問(wèn)題能力的同時(shí),激發(fā)了他們進(jìn)一步學(xué)好該課程的愿望。
在高校順應(yīng)時(shí)代要求突出創(chuàng)新型、應(yīng)用型和實(shí)踐型人才培養(yǎng)目標(biāo)的情況下,實(shí)踐教學(xué)已成為高校教育教學(xué)研究的熱點(diǎn)之一。實(shí)踐證明,對(duì)數(shù)值分析課程開(kāi)設(shè)實(shí)踐教學(xué)環(huán)節(jié)以及對(duì)實(shí)驗(yàn)平臺(tái)和實(shí)驗(yàn)內(nèi)容進(jìn)行改革,有助于加深學(xué)生對(duì)課程內(nèi)容的理解,激發(fā)學(xué)生的學(xué)習(xí)積極性和主動(dòng)性。同時(shí),也是學(xué)生參加數(shù)學(xué)建模競(jìng)賽、大學(xué)生課外實(shí)踐創(chuàng)新和提高知識(shí)運(yùn)用能力的一個(gè)重要基礎(chǔ)。
[1]曾繁慧,高雷阜.基于Matlab的數(shù)值分析教學(xué)改革研究[J].中國(guó)電子教育,2008,(01).
G642.0
A
1674-9324(2014)35-0203-02
衡陽(yáng)師范學(xué)院教研項(xiàng)目“基于MATLAB教學(xué)軟件的《數(shù)值分析》實(shí)踐教學(xué)研究”(編號(hào):JYKT201215)。