999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

研究生《數值分析》課程數值積分的Matlab實現問題的教學研究

2011-12-31 00:00:00戈慈水
科教導刊 2011年18期

摘要根據《數值分析》課程的實踐性特點,在數值積分內容的教學中融入Matlab實現問題的教學,結合問題教學法以提高學生對數值積分方法的理解和應用能力,有利于研究生創新能力的培養。

關鍵詞 數值分析 數值積分 算法 Matlab實現 問題教學法

中圖法分類:G643 文獻標識碼:A

Teaching Research of Matlab Realization of Numerical Integration in

\"Numerical Analysis\" Curriculum for Postgraduate Students

GE Cishui

(Department of Mathematics physics, Anhui University of Architecture, Anhui, Hefei 230022)

AbstractBased on the practical characteristics of numerical analysis curriculum, matlab realizations of numerical integrations are introduced in the teaching procedure. Combined with question-based teaching method, it aims to enhance students' understanding and application capability of numerical integration methods, helpful to train their innovation abilities.

Key wordsnumerical analysis; numerical integration; algorithm; matlab realization; question-based teaching method

0 引言

數值分析也稱為數值計算方法,是研究用計算機求數學問題近似解的方法、過程及其理論的一個數學分支。數值分析可以說是科學計算的基礎和依托,正如我國著名數學家馮康教授所說:數值分析的發展對于提高計算能力的貢獻是與新一代計算機的研制同等重要。在我國,幾乎所有工科院校碩士研究生都開設了《數值分析》課程。

Matlab是一個功能強大的科學計算平臺,它具有強大的數值計算、符號計算和可視化功能,它提供了大量的函數庫、工具箱幾乎涵蓋了所有的工程計算領域,目前Matlab已成為最為普遍的科學計算工具之一。近年來,人們已意識到在《數值分析》課程的課堂教學和實驗教學中引入Matlab科學計算軟件的重要性,Matlab軟件已替代C語言成為輔助數值分析課程教學的首選,事實上,Matlab軟件已成為諸多課程,如:自動控制理論、數字信號處理、動態系統仿真等課程的輔助教學工具,另外掌握Matlab軟件本身也對我們開展科學研究和解決工程問題至關重要。

數值積分是《數值分析》課程的重要內容之一,但各種研究生用《數值分析》教材講解數值積分理論與方法時,對數值積分的軟件實現則不加介紹或介紹較少,且融入不夠,特別對多元函數的數值積分,僅僅以矩形區域上二重積分為例作簡單介紹,這遠遠不能滿足工科研究生的學習和應用需要。

本文根據《數值分析》課程的實踐性特點,在數值積分的教學中融入Matlab實現問題的教學,結合問題教學法,以提高學生對數值積分方法的理解和應用能力,有利于工科研究生創新能力的培養。

1 數值積分Matlab實現的問題教學法

數值積分計算的問題很多,如振蕩積分問題、無界區域上函數積分問題、無界函數積分問題、高維積分問題等等,但從Matlab實現上來說,到目前Matlab系統還沒有直接提供一般區域上的三元及三元以上函數的數值積分指令等。

利用問題教學法來討論和解決數值積分問題的Matlab實現,可以激發學生學習的興趣,從所求解問題的性質上找原因、從算法上找原因,積極思維,努力給出解決實際問題的方案,提高綜合應用來解決實際問題的能力。

下面列舉三個數值積分的Matlab實現問題,來說明問題教學法在課堂教學或實驗教學中的應用。

1.1 定積分exsin(1000x)dx的計算問題

下面三種方法以及獲得的結果

(1)quad(@(x)exp(x).*sin(1000*x),0,pi)

運行該指令后顯示:Warning: Maximum function count exceeded; singularity likely.

顯示結果: -3.917208719625272

(2)quadl(@(x)exp(x).*sin(1000*x),0,pi)

運行該指令后顯示:Warning: Maximum function count exceeded; singularity likely.顯示結果:1.722039000823277

(3)quadgk(@(x)exp(x).*sin(1000*x),0,pi)

顯示結果:-0.022140670492099

提出問題:為什么上面三種方法獲得的結果會不同呢?

問題分析:這是 = 1000的高頻振蕩積分問題,quad指令和quadl指令采用的算法不大適合求振蕩積分,所給結果不正確。由于本定積分的被積函數的原函數是初等函數,所以可用int指令來獲得正確結果:

