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