第七講-定積分的近似計算課件_第1頁
第七講-定積分的近似計算課件_第2頁
第七講-定積分的近似計算課件_第3頁
第七講-定積分的近似計算課件_第4頁
第七講-定積分的近似計算課件_第5頁
已閱讀5頁,還剩71頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

問題背景和實驗目的定積分的近似計算定積分計算的基本公式是牛頓-萊布尼茲公式。但當被積函數(shù)的原函數(shù)不知道時,如何計算?這時就需要利用近似計算。特別是在許多實際應用中,被積函數(shù)甚至沒有解析表達式,而是一條實驗記錄曲線,或一組離散的采樣值,此時只能用近似方法計算定積分。本實驗主要研究定積分的三種近似計算算法:矩形法、梯形法和拋物線法。同時介紹Matlab計算定積分的相關函數(shù)。問題背景和實驗目的定積分的近似計算定積分計算的基本公式是1矩形法梯形法拋物線法

數(shù)值積分的常見算法主要內(nèi)容

Matlab求積分函數(shù)數(shù)值積分函數(shù):trapz、quad、dblquad、triplequad符號積分函數(shù):int矩形法數(shù)值積分的常見算法主要內(nèi)容Matlab求積分函2矩形法定積分的定義:定積分的近似計算矩形法定積分的定義:定積分的近似計算3矩形法d

充分小定積分的近似:

通常我們?nèi)∽簏c法右點法中點法點可以任意選取,常見的取法有:

左端點,右端點和中點。矩形法d充分小定積分的近似:通常我們?nèi)∽簏c法右點法中點4步長節(jié)點

右點法:

中點法:

左點法:左點法、右點法和中點法步長節(jié)點右點法:中點法:左點法:左點法、右點法和中點法5解:矩形法舉例==>h=1/100=0.01,xi=i*h,a=0,b=1,n=100例:用不同的矩形法計算下面的定積分(取n=100),

并比較這三種方法的相對誤差。左點法:右點法:中點法:(i=0,1,2,...,100)解:矩形法舉例==>h=1/100=0.01,xi=6理論值:左點法相對誤差:誤差分析矩形法舉例右點法相對誤差:中點法相對誤差:不同的方法有不同的計算精度有沒有更好的近似計算定積分的方法

?理論值:左點法相對誤差:誤差分析矩形法舉例右點法相對7定積分幾何意義定積分幾何意義8

曲邊小梯形的面積可以由直邊小梯形的面積來近似整個曲邊梯形的面積:梯形法曲邊小梯形的面積可以由直邊小梯形的面積來近似整個曲邊梯形9

如果我們n等分區(qū)間[a,b],即令:則==>梯形公式梯形法梯形公式與中點公式有什么區(qū)別

?如果我們n等分區(qū)間[a,b],即令:則==>梯形公式10解:==>例:用梯形法計算下面定積分(取n=100),

并計算相對誤差梯形法舉例a=0,b=1,n=100,f(x)=1/(1+x2)==>h=1/100=0.01,xi=i*h,yi=f(xi)