syms x

vpa(int(exp(x)*sin(1000*x),0,pi),16)

顯示結果:0.02214067049210878

quadgk有一定的求振蕩積分的功能,上述(3)中所給結果精度較高。注意當振蕩頻率再高時,如計算exsin(1000x)dx,此時若用指令

quadgk(@(x)exp(x).*sin(10000*x),0,pi),

計算結果也會出現錯誤,為獲得正確的結果,必須設置較高的“MaxIntervalCount”,如采用指令:quadgk(fun,0,pi,'MaxIntervalCount',10000)。由上可知,求高頻振蕩積分必須選用quadgk指令、設置較高的“MaxIntervalCount”選項值。

1.2 二重積分的計算問題,其中D是由拋物線y = x2,直線x = 10以及x軸所圍成的區域

二重積分的計算問題首先要轉化為累次積分的計算問題,上述問題可轉化為計算,計算此累次積分方法很多,例如下面指令:

(1)dblquad(@(x,y)(x.^2+y).*sin(x+y.^2).*(y>=0 y<=x.^2), 0, 10, 0, 100, ...

1e-6, @quadl)

顯示結果:-70.483695211568843,運行時間:19.962813 秒

(2)quad2d(@(x,y)(x.^2+y).*sin(x+y), 0, 10, 0, @(x)x.^2, 'Abstol',1e-6)

顯示結果:-70.483662809994698,運行時間:0.485997 秒

(3)quad2dggen(@y,x)(x.^2+y).*sin(x+y),@(x), @(x)x.^2, 0, 10, 1e-6)

顯示結果:-70.483662809308356,運行時間:0.105659 秒

問題:為什么上面三種方法所需時間相差數十倍乃至上百倍?

分析:方法(1)是將一般的積分區域“延拓”為矩形區域,利用dblquad指令計算,這樣不可避免地進行了很多0乘運算,費時低效;方法(2)是利用Matlab系統quad2d指令,運行效率尚可,它將一般的積分區域映射到矩形區域,然后利用自適應Lobatton算法來計算,有時需要設置較高的“MaxFunEvals”選項值;方法(3)為NIT數值積分工具箱提供的方法,采用了Gauss算法,精度較高,用時最少。

運行時間的差異與指令所采用的算法有關,同時也與所要求的精度有關。若同一指令,要求的精度較高,可通過設置較小的“tol”值或“Abstol”選項值達到,而這時運行時間則會成倍增加。

1.3 三重積分的計算問題,其中由xoy坐標面與旋轉拋物面z = 16 - x2 - y2所圍成的立體區域

目前Matlab系統尚沒有直接提供一般區域上的三元及以上函數的數值積分指令,下面的方法(1)是將一般積分區域“延拓”為長方體區域,然后利用triplequad指令進行計算

(1)triplequad(@(x,y,z)(x.*z+y.^2).*log(1+x.^2+z).*(x.^2+y.^2<=16) .*...

(z>=0 z<=16-x.^2-y.^2), -4, 4, -4, 4, 0, 16)

運行結果:1.929759987691869e+003,運行時間:234.935393秒

問題:運行時間較長,怎樣高效解決一般立體區域上三重積分的計算問題?

分析:方法(1)是將一般積分區域積分“延拓”為長方體區域積分,這樣不可避免地引入了很多0乘運算,故費時低效。能否用解決二元函數數值積分問題的思路來解決此三重積分的計算問題呢?效果較方法(1)如何?

為此先將上面三重積分轉化為累次積分

然后利用一元函數和二元函數數值積分指令以及Matlab系統提供的函數arrayfun,進行組合來求一般立體區域上三元函數的數值積分,方法如下:

(2)quad2d(@(x,y) arrayfun(@(x,y)quadgk(@(z)(x.*z+y.^2).*log(1+x.^2+z), ...

0,16-x.^2-y.^2),x,y),-4,4,@(x)-sqrt(16-x.^2),@(x)sqrt(16-x.^2))

運行結果:1.930186638624715e+003,運行時間:4.925542秒

(3)quadgk(@(z) arrayfun(@(z)quad2d(@(x,y)(x.*z+y.^2).*log(1+x.^2+z), ... -sqrt(16-z),sqrt(16-z),@(x)-sqrt(16-z-x.^2),@(x)sqrt(16-z-x.^2)),z),0,16)

