国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于MATLAB編程的算法實(shí)現(xiàn)教學(xué)法在計(jì)算方法課程中的應(yīng)用探討

2022-02-04 08:02蘭州理工大學(xué)理學(xué)院甘肅蘭州730050
關(guān)鍵詞:四階算例計(jì)算方法

◎李 旭 (蘭州理工大學(xué)理學(xué)院,甘肅 蘭州 730050)

一、引言

計(jì)算科學(xué)已經(jīng)成為科學(xué)研究和工程設(shè)計(jì)的第三種重要手段,被廣泛使用.航空航天、汽車、生物、化學(xué)、半導(dǎo)體等很多工業(yè)領(lǐng)域,越來越多地依靠數(shù)值模擬來提供技術(shù)決策支持.

19世紀(jì)末以來,許多物理現(xiàn)象已經(jīng)得到了很好的解釋,并有精確的模型來描述它們.但在計(jì)算機(jī)廣泛使用之前,科學(xué)家和工程師被迫在模型中做出許多簡化假設(shè),以便用筆算方法來求解它們.然而,隨著計(jì)算能力的提高,人們可以使用高效的數(shù)值方法處理完整的模型,而無須簡化它們.盡管如此,每種方法都有其局限之處,為了高效使用它們,人們必須了解它們是如何工作的.

計(jì)算方法是許多高校工科專業(yè)開設(shè)的一門重要而實(shí)用的課程.本課程旨在教學(xué)生如何運(yùn)用數(shù)學(xué)和計(jì)算機(jī)來解決各種實(shí)際應(yīng)用問題.?dāng)?shù)值計(jì)算被認(rèn)為是數(shù)學(xué)理論與實(shí)際領(lǐng)域目標(biāo)之間的橋梁.因此,本課程的教學(xué)應(yīng)使學(xué)生掌握解決實(shí)際工程應(yīng)用問題的各種計(jì)算方法.

計(jì)算方法是一門數(shù)學(xué)類型課程,但又與在修學(xué)生已學(xué)完的數(shù)學(xué)課(例如微積分、線性代數(shù))不同.從基本的思想方法和思維方式,到課程的學(xué)習(xí)方法,它都有重大的變化.學(xué)生所熟悉的大部分?jǐn)?shù)學(xué)課的共同特點(diǎn)應(yīng)該是抽象和嚴(yán)格的演繹,思維邏輯嚴(yán)密.而計(jì)算方法這門課,除了保持上述的特點(diǎn)之外,“歸納”成為不容忽視的思維方法,討論的核心問題是“誤差”.在以往的數(shù)學(xué)課程中,課后認(rèn)真閱讀教科書和做一定數(shù)量的習(xí)題十分重要;現(xiàn)在學(xué)生除了讀書和做習(xí)題外,使用計(jì)算機(jī)進(jìn)行計(jì)算變得同樣重要.

當(dāng)前,我們必須考慮如何向以技術(shù)為導(dǎo)向的工科專業(yè)學(xué)生教授計(jì)算方法.計(jì)算科學(xué)在研究領(lǐng)域的知名度越來越高,這意味著教師在計(jì)算方法教學(xué)中應(yīng)該提供具體的編程示范,使學(xué)生能夠回到他們的具體的“計(jì)算農(nóng)場”,做出實(shí)際的工作.為此,本文探討了一些利用MATLAB 軟件對(duì)工科專業(yè)學(xué)生進(jìn)行計(jì)算方法課程教學(xué)的若干具體操環(huán)節(jié).

二、MATLAB 軟件的優(yōu)勢

MATLAB 是一個(gè)用于數(shù)值計(jì)算的交互式系統(tǒng).20世紀(jì)70年代末,數(shù)值分析大師Cleve Moler 編寫了MATLAB 最初的Fortran 版本.此版本隨后在教學(xué)和研究中很受歡迎,并演變成了一個(gè)用C 語言編寫的商業(yè)軟件包.多年來,MATLAB在科研和工業(yè)領(lǐng)域中得到了廣泛的應(yīng)用.

與傳統(tǒng)的數(shù)值計(jì)算方法(例如編寫Fortran 或C 程序并調(diào)用數(shù)值庫)相比,MATLAB 有以下優(yōu)勢:

1.它允許用非常高級(jí)的語言快速、輕松地編寫代碼;

2.?dāng)?shù)據(jù)結(jié)構(gòu)不需太多關(guān)注;特別是,在首次使用之前,不需要聲明數(shù)組;

3.交互式界面允許快速實(shí)驗(yàn)和輕松調(diào)試;

