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格式閱讀”

主站蜘蛛池模板: 成人毛片免费在线观看| 夜夜拍夜夜爽| 精品人妻一区无码视频| 久久一色本道亚洲| 国产欧美另类| 亚洲最猛黑人xxxx黑人猛交| 久久a毛片| 丰满的熟女一区二区三区l| 午夜高清国产拍精品| 国产精品爆乳99久久| 欧美亚洲欧美| 国产av无码日韩av无码网站| 亚洲成人精品久久| 日韩欧美在线观看| 国产青榴视频| 久草中文网| 日韩不卡免费视频| 天堂亚洲网| 依依成人精品无v国产| 九九九精品成人免费视频7| 国产网友愉拍精品| 免费无码在线观看| 免费国产高清视频| 亚洲成a人片77777在线播放| 久久亚洲精少妇毛片午夜无码| 日韩一级二级三级| 国产一区二区三区在线观看免费| 日韩成人免费网站| 婷婷色一二三区波多野衣| 乱人伦中文视频在线观看免费| 人妻丝袜无码视频| 亚洲国产天堂在线观看| 亚洲天堂网2014| 亚洲人成影院午夜网站| 免费一级毛片在线播放傲雪网| 亚洲日韩精品无码专区97| 精品自窥自偷在线看| 亚洲天堂视频网站| 亚洲国产天堂久久九九九| 97精品久久久大香线焦| 国产呦视频免费视频在线观看| 久久久精品无码一二三区| www.youjizz.com久久| 91精品国产一区| 999精品在线视频| 国产综合精品日本亚洲777| 久久综合色播五月男人的天堂| 精品亚洲国产成人AV| 天天综合亚洲| 国产日本欧美亚洲精品视| 久久国产精品无码hdav| 国产精品三级专区| 亚洲欧美日韩天堂| 72种姿势欧美久久久大黄蕉| 亚洲日韩欧美在线观看| 在线观看国产黄色| 综合亚洲色图| 韩日无码在线不卡| 制服丝袜一区二区三区在线| 成人亚洲国产| 久久久亚洲国产美女国产盗摄| 亚洲美女一级毛片| 国产精品污视频| 91一级片| 日本成人不卡视频| 国产精品欧美激情| 久久婷婷综合色一区二区| 一区二区午夜| 日本91在线| 亚洲天堂视频网站| 九九久久99精品| 久久99国产综合精品1| 国产Av无码精品色午夜| 日韩午夜伦| 亚洲经典在线中文字幕| 日本午夜影院| 9cao视频精品| 久久国产精品77777| 丁香五月激情图片| 国产永久免费视频m3u8| 免费毛片全部不收费的| 欧洲亚洲一区|