運行結果:1.930186640541383e+003,運行時間:0.468731秒

方法(2)是利用quadgk+quad2d組合方法,先二重后一重,方法(3)是利用quad2d+quadgk組合方法,先一重后二重,從結果上看這兩種方法不但所獲得的結果精度較高,而且用時顯著減少,其中方法(3)運行效率更高一些。

2 結語

將數值積分的Matlab實現融入《數值分析》課程的教學,通過問題教學法在課堂教學和實驗教學中的應用,有助于學生用數值分析的理論和方法分析計算方法所暴露出的問題,找出失敗的原因和解決問題的辦法,這樣既能加深學生對數值積分方法的理解和記憶,又能提高他們解決實際問題的能力,同時還可以節省時間。

工程上涉及數值積分的問題很多,例如:涉及振蕩積分、高維積分、無界函數的數值積分等實際工程問題,都可以作為大型作業,布置給學生課后思考解答,充分發揮學生學習的自主性,鍛煉學生查閱資料和使用軟件幫助文檔功能,有利于學生綜合解決實際問題的能力和自主創新能力的培養。

基金項目:安徽省高等學校省級教學質量與教學改革工程項目“《數值分析》課程教學內容優化與組合式教學方法的探索研究”[2008jyxm325 ]

參考文獻

[1]孫志忠等.數值分析(第2版)[M].南京:東南大學出版社,2006.

[2]顏慶津.數值分析(第3版)[M].北京:北京航空航天大學出版社,2006.

[3]張志涌等.MATLAB R2010a教程[M].北京航空航天大學出版社,2010.

[4]吳曉勤等.數值分析課程中算法設計的教學[J].湖南工業大學學報,2010.24(2):68-71.

“本文中所涉及到的圖表、公式、注解等請以PDF格式閱讀”

主站蜘蛛池模板: 91探花在线观看国产最新| 精品国产美女福到在线不卡f| 午夜毛片免费观看视频 | 国内精品视频区在线2021 | 成年网址网站在线观看| 女人一级毛片| 99久久精品无码专区免费| 18黑白丝水手服自慰喷水网站| 免费毛片全部不收费的| 片在线无码观看| 狠狠v日韩v欧美v| 欧美福利在线| 精品一区二区三区自慰喷水| 国产aaaaa一级毛片| 97视频免费看| 日本免费一级视频| 中国一级特黄视频| 久久情精品国产品免费| 亚洲AV无码一区二区三区牲色| 亚洲视频在线网| 色综合天天娱乐综合网| 激情爆乳一区二区| 国产欧美视频综合二区| 国产精品欧美激情| 91久久精品国产| 欧美成a人片在线观看| 日韩少妇激情一区二区| 99久久精品国产综合婷婷| 亚洲欧洲免费视频| 亚洲国产理论片在线播放| 久久香蕉国产线看观| 欧美精品不卡| 成人午夜免费视频| 国产不卡一级毛片视频| 欧美成人影院亚洲综合图| 欧美啪啪精品| 欧美激情第一欧美在线| 国产精品综合色区在线观看| 无码高清专区| 亚洲九九视频| 欧美午夜精品| 亚洲国产天堂久久综合226114| 一区二区日韩国产精久久| 免费观看男人免费桶女人视频| 毛片手机在线看| 久久精品人人做人人爽97| 播五月综合| 爆操波多野结衣| 国产欧美日韩91| 一本大道香蕉高清久久| 伊人成人在线视频| 欧美日本激情| 97色伦色在线综合视频| 香蕉久久国产超碰青草| 亚洲一级毛片免费观看| jizz国产视频| 国国产a国产片免费麻豆| 香港一级毛片免费看| 亚洲浓毛av| 国产乱人免费视频| 日韩免费成人| 亚洲第一福利视频导航| 欧美不卡视频在线| 欧美一区二区三区不卡免费| 国产成人啪视频一区二区三区| 亚洲精品无码不卡在线播放| 五月丁香在线视频| 美女视频黄又黄又免费高清| 亚洲最大在线观看| 日韩123欧美字幕| 精品国产自| 91成人在线观看| 日本成人福利视频| 亚洲色图另类| 亚洲欧美h| 中国国产高清免费AV片| 一级毛片在线免费视频| 日本亚洲国产一区二区三区| 在线视频精品一区| 538国产在线| 日本午夜影院| 国产在线97|