Matlab微積分問題計(jì)算機(jī)求解實(shí)驗(yàn)教學(xué)課件
單擊此處編輯母版標(biāo)題樣式,單擊此處編輯母版文本樣式,*,單擊此處編輯母版標(biāo)題樣式,單擊此處編輯母版文本樣式,*,單擊此處編輯母版標(biāo)題樣式,單擊此處編輯母版文本樣式,第二級(jí),第三級(jí),第四級(jí),第五級(jí),*,*,單擊此處編輯母版標(biāo)題樣式,單擊此處編輯母版文本樣式,第二級(jí),第三級(jí),第四級(jí),第五級(jí),*,*,Matlab微積分問題計(jì)算機(jī)求解實(shí)驗(yàn),Matlab微積分問題計(jì)算機(jī)求解實(shí)驗(yàn)Matlab微積分問題計(jì)算機(jī)求解實(shí)驗(yàn)微積分實(shí)驗(yàn),Matlab微積分問題計(jì)算機(jī)求解實(shí)驗(yàn)Matlab微積分問題計(jì),1,微積分實(shí)驗(yàn),符號(hào)表達(dá)式基礎(chǔ)操作,1,符號(hào)微積分,2,數(shù)值積分,3,衛(wèi)星軌道的長(zhǎng)度,4,國(guó)土面積的計(jì)算,5,微積分實(shí)驗(yàn) 符號(hào)表達(dá)式基礎(chǔ)操作1符號(hào)微積分2數(shù)值積分3衛(wèi)星軌,2,sym 函數(shù)用來建立單個(gè)符號(hào)變量,一般調(diào)用格式為:,符號(hào)對(duì)象的建立:sym 和 syms,符號(hào)對(duì)象的建立,例:,a=sym(a),符號(hào)變量,=,sym,(A,),參數(shù),A,可以是一個(gè)數(shù)或數(shù)值矩陣,也可以是字符串,a,是符號(hào)變量,b,是符號(hào)常量,b=sym(1/3),c,是符號(hào)矩陣,c=sym(1 ab;c d),sym 函數(shù)用來建立單個(gè)符號(hào)變量,一般調(diào)用格式為:符號(hào)對(duì),3,符號(hào)對(duì)象的建立:sym 和 syms,符號(hào)對(duì)象的建立,syms 命令用來建立多個(gè)符號(hào)變量,一般調(diào)用格式為:,syms 符號(hào)變量1 符號(hào)變量2.符號(hào)變量n,例:,syms a b c,a=sym(a);,b=sym(b);,c=sym(c);,經(jīng)常用,符號(hào)對(duì)象的建立:sym 和 syms符號(hào)對(duì)象的建立 sym,4,符號(hào)表達(dá)式的建立:,例:,建立符號(hào)表達(dá)式通常有以下2種方法:,(1)用 sym 函數(shù)直接建立符號(hào)表達(dá)式。(2)使用已經(jīng)定義的符號(hào)變量組成符號(hào)表達(dá)式。,y=sym(sin(x)+cos(x),符號(hào)表達(dá)式的建立,符號(hào)表達(dá)式的建立:例:建立符號(hào)表達(dá)式通常有以下2種方法:,5,符號(hào)表達(dá)式的替換,subs(f,x,a),用 a 替換字符函數(shù) f 中的字符變量 x a 是可以是 數(shù)/數(shù)值變量/表達(dá)式 或 字符變量/表達(dá)式,若 x 是一個(gè)由多個(gè)字符變量組成的數(shù)組或矩陣,,則 a 應(yīng)該具有與 x 相同的形狀的數(shù)組或矩陣。,用給定的數(shù)據(jù)替換符號(hào)表達(dá)式中的指定的符號(hào)變量,符號(hào)表達(dá)式的替換subs(f,x,a)若 x 是一個(gè)由多個(gè),6,subs 舉例,f=sym(2*u);,subs(f,u,2),f2=subs(f,u,u+2),a=3;,subs(f2,u,a+2),subs(f2,u,a+2),syms x y,f3=subs(f,u,x+y),subs(f3,x,y,1,2),ans=4,f2=2*(u+2),ans=14,ans=2*(a+2)+2),f3=2*x+2*y,ans=6,例:指出下面各條語(yǔ)句的輸出結(jié)果,f=2*u,下面的命令運(yùn)行結(jié)果會(huì)是什么?,subs(f3,x,y,x+y,x+y),subs 舉例 f=sym(2*u);ans=4f2,7,計(jì)算函數(shù)值,練習(xí):,計(jì)算函數(shù)值練習(xí):,8,符號(hào)表達(dá)式的數(shù)值化,R=vpa(A)或 R=vpa(A,d),對(duì)符號(hào)表達(dá)式A求給定精度的值;d:輸出數(shù)值的有效位數(shù),Vpa的默認(rèn)精度是23位。,對(duì)符號(hào)求值的命令為vpa,即Variable precision arithmetic,digits(25);,p=vpa(pi),w=vpa(1+sqrt(5)/2,4),符號(hào)表達(dá)式的數(shù)值化R=vpa(A)或 R=vpa(A,d),9,計(jì)算極限,limit(f,x,a),:,計(jì)算,limit(f,a),:,當(dāng)默認(rèn)變量趨向于,a,時(shí)的極限,limit(f),:,計(jì)算,a,=0,時(shí)的極限,limit(f,x,a,right),:,計(jì)算右極限,limit(f,x,a,left),:,計(jì)算左極限,例:計(jì)算 ,,syms x h n;,L=limit(log(x+h)-log(x)/h,h,0),M=limit(1-x/n)n,n,inf),計(jì)算極限limit(f,x,a):計(jì)算例:計(jì)算,10,計(jì)算導(dǎo)數(shù),g=diff(f,v):求符號(hào)表達(dá)式 f 關(guān)于 v 的導(dǎo)數(shù),g=diff(f):求符號(hào)表達(dá)式 f 關(guān)于默認(rèn)變量的導(dǎo)數(shù),g=diff(f,v,n):求 f 關(guān)于 v 的 n 階導(dǎo)數(shù),diff,syms x;,f=sin(x)+3*x2;,g=diff(f,x),z=y2*sin(x2);,dxd2y=diff(diff(z,x,1),y,2),計(jì)算導(dǎo)數(shù)g=diff(f,v):求符號(hào)表達(dá)式 f 關(guān)于 v,11,計(jì)算導(dǎo)數(shù),練習(xí):,計(jì)算導(dǎo)數(shù)練習(xí):,12,計(jì)算積分,int(f,v,a,b):計(jì)算定積分,int(f,a,b):計(jì)算關(guān)于默認(rèn)變量的定積分,int(f,v):計(jì)算不定積分,int(f):計(jì)算關(guān)于默認(rèn)變量的不定積分,syms x;f=(x2+1)/(x2-2*x+2)2;,I=int(f,x),K=int(exp(-x2),x,0,inf),例:計(jì)算 和,計(jì)算積分int(f,v,a,b):計(jì)算定積分 syms,13,計(jì)算積分,練習(xí):,計(jì)算積分練習(xí):,14,符號(hào)求和,syms n;f=1/n2;,S=symsum(f,n,1,inf),S100=symsum(f,n,1,100),symsum,(u,n,n0,nn),:,symsum,(f,a,b),:,關(guān)于默認(rèn)變量求和,例:計(jì)算級(jí)數(shù) 及其前,100,項(xiàng)的部分和,例:計(jì)算函數(shù)級(jí)數(shù),syms n x;f=x/n2;,S=symsum(f,n,1,inf),符號(hào)求和 syms n;f=1/n2;symsum(,15,Taylor級(jí)數(shù)展開,taylor(f):求f在默認(rèn)自變量=0處的5階Taylor級(jí)數(shù)展開式定積分,taylor(f,n,x):求f在默認(rèn)自變量x=0處的n-1階Taylor級(jí)數(shù)展開式定積分,taylor(f,n,x,a):求f在默認(rèn)自變量x=a處的n-1階Taylor級(jí)數(shù)展開式定積分,syms x;,taylor(exp(x),x,7,-1),Taylor級(jí)數(shù)展開taylor(f):求f在默認(rèn)自變量=,16,上機(jī)作業(yè),1.,2.,3.,4.,5.,上機(jī)作業(yè)1.,17,數(shù)值積分,函數(shù)quad()采用遞推自適應(yīng)Simpson法計(jì)算積分,精度較高,較常使用。,q=quad(fun,a,b),q=quad(fun,a,b,tol),功能:求一元函數(shù)fun的積分,積分上限和下限分別為a和b,絕對(duì)誤差為tol,默認(rèn)時(shí)取值10-6,函數(shù)fun是待求解的對(duì)象,可以是字符串、內(nèi)聯(lián)函數(shù)、函數(shù)文件名的函數(shù)句柄。,數(shù)值積分函數(shù)quad()采用遞推自適應(yīng)Simpson法計(jì)算積,18,Simpson Formula,Simpson Formula,19,數(shù)值積分,【例】求exp(-x2)在0,1上的積分。,1、f=inline(exp(-x.2);內(nèi)聯(lián)函數(shù),q1=quad(f,0,1),數(shù)值積分【例】求exp(-x2)在0,1上的積分。1、f,20,數(shù)值積分,【例】求exp(-x2)在0,1上的積分。,2、編寫被積函數(shù)表達(dá)式,函數(shù)名為quad1.m,function f=quad1(x),f=exp(-x.2);,q2=quad(quad1,0,1),數(shù)值積分【例】求exp(-x2)在0,1上的積分。2、編,21,數(shù)值積分,【例】求exp(-x2)在0,1上的積分。,3、編寫被積函數(shù)表達(dá)式,函數(shù)名為f=(x).exp(-x.2);,q2=quad(f,0,1),數(shù)值積分【例】求exp(-x2)在0,1上的積分。3、編,22,數(shù)值積分,(2)梯形法(被積函數(shù)由一個(gè)表格定義),trapz函數(shù)采用梯形法求取數(shù)值積分,適用于由表格形式定義的函數(shù)關(guān)系的求定積分問題,求值速度快,但精度差。,q=trapz(Y),q=trapz(X,Y),其中向量X,Y定義函數(shù)關(guān)系Y=f(X)。,【例】求exp(-x2)在0,1上的積分。,X=0:0.01:1;,Y=exp(-X.2);,q=trapz(X,Y),數(shù)值積分(2)梯形法(被積函數(shù)由一個(gè)表格定義)X=0:0.0,23,Matlab微積分問題計(jì)算機(jī)求解實(shí)驗(yàn)課件,24,上機(jī)作業(yè),取一定數(shù)量的點(diǎn),利用梯形數(shù)值積分公式近似計(jì)算圓周率pi,上機(jī)作業(yè)取一定數(shù)量的點(diǎn),利用梯形數(shù)值積分公式近似計(jì)算圓周率p,25,數(shù)值積分,(3)二重積分的數(shù)值求解,dblquad函數(shù)就可以直接求出上述二重定積分的數(shù)值解。該函數(shù)的調(diào)用格式為:,I=dblquad(f,a,b,c,d,tol,trace),功能:該函數(shù)求f(x,y)在a,bc,d區(qū)域上的二重定積分。參數(shù)tol,trace的用法與函數(shù)quad完全相同。trace控制是否展現(xiàn)積分過程,若取非0則展現(xiàn)積分過程,取0則不展現(xiàn),缺省時(shí)取trace=0。,數(shù)值積分(3)二重積分的數(shù)值求解,26,數(shù)值積分,【例】計(jì)算二重定積分,(1)建立一個(gè)函數(shù)文件fxy.m:,function f=fxy(x,y),f=exp(-x.2/2).*sin(x.2+y);,(2)調(diào)用dblquad函數(shù)求解。,I=dblquad(fxy,-2,2,-1,1),f=inline(exp(-x.2/2).*sin(x.2+y),I=dblquad(f,-2,2,-1,1),數(shù)值積分【例】計(jì)算二重定積分(1)建立一個(gè)函數(shù)文件fxy,27,Fourier級(jí)數(shù),定理 設(shè)周期為 的周期函數(shù) f(x)滿足收斂定理?xiàng)l件,則它的Fourier級(jí)數(shù)展開式為:,其中系數(shù) 為:,Fourier級(jí)數(shù)定理 設(shè)周期為 的周,28,Fourier級(jí)數(shù)的Matlab程序,A,B,F=fseries(f,x,n,a,b),其中f為待展開的函數(shù),,x為自變量,,n為展開項(xiàng)數(shù),,a,b為展開區(qū)間,省略為-pi,pi,,A,B為記錄Fourier級(jí)數(shù)的系數(shù)向量,F為返回的Fourier級(jí)數(shù)的展開式,29,Fourier級(jí)數(shù)的Matlab程序,具體程序:,functionA,B,F=fseries(f,x,n,a,b),if nargin=3,a=-pi;,b=pi;,end%若輸入為3個(gè)參數(shù),表示函數(shù)f(x)在-pi,pi內(nèi)進(jìn)行展開,L=(b-a)/2;,Fourier級(jí)數(shù)的Matlab程序具體程序:,30,Fourier級(jí)數(shù)的Matlab程序,if a+b,subs(f,x,x+L+a);,end,A=int(f,x,-L,L);%f(x)在-pi,pi內(nèi)展開,B=;,for i=1:n,an=int(f*cos(i*pi*x/L),x,-L,L)/L;,bn=int(f*sin(i*pi*x/L),x,-L,L)/L;,end,Fourier級(jí)數(shù)的Matlab程序 if a+b,31,Fourier級(jí)數(shù)的Matlab程序,A=A,an;%記錄所有cos前面的系數(shù),B=B,bn;%記錄所有sin前面的系數(shù),F=F+an*cos(i*pi*x/L)+bn*sin(i*pi*x/L);,%記錄得到的Fourier展開式,Fourier級(jí)數(shù)的Matlab程序 A=A,a,32,Fourier級(jí)數(shù)的Matlab程序,例:考慮方波函數(shù)f(x)=abs(x)/x,定義域 為-pi,pi,并且x 不等于0。,將f(x)進(jìn)行Fourier展開,具體 命令如下:,syms x;,f=abs(x)/x;%給出待展開的函數(shù),xx=-pi:pi/200:pi;,xx=xx(xx=0);,xx=sort(xx,-eps,eps);,Fourier級(jí)數(shù)的Matlab程序例:考慮方波函數(shù)f(x),33,Fourier級(jí)數(shù)的Matlab程序,yy=subs(f,x,xx);%計(jì)算f(x)的值,for i=1:20,A,B,F=fseries(f,x,n);,y=subs(F,x,xx);,subplot(4,5,n);,plot(xx,yy);%畫出f(x)的圖像,hold on,plot(xx,y);%畫出Fourier級(jí)數(shù)的圖像,end,Fourier級(jí)數(shù)的Matlab程序 yy=su