4.提供高質(zhì)量的圖形和可視化設(shè)施;

5.MATLAB 的M 文件可在多種平臺(tái)上完全移植;

6.可以添加工具箱來擴(kuò)展系統(tǒng),例如,提供專門的信號(hào)處理設(shè)施和符號(hào)操作能力;

7.在互聯(lián)網(wǎng)上可以免費(fèi)獲得用戶提供的各種M 文件.

此外,MATLAB 是一種現(xiàn)代編程語言和問題解決環(huán)境.它具有復(fù)雜的數(shù)據(jù)結(jié)構(gòu),包含內(nèi)置的編輯和調(diào)試工具,并支持面向?qū)ο缶幊蹋@些因素使MATLAB 成為一種優(yōu)秀的教學(xué)語言,也是研究和解決實(shí)際問題的有力工具.與編譯語言相比,MATLAB 不可避免地會(huì)損失一些效率,但內(nèi)置的性能加速技術(shù)提升了效率,用戶還可以使用MEX 文件鏈接到編譯的Fortran 或C 代碼.

隨著MATLAB 軟件的發(fā)展,它為科學(xué)計(jì)算開創(chuàng)了一個(gè)新時(shí)代.現(xiàn)在,人們可以非常簡潔地、完整詳細(xì)地利用MATLAB 軟件實(shí)現(xiàn)高級(jí)數(shù)值算法,從而提供很多實(shí)際應(yīng)用問題的解決方案.對(duì)于求解應(yīng)用數(shù)學(xué)中的某些問題,現(xiàn)在僅幾頁紙所覆蓋的內(nèi)容甚至比幾十年前的一本書的內(nèi)容都要多.與一些基礎(chǔ)計(jì)算語言(如Fortran 語言或C 語言)相比,MATLAB 軟件在修改已有程序或者編寫新程序方面具有更顯著的工作效率.在編程解決一些新問題方面,利用MATLAB 軟件能夠獲得前所未有的輕松.

三、利用MATLAB 軟件對(duì)算例進(jìn)行示范編程的必要性

我們使用MATLAB 環(huán)境,是因?yàn)樗鼘?duì)初學(xué)者來說比較容易上手,而且它支持通過實(shí)驗(yàn)來處理計(jì)算思想.這是發(fā)展計(jì)算直覺的核心,也就是說通過編寫程序可以建立計(jì)算直覺.如果直覺是一種方向感,那么計(jì)算直覺就是一種計(jì)算方向感.雖然培養(yǎng)良好的計(jì)算直覺是一個(gè)明確的優(yōu)先事項(xiàng),但我們的首要目標(biāo)是將計(jì)算的興奮感與對(duì)其約束條件及其與其他方法的聯(lián)系的欣賞關(guān)聯(lián)起來.計(jì)算、理論和實(shí)驗(yàn)之間的相互作用尤為重要.

通過教授計(jì)算機(jī)編程范例,我們可以促進(jìn)學(xué)生上述計(jì)算直覺的發(fā)展.在教學(xué)、寫作和研究過程中,沒有比精心挑選的算例更能解釋問題的了.另外,除了解釋作用,例子也能引起學(xué)生的興趣,學(xué)生的積極性與學(xué)習(xí)成績之間一般存在正相關(guān)關(guān)系.在每一節(jié)課中,如果在每一個(gè)抽象的算法表述和收斂性結(jié)論之后出現(xiàn)算例,那么就能生動(dòng)地說明問題.無論學(xué)生的之前掌握的程度如何,例子能讓他們真正參與課堂學(xué)習(xí).當(dāng)計(jì)算方法課程完成后,詳細(xì)的、恰當(dāng)定位的例子可以讓這門課程令人難忘.

四、數(shù)值算法編程教學(xué)設(shè)計(jì)

首先,教師在算法實(shí)現(xiàn)之前,應(yīng)該教給學(xué)生基本的MATLAB 操作、常用命令和代碼.

教師運(yùn)用MATLAB 程序設(shè)計(jì),讓學(xué)生用在理論課學(xué)到的各種數(shù)值算法來解決典型的數(shù)值計(jì)算問題.在具體程序設(shè)計(jì)環(huán)節(jié),教師應(yīng)該通過演示編程過程和程序運(yùn)行結(jié)果,使得學(xué)生進(jìn)一步熟悉所學(xué)算法,同時(shí)能教給學(xué)生一些編程思路和程序語言的編寫規(guī)范.在此過程中,我們最好將所有算法編輯為MATLAB 函數(shù)文件,這樣方便修改,還可以使得程序的適用性和普及性更廣.在程序?qū)崿F(xiàn)過程中,我們對(duì)求解同一問題的各種不同算法在CPU 運(yùn)算時(shí)間、所需迭代次數(shù)、誤差和殘差等方面進(jìn)行比較.