相對誤差:解:==>例:用梯形法計算下面定積分(取n=10011

2n等分區(qū)間[a,b],得該直線用拋物線代替,計算精度是否會更好?計算每個節(jié)點上的函數(shù)值:拋物線法在區(qū)間[x0,x2]上,用過以下三點的拋物線來近似原函數(shù)f(x)。2n等分區(qū)間[a,b],得該直線用拋物線代替,計算精12設過以上三點的拋物線方程為:則在區(qū)間[x0,x2]上,有y=

x2+x

+

=p1(x)

拋物線法設過以上三點的拋物線方程為:則在區(qū)間[x0,x2]上13同理可得:相加即得:拋物線法同理可得:相加即得:拋物線法14整理后可得:或辛普森(Simpson)公式拋物線法公式拋物線法整理后可得:或辛普森(Simpson)公式拋物線法公式15==>例:用拋物線法計算下面定積分(取n=100),

并計算相對誤差解:a=0,b=1,n=100,yi

=f(xi)=1/(1+xi2)相對誤差:拋物線法==>例:用拋物線法計算下面定積分(取n=100)16矩形法梯形法拋物線法

數(shù)值積分的常見算法Matlab函數(shù)

Matlab求積分函數(shù)數(shù)值積分函數(shù):trapz、quad、dblquad符號積分函數(shù):int矩形法數(shù)值積分的常見算法Matlab函數(shù)Matlab17矩形法總結Matlab數(shù)值積分函數(shù):trapz、quad、dblquad梯形法拋物線法矩形法總結Matlab數(shù)值積分函數(shù):trapz、qua18梯形法:trapztrapz(x,y)

x

為分割點(節(jié)點)組成的向量,

y為被積函數(shù)在節(jié)點上的函數(shù)值組成的向量。Matlab近似計算定積分的相關函數(shù)Matlab計算定積分函數(shù)介紹梯形法:trapztrapz(x,y)

x為分割點(節(jié)點19前面的做法例:用梯形法計算下面定積分(取n=100)解:a=0,b=1,n=100,yi

=f(xi)=1/(1+xi2)>>

x=0:1/100:1;>>

y=1./(1+x.^2);>>

trapz(x,y)trapz函數(shù)trapz(x,1./(1+x.^2))trapz舉例前面的做法例:用梯形法計算下面定積分(取n=100)20quad(f,a,b,tol)f=f(x)為被積函數(shù),[a,b]為積分區(qū)間,tol

為計算精度將自變量看成是向量拋物線法:quad不用自己分割積分區(qū)間可以指定計算精度,若不指定,缺省精度是10-6精度越高,函數(shù)運行的時間越長此處的函數(shù)f是數(shù)值形式,應該使用數(shù)組運算,即

點運算:.*,./,.\,.^

注:拋物線法quad(f,a,b,tol)將自變量看成是向量拋物線法:21解:>>

quad('1./(1+x.^2)',0,1)>>

quad('1./(1+x.^2)',0,1,10e-10)函數(shù)表達式一定要用單引號括起來!涉及的運算一定要用數(shù)組運算!例:用quad計算定積分:quad舉例解:>>quad('1./(1+x.^2)',0,1)>>22拋物線法計算二重積分:dblquaddblquad(f,a,b,c,d,tol)

tol

為計算精度,若不指定,則缺省精度為10-6

f可以是:

字符串;inline

定義的內(nèi)聯(lián)函數(shù);函數(shù)句柄

[a,b]

是第一積分變量的積分區(qū)間,

[c,d]

是第二積分變量的積分區(qū)間dblquad拋物線法計算二重積分:dblquaddblquad(f,23>>

f=inline('4*x*y+3*y^2');>>

I=dblquad(f,-1,1,0,2)

f(x,y)

中關于第一自變量的運算是數(shù)組運算,

即把x

看成是向量,y

看成是標量。也可以全部采用數(shù)組運算例2:計算二重積分>>

dblquad(inline('4*x*y+3*x^2'),-1,1,0,2)>>

dblquad(inline('4*x*y+3*x.^2'),-1,1,0,2)X例1:計算二重積分dblquad舉例>>f=inline('4*x*y+3*y^2');f(24例:計算二重積分>>

dblquad(@(x,y)4*x*y+3*x.^2,-1,1,0,2)指定x、y

分別是第一和第二積分變量>>

dblquad(inline('4*x*y+3*x.^2'),-1,1,0,2)被積函數(shù)f(x,y)的另一種定義方法:匿名函數(shù)>>

dblquad(@(y,x)4*x*y+3*x.^2,-1,1,0,2)下面的命令運行結果和上面的一樣嗎?dblquad舉例例:計算二重積分>>dblquad(@(x,y)4*x*y25int(f,a,b)

計算

f

關于默認自變量

的定積分,積分區(qū)間為[a,b]。int(f)

計算

f

關于默認自變量

的不定積分。int(f,v,a,b)

計算函數(shù)f

關于自變量v

的定積分,積分區(qū)間為[a,b]int(f,v)

計算函數(shù)f

關于自變量

v

的不定積分findsym(f,1)符號積分:intint符號積分int(f,a,b)int(f)計算f關于默認26>>

symsxy;>>

f=y*sin(x);>>

int(f,x)>>

int(f,y)>>

int(f)>>

int('a+b')ans=-y*cos(x)ans=1/2*y^2*sin(x)ans=-y*cos(x)ans=a*b+1/2*b^2例:指出下面各條語句的輸出結果int舉例>>symsxy;ans=-y*cos(x)ans=127例:用int函數(shù)計算定積分:解:>>

symsx;>>

f=1/(1+x^2);>>

int(f,x,0,1)>>

f=sym('1/(1+x^2)');>>

int(f,x,0,1)>>

int('1/(1+x^2)',x,0,1)或>>

int('1/(1+x^2)',0,1)或或int舉例例:用int函數(shù)計算定積分:解:>>symsx;>28double(a)將a

轉(zhuǎn)化為雙精度型,若a

是字符,則取對應的ASCII碼>>

a=3;>>

double(a)>>

double('a')例:ans=3ans=97其它相關函數(shù)double(a)>>a=3;例:ans=3ans29>>

x=1:0.001:2;>>

y=exp(x.^(-2));>>

trapz(x,y)梯形法:拋物線法:>>

quad('exp(x.^(-2))',1,2,10e-10)符號積分法:>>

syms

x>>

int('exp(x^(-2))',x,1,2)例1:用Matlab

函數(shù)近似計算積分數(shù)值實驗>>x=1:0.001:2;梯形法:拋物線法:>>q30拋物線法:>>

dblquad(inline('x+y^2'),0,2,-1,1)符號積分法:>>

f=int('x+y^2','y',-1,1);>>

int(f,0,2)數(shù)值實驗例2:用Matlab

函數(shù)近似計算二重積分拋物線法:>>dblquad(inline('x+y^231拋物線法計算三重積分:triplequadtriplequad(f,a,b,c,d,e,f,tol)

tol

為計算精度,若不指定,則缺省精度為10-6

f可以是:

字符串;inline

定義的內(nèi)聯(lián)函數(shù);函數(shù)句柄

[a,b]

是第一積分變量的積分區(qū)間,

[c,d]

是第二積分變量的積分區(qū)間

[e,f]是第二積分變量的積分區(qū)間triplequad拋物線法計算三重積分:triplequadtripleq32

f(x,y,z)

中關于前兩個自變量的運算是數(shù)組運算,

即把x,y看成是向量,z看成是標量。也可以全部采用數(shù)組運算例2:計算三重積分>>

triplequad(inline('4*x.*y+3*x.^2+z^2'),-1,1,0,2,0,1)>>

symsxyz>>int(int(int('4*x*y+3*x^2+z^2',x,-1,1),y,0,2),z,0,1)triplequad舉例f(x,y,z)中關于前兩個自變量的運算是數(shù)組運算,

33>>

triplequad(@(x,y,z)4*x.*y+3*x.^2+z^2,-1,1,0,2,0,1)指定x、y,

z

分別是第一、二、三積分變量>>

triplequad(inline('4*x.*y+3*x.^2+z^2'),-1,1,0,2,0,1)被積函數(shù)f(x,y,z)的另一種定義方法:匿名函數(shù)triplequad舉例例2:計算三重積分>>triplequad(@(x,y,z)4*x.*y+334梯形數(shù)值積分命令trapz()clearx=0:pi/100:pi;y=sin(x);trapz(x,y)plot(x,y,'b*')clearx=sort(rand(1,101)*pi);y=sin(x);trapz(x,y)plot(x,y,'rd')rand(1,101)產(chǎn)生101個均勻隨機數(shù),每個數(shù)都介于0-1之間梯形數(shù)值積分命令trapz()clearclearran35辛卜生求數(shù)值積分命令quad()clearfun=inline('1./(x.^3-2*x-5)')ezplot(fun,[0,2])[q,n]=quad(fun,0,2)辛卜生求數(shù)值積分命令quad()clear36二重積分dblquad()與三重積分fun=inline('y*sin(x)+x*cos(y)')Q=dblquad(fun,pi,2*pi,0,pi)[x,y]=meshgrid(pi:.1:2*pi,0:.1:pi);z=fun(x,y);mesh(x,y,z)二重積分dblquad()與三重積分fun=inline('37上機作業(yè)1.分別用梯形法與拋物線法,計算取n=120,并常識直接使用函數(shù)trapz()、quad()進行計算求解,比較結果的差異。2.試計算定積分注意:可以運用trapz()、quad()或附錄程序求解嗎?3.學習fuluBsum.m的程序設計方法,嘗試用函數(shù)sum改寫附錄A和附錄C的程序,避免for循環(huán)。上機作業(yè)1.分別用梯形法與拋物線法,計算取n=120,并38

問題背景和實驗目的定積分的近似計算定積分計算的基本公式是牛頓-萊布尼茲公式。但當被積函數(shù)的原函數(shù)不知道時,如何計算?這時就需要利用近似計算。特別是在許多實際應用中,被積函數(shù)甚至沒有解析表達式,而是一條實驗記錄曲線,或一組離散的采樣值,此時只能用近似方法計算定積分。本實驗主要研究定積分的三種近似計算算法:矩形法、梯形法和拋物線法。同時介紹Matlab計算定積分的相關函數(shù)。問題背景和實驗目的定積分的近似計算定積分計算的基本公式是39矩形法梯形法拋物線法

數(shù)值積分的常見算法主要內(nèi)容

Matlab求積分函數(shù)數(shù)值積分函數(shù):trapz、quad、dblquad、triplequad符號積分函數(shù):int矩形法數(shù)值積分的常見算法主要內(nèi)容Matlab求積分函40矩形法定積分的定義:定積分的近似計算矩形法定積分的定義:定積分的近似計算41矩形法d

充分小定積分的近似:

通常我們?nèi)∽簏c法右點法中點法點可以任意選取,常見的取法有:

左端點,右端點和中點。矩形法d充分小定積分的近似:通常我們?nèi)∽簏c法右點法中點42步長節(jié)點

右點法:

中點法:

左點法:左點法、右點法和中點法步長節(jié)點右點法:中點法:左點法:左點法、右點法和中點法43解:矩形法舉例==>h=1/100=0.01,xi=i*h,a=0,b=1,n=100例:用不同的矩形法計算下面的定積分(取n=100),

并比較這三種方法的相對誤差。左點法:右點法:中點法:(i=0,1,2,...,100)解:矩形法舉例==>h=1/100=0.01,xi=44理論值:左點法相對誤差:誤差分析矩形法舉例右點法相對誤差:中點法相對誤差:不同的方法有不同的計算精度有沒有更好的近似計算定積分的方法

?理論值:左點法相對誤差:誤差分析矩形法舉例右點法相對45定積分幾何意義定積分幾何意義46

曲邊小梯形的面積可以由直邊小梯形的面積來近似整個曲邊梯形的面積:梯形法曲邊小梯形的面積可以由直邊小梯形的面積來近似整個曲邊梯形47

如果我們n等分區(qū)間[a,b],即令:則==>梯形公式梯形法梯形公式與中點公式有什么區(qū)別

?如果我們n等分區(qū)間[a,b],即令:則==>梯形公式48解:==>例:用梯形法計算下面定積分(取n=100),

并計算相對誤差梯形法舉例a=0,b=1,n=100,f(x)=1/(1+x2)==>h=1/100=0.01,xi=i*h,yi=f(xi)

相對誤差:解:==>例:用梯形法計算下面定積分(取n=10049

2n等分區(qū)間[a,b],得該直線用拋物線代替,計算精度是否會更好?計算每個節(jié)點上的函數(shù)值:拋物線法在區(qū)間[x0,x2]上,用過以下三點的拋物線來近似原函數(shù)f(x)。2n等分區(qū)間[a,b],得該直線用拋物線代替,計算精50設過以上三點的拋物線方程為:則在區(qū)間[x0,x2]上,有y=

x2+x

+

=p1(x)

拋物線法設過以上三點的拋物線方程為:則在區(qū)間[x0,x2]上51同理可得:相加即得:拋物線法同理可得:相加即得:拋物線法52整理后可得:或辛普森(Simpson)公式拋物線法公式拋物線法整理后可得:或辛普森(Simpson)公式拋物線法公式53==>例:用拋物線法計算下面定積分(取n=100),

并計算相對誤差解:a=0,b=1,n=100,yi

=f(xi)=1/(1+xi2)相對誤差:拋物線法==>例:用拋物線法計算下面定積分(取n=100)54矩形法梯形法拋物線法

數(shù)值積分的常見算法Matlab函數(shù)

Matlab求積分函數(shù)數(shù)值積分函數(shù):trapz、quad、dblquad符號積分函數(shù):int矩形法數(shù)值積分的常見算法Matlab函數(shù)Matlab55矩形法總結Matlab數(shù)值積分函數(shù):trapz、quad、dblquad梯形法拋物線法矩形法總結Matlab數(shù)值積分函數(shù):trapz、qua56梯形法:trapztrapz(x,y)

x

為分割點(節(jié)點)組成的向量,

y為被積函數(shù)在節(jié)點上的函數(shù)值組成的向量。Matlab近似計算定積分的相關函數(shù)Matlab計算定積分函數(shù)介紹梯形法:trapztrapz(x,y)

x為分割點(節(jié)點57前面的做法例:用梯形法計算下面定積分(取n=100)解:a=0,b=1,n=100,yi

=f(xi)=1/(1+xi2)>>

x=0:1/100:1;>>

y=1./(1+x.^2);>>

trapz(x,y)trapz函數(shù)trapz(x,1./(1+x.^2))trapz舉例前面的做法例:用梯形法計算下面定積分(取n=100)58quad(f,a,b,tol)f=f(x)為被積函數(shù),[a,b]為積分區(qū)間,tol

為計算精度將自變量看成是向量拋物線法:quad不用自己分割積分區(qū)間可以指定計算精度,若不指定,缺省精度是10-6精度越高,函數(shù)運行的時間越長此處的函數(shù)f是數(shù)值形式,應該使用數(shù)組運算,即

點運算:.*,./,.\,.^

注:拋物線法quad(f,a,b,tol)將自變量看成是向量拋物線法:59解:>>

quad('1./(1+x.^2)',0,1)>>

quad('1./(1+x.^2)',0,1,10e-10)函數(shù)表達式一定要用單引號括起來!涉及的運算一定要用數(shù)組運算!例:用quad計算定積分:quad舉例解:>>quad('1./(1+x.^2)',0,1)>>60拋物線法計算二重積分:dblquaddblquad(f,a,b,c,d,tol)

tol

為計算精度,若不指定,則缺省精度為10-6

f可以是:

字符串;inline

定義的內(nèi)聯(lián)函數(shù);函數(shù)句柄

[a,b]

是第一積分變量的積分區(qū)間,

[c,d]

是第二積分變量的積分區(qū)間dblquad拋物線法計算二重積分:dblquaddblquad(f,61>>

f=inline('4*x*y+3*y^2');>>

I=dblquad(f,-1,1,0,2)

f(x,y)

中關于第一自變量的運算是數(shù)組運算,

即把x

看成是向量,y

看成是標量。也可以全部采用數(shù)組運算例2:計算二重積分>>

dblquad(inline('4*x*y+3*x^2'),-1,1,0,2)>>

dblquad(inline('4*x*y+3*x.^2'),-1,1,0,2)X例1:計算二重積分dblquad舉例>>f=inline('4*x*y+3*y^2');f(62例:計算二重積分>>

dblquad(@(x,y)4*x*y+3*x.^2,-1,1,0,2)指定x、y

分別是第一和第二積分變量>>

dblquad(inline('4*x*y+3*x.^2'),-1,1,0,2)被積函數(shù)f(x,y)的另一種定義方法:匿名函數(shù)>>

dblquad(@(y,x)4*x*y+3*x.^2,-1,1,0,2)下面的命令運行結果和上面的一樣嗎?dblquad舉例例:計算二重積分>>dblquad(@(x,y)4*x*y63int(f,a,b)

計算

f

關于默認自變量

的定積分,積分區(qū)間為[a,b]。int(f)

計算

f

關于默認自變量

的不定積分。int(f,v,a,b)

計算函數(shù)f

關于自變量v

的定積分,積分區(qū)間為[a,b]int(f,v)

計算函數(shù)f

關于自變量

v

的不定積分findsym(f,1)符號積分:intint符號積分int(f,a,b)int(f)計算f關于默認64>>

symsxy;>>

f=y*sin(x);>>

int(f,x)>>

int(f,y)>>

int(f)>>

int('a+b')ans=-y*cos(x)ans=1/2*y^2*sin(x)ans=-y*cos(x)ans=a*b+1/2*b^2例:指出下面各條語句的輸出結果int舉例>>symsxy;ans=-y*cos(x)ans=165例:用int函數(shù)計算定積分:解:>>

symsx;>>

f=1/(1+x^2);>>

int(f,x,0,1)>>

f=sym('1/(1+x^2)');>>

int(f,x,0,1)>>

int('1/(1+x^2)',x,0,1)或>>

int('1/(1+x^2)',0,1)或或int舉例例:用int函數(shù)計算定積分:解:>>symsx;>66double(a)將a

轉(zhuǎn)化為雙精度型,若a

是字符,則取對應的ASCII碼>>

a=3;>>

double(a)>>

double('a')例:ans=3ans=97其它相關函數(shù)double(a)>>a=3;例:ans=3ans67>>

x=1:0.001:2;>>

y=exp(x.^(-2));>>

trapz(x,y)梯形法:拋物線法:>>

quad('exp(x.^(-2))',1,2,10e-10)符號積分法:>>

syms

x>>

int('exp(x^(-2))',x,1,2)例1:用Matlab

函數(shù)近似計算積分數(shù)值實驗>>x=1:0.001:2;梯形法:拋物線法:>>q68拋物線法:>>

dblquad(inline('x+y^2'),0,2,-1,1)符號積分法:>>

f=int('x+y^2','y',-1,1);>>

int(f,0,2)數(shù)值實驗例2:用Matlab

函數(shù)近似計算二重積分拋物線法:>>dblquad(inline('x+y^269拋物線法計算三重積分:triplequadtriplequad(f,a,b,c,d,e,f,tol)

tol

為計算精度,若不指定,則缺省精度為10-6

f可以是:

字符串;inline

定義的內(nèi)聯(lián)函數(shù);函數(shù)句柄

[a,b]

是第一積分變量的積分區(qū)間,

[c,d]

是第二積分變量的積分區(qū)間

[

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論