matlab计算微分ppt,matlab-ch013(数值计算-微积分)20090923.ppt
matlab-ch013(數(shù)值計(jì)算-微積分)20090923.ppt
第13講 數(shù)值計(jì)算 —微積分,張建瓴,§13.1 數(shù)值積分,在工程教學(xué)和應(yīng)用中,除了進(jìn)行數(shù)據(jù)逼近外,還要求逼近曲線下面的面積,這就是積分問題。,一、數(shù)值積分方法,典型的數(shù)值積分方法有:用常數(shù)(0階多項(xiàng)式)近似函數(shù)矩形法;用直線(一階多項(xiàng)式)近似函數(shù)曲線的梯形法;用拋物線(二階多項(xiàng)式)近似函數(shù)曲線的Simpson法,以及用一般多項(xiàng)式近似函數(shù)的Romberg法等。 y=sin(x^3)*sqrt(x) x求y, 表13-1列出了函數(shù)數(shù)值積分的一些命令。,表13-1 函數(shù)數(shù)值積分的命令,,常見的一元數(shù)值積分命令,MATLAT提供了在有限區(qū)間內(nèi),數(shù)值計(jì)算某函數(shù)下的面積(積分)的三種函數(shù):trapz,quad和quad8。,二、一(元)維數(shù)值積分,1、trapz函數(shù) 函數(shù)trapz通過計(jì)算若干梯形面積的和來(lái)近似某函數(shù)的積分,這些梯形如圖13-1所示,是通過使用函數(shù)humps的數(shù)據(jù)點(diǎn)形成。,圖13-2 較好的梯形逼近曲線下的面積示意圖 從圖中可明顯地看出,單個(gè)梯形的面積在某一段欠估計(jì)了函數(shù)真正的面積,而在其它段又過估計(jì)了函數(shù)的真正面積。如同線性插值,當(dāng)梯形數(shù)目越多時(shí),函數(shù)的近似面積越準(zhǔn)確。例如,在圖13-1中,如果我們大致增加一倍數(shù)目的梯形,我們得到如下(如圖13-2)所示的更好的近似結(jié)果。,trapz 函數(shù),對(duì)如上所示的兩個(gè)曲線,用trapz在區(qū)間-1>x=-1: 0.17: 2; % rough approximation >>y=humps(x); >>area=trapz(x, y) % call trapz just like the plot command area = 25.9174,trapz 函數(shù)的應(yīng)用,>>x=-1: 0.07: 2; % better approximation >>y=humps(x); >>area=trapz(x , y) area = 26.6243 上述兩個(gè)結(jié)果不同是基于對(duì)圖形的觀察,粗略近似可能低估了實(shí)際面積。除非特別精確,沒有準(zhǔn)則說(shuō)明哪種近似效果更好。,trapz 函數(shù)的應(yīng)用,MATLAB提供的求積函數(shù)命令quad和quad8在使用時(shí),其遞推的層次限制在十層以內(nèi),達(dá)到這個(gè)限制則會(huì)提示警告信息,并且這兩個(gè)函數(shù)命令都不能解決可積的奇異值問題,例如,求解 。,quad函數(shù)和quad8函數(shù),函數(shù)quad和quad8完整的調(diào)用格式為: (1)q=quad( fun ,a,b,tol,trace,pl,p2,…) 采用Simpson法計(jì)算積分; (2)q=quad8( fun ,a,b,tol,trace,p1,p2,…) 采用八樣條Newton-Cotes公式求數(shù)值積分。 其中:fun是被積函數(shù),可以是表達(dá)式字符串、內(nèi)聯(lián)函數(shù)、M函數(shù)文件名,被積函數(shù)的自變量,一般采用字母x; a、b分別是積分的上、下限,都是確定的值;,quad和quad8函數(shù)調(diào)用格式,tol是一個(gè)二元向量,它的第一個(gè)元素用來(lái)控制相對(duì)誤差,第二個(gè)元素用來(lái)控制絕對(duì)誤差,缺省時(shí)積分的相對(duì)精度為0.001; trace如果取非零值時(shí),將以動(dòng)態(tài)圖形的形式展現(xiàn)積分的整個(gè)過程,若取零值,則不畫圖,其缺省值是0; pl和p2是向被積函數(shù)傳遞的參數(shù)。 在上面的調(diào)用格式中,前三個(gè)輸入?yún)?shù)是調(diào)用時(shí)必須的,而后面的輸入?yún)?shù)可缺省。,quad和quad8的參數(shù),MATLAB的函數(shù)quad和quad8是基于數(shù)學(xué)上的正方形概念來(lái)計(jì)算函數(shù)的面積。為獲得更準(zhǔn)確的結(jié)果,兩個(gè)函數(shù)在所需的區(qū)間都要計(jì)算被積函數(shù)。 與簡(jiǎn)單的梯形比較,這兩個(gè)函數(shù)進(jìn)行更高階的近似,而且quad8比quad更精確。這兩個(gè)函數(shù)的調(diào)用方法與fzero相同,即 >>area=quad(‘humps‘,-1,2) % find area between -1 and 2 area = 26.3450,quad和quad8函數(shù)的調(diào)用,>>area=quad8(‘humps‘,-1,2) area = 26.3450 注意: 這兩個(gè)函數(shù)返回完全相同的估計(jì)面積,而且這個(gè)估計(jì)值在兩個(gè)trapz面積的估計(jì)值之間。,quad和quad8函數(shù)的調(diào)用,求函數(shù)的數(shù)值積分 (1)建立函數(shù)funq function y=funq(x) y=x.^3+x.^2+2; (2)對(duì)被積函數(shù)funq進(jìn)行數(shù)值積分 q=quad( funq ,-1,1,le-4) %使用quad命令求數(shù)值積分 q= 4.6667,[例13-1] example13_1.m,q8=quad8( funq ,-1,1,le-4,1) %用quad8命令求數(shù)值積分 q8= 4.6667 程序的運(yùn)行結(jié)果顯示出積分的過程如圖13-3所示。,[例13-1],,一元函數(shù)積分中存在的問題,同樣存在于多重積分中。 1、積分限為常數(shù)的二重積分 多重積分使用函數(shù)dblquad,其完整的調(diào)用格式為: result=dblquad( fun ,inmin, inmax, outmin, outmax, tol, ) 其中:輸入?yún)?shù)fun是被積函數(shù),可以直接用字符串內(nèi)聯(lián)函數(shù)或M函數(shù)文件表達(dá),但不論什么形式,該被積函數(shù)應(yīng)有兩個(gè)變量,即內(nèi)變量和外變量。內(nèi)變量接受向量輸入,外變量接受標(biāo)量輸入。被積函數(shù)的輸出是與內(nèi)變量同長(zhǎng)的向量。,三、多重?cái)?shù)值積分,輸入?yún)?shù)inmin,inmax是內(nèi)變量的下限和上限; outmin、outmax是外變量的下限和上限; tol的含義與命令quad中的情況相同; 是積分方法選項(xiàng),如“quad”和“quad8”等。 注意: 該命令不適用于內(nèi)積分區(qū)間上、下限為函數(shù)的情況。,dblquad函數(shù)的參數(shù),求積分上下限都為常數(shù)的二重積分,被積函數(shù)為y*sin(x)+s*cos(y),其中x的取值范圍是π到2π,y的取值范圍是0到π。 (1)建立名為integrnd的M文件 fimction out=integrnd(x,y) out=y*sin(x)+x*cos(y) (2)用函數(shù)dblquad命令來(lái)求integrnd的二重積分 result=dblquad( integrnd ,pi,2*pi,0,pi) result= -9.8698,〖例13-6〗 example13_6.m,對(duì)于內(nèi)積分上下限是外積分變量的函數(shù)的積分問題,求解過程較為麻煩。 一般方法都是先求出 ,然后再求 。,2、內(nèi)積分上下限為函數(shù)的二重積分,,,【例13-10】計(jì)算。 (1)編寫內(nèi)積分區(qū)間上下限的M函數(shù)文件 [x_low.m] function f=x_low(y) f=sqrt(y); (2)編寫被積函數(shù) 被積函數(shù)函數(shù)采用內(nèi)聯(lián)函數(shù)ff=inline( x.^2+y.^2 , x , y )表示。 (3)被積函數(shù)用內(nèi)聯(lián)函數(shù)表達(dá)時(shí),運(yùn)行以下指令,即得結(jié)果 >>ff=inline( x.^2+y.^2 , x , y );%被積函數(shù)的內(nèi)聯(lián)函數(shù)表達(dá) >>SS=double_int(ff, x_low ,2,1,4) SS = 9.5810 (4)本題用符號(hào)計(jì)算很容易獲得高精度解 >>Ssym=vpa(int(int( x^2+y^2 , x , sqrt(y) ,2), y ,1,4)) Ssym = 9.580952380952381,
總結(jié)
以上是生活随笔為你收集整理的matlab计算微分ppt,matlab-ch013(数值计算-微积分)20090923.ppt的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 硬件监测软件 CapFrameX 1.7
- 下一篇: matlab如何添加度,matlab里的