最后,教師可以對(duì)學(xué)生布置一些同類型的程序設(shè)計(jì)作業(yè),并且完成實(shí)驗(yàn)報(bào)告,以測試他們掌握新算法的程度.

五、算例的MATLAB 實(shí)現(xiàn)舉例

以常微分方程初值問題的數(shù)值解為例,說明三種數(shù)值算法的實(shí)現(xiàn)過程.

例用Euler 法、改進(jìn)Euler 法與四階經(jīng)典Runge-Kutta法分別求解如下常微分方程初值問題:

與精確解比較,其中精確解為y=x(ex-e),計(jì)算過程中小數(shù)點(diǎn)后保留4 位.

Euler 法的具體格式為:

yn+1=y(tǒng)n+hf(xn,yn)

Euler 法的具體M 文件代碼為:

取h=0.1,計(jì)算結(jié)果見表1.

表1 Euler 法的計(jì)算結(jié)果

改進(jìn)Euler 法的具體格式為:

改進(jìn)Euler 法的具體M 文件代碼為:

取h=0.1,計(jì)算結(jié)果見表2.

表2 改進(jìn)Euler 法的計(jì)算結(jié)果

四階經(jīng)典Runge-Kutta 法的具體格式為:

四階經(jīng)典Runge-Kutta 法的具體M 文件代碼為:

取h=0.1,計(jì)算結(jié)果見表3.

表3 四階經(jīng)典Runge-Kutta 法的計(jì)算結(jié)果

我們通過比較三種方法的計(jì)算結(jié)果,讓學(xué)生觀察到改進(jìn)Euler 法的精度高于Euler 法的精度,而四階經(jīng)典Runge-Kutta 法的精度明顯高于Euler 法與改進(jìn)Euler 法的精度.在理論分析上,我們已經(jīng)證明Euler 法、改進(jìn)Euler 法與四階經(jīng)典Runge-Kutta 法的精度分別是一階、二階與四階.通過對(duì)比,學(xué)生觀察到數(shù)值結(jié)果和理論分析的一致性.

此算例很好地展示了為解決同一問題所構(gòu)造的不同算法的MATLAB 程序語言之間的差別,使學(xué)生認(rèn)識(shí)到計(jì)算方法的核心任務(wù)就是設(shè)計(jì)、分析和用高效的算法去解決各種重要的數(shù)學(xué)問題.教師通過讓學(xué)生自己編寫程序、檢查計(jì)算結(jié)果,使他們進(jìn)一步熟悉算法格式.

六、結(jié)論

本文討論了在計(jì)算方法教學(xué)中通過具體算例使用MATLAB 進(jìn)行編程實(shí)現(xiàn)的教學(xué)方法.由于計(jì)算方法是工科專業(yè)的一門重要的核心課程,我們通過這種教學(xué)手段可以很好地發(fā)展學(xué)生利用數(shù)值計(jì)算方法解決實(shí)際應(yīng)用問題的能力.

猜你喜歡
四階算例計(jì)算方法
四階p-廣義Benney-Luke方程的初值問題
隨機(jī)振動(dòng)試驗(yàn)包絡(luò)計(jì)算方法
基于振蕩能量的低頻振蕩分析與振蕩源定位(二)振蕩源定位方法與算例
不同應(yīng)變率比值計(jì)算方法在甲狀腺惡性腫瘤診斷中的應(yīng)用
互補(bǔ)問題算例分析
基于CYMDIST的配電網(wǎng)運(yùn)行優(yōu)化技術(shù)及算例分析
帶參數(shù)的四階邊值問題正解的存在性
一種伺服機(jī)構(gòu)剛度計(jì)算方法
燃煤PM10湍流聚并GDE方程算法及算例分析
四階累積量譜線增強(qiáng)方法的改進(jìn)仿真研究
吉安市| 本溪| 华亭县| 龙井市| 甘谷县| 昌江| 临高县| 浏阳市| 平阴县| 巴青县| 醴陵市| 肇州县| 灵川县| 吉木乃县| 筠连县| 莫力| 武山县| 建宁县| 光山县| 通化县| 诏安县| 望都县| 伊金霍洛旗| 长白| 乐平市| 桦甸市| 抚顺市| 兴海县| 武夷山市| 香港 | 牟定县| 教育| 卫辉市| 张掖市| 依兰县| 安阳县| 聂拉木县| 奉化市| 虞城县| 东台市| 临泉县|