第9章 MATLAB符號(hào)計(jì)算_第1頁
第9章 MATLAB符號(hào)計(jì)算_第2頁
第9章 MATLAB符號(hào)計(jì)算_第3頁
第9章 MATLAB符號(hào)計(jì)算_第4頁
第9章 MATLAB符號(hào)計(jì)算_第5頁
已閱讀5頁,還剩53頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

第9章MATLAB符號(hào)計(jì)算

9.1符號(hào)計(jì)算基礎(chǔ)9.2符號(hào)微積分9.3級(jí)數(shù)9.4符號(hào)方程求解第9章MATLAB符號(hào)計(jì)算9.1符號(hào)計(jì)算基礎(chǔ)9.1.1建立符號(hào)對(duì)象1.建立符號(hào)變量和符號(hào)常量MATLAB提供了建立符號(hào)對(duì)象的函數(shù)sym和命令syms,它們的用法不同。(1)sym函數(shù)sym函數(shù)用來建立單個(gè)符號(hào)對(duì)象,其調(diào)用格式為:符號(hào)對(duì)象名=sym(符號(hào)字符串)該函數(shù)可以建立一個(gè)符號(hào)對(duì)象,符號(hào)字符串可以是常量、變量、函數(shù)或表達(dá)式。例如:a=sym('a')將建立符號(hào)變量a,此后,用戶可以在表達(dá)式中使用變量a進(jìn)行各種運(yùn)算。第9章MATLAB符號(hào)計(jì)算下面的命令說明了符號(hào)變量和數(shù)值變量的差別。>>clear%清除全部內(nèi)存變量>>x=sym('a')%定義符號(hào)變量x,它代表“a”x=a>>y=10%定義數(shù)值變量y=10>>x+yans=a+10>>whosNameSizeBytesClassAttributesans1x1112symx1x1112symy1x18double第9章MATLAB符號(hào)計(jì)算使用sym函數(shù)還可以定義符號(hào)常量,使用符號(hào)常量進(jìn)行代數(shù)運(yùn)算時(shí)和數(shù)值常量進(jìn)行的運(yùn)算不同。通過下面的命令可以看出符號(hào)常量與數(shù)值常量在代數(shù)運(yùn)算時(shí)的差別。>>pi1=sym('pi');k1=sym('8');k2=sym('3');%定義符號(hào)變量>>pi2=pi;r1=8;r2=3;%定義數(shù)值變量>>sin(pi1/3)%符號(hào)計(jì)算ans=3^(1/2)/2>>sin(pi2/3)%數(shù)值計(jì)算ans=0.8660>>sqrt(k1+sqrt(k2))%符號(hào)計(jì)算ans=(3^(1/2)+8)^(1/2)>>sqrt(r1+sqrt(r2))%數(shù)值計(jì)算ans=3.1196第9章MATLAB符號(hào)計(jì)算(2)syms命令sym函數(shù)一次只能定義一個(gè)符號(hào)變量,使用不方便。MATLAB提供了syms命令,一次可以定義多個(gè)符號(hào)變量,其格式為:syms符號(hào)變量名1符號(hào)變量名2…符號(hào)變量名n用這種格式定義符號(hào)變量時(shí)不要在變量名上加單引號(hào),變量間用空格而不要用逗號(hào)分隔。例如,用syms命令定義4個(gè)符號(hào)變量a、b、c、d,命令如下:>>symsabcd第9章MATLAB符號(hào)計(jì)算2.建立符號(hào)表達(dá)式含有符號(hào)對(duì)象的表達(dá)式稱為符號(hào)表達(dá)式。建立符號(hào)表達(dá)式有以下3種方法:(1)利用單引號(hào)來生成符號(hào)表達(dá)式例如:>>y='1/sqrt(2*x)'y=1/sqrt(2*x)>>f='cos(x^2)-sin(2*x)=0'f=cos(x^2)-sin(2*x)=0第一條命令生成的是一般的符號(hào)表達(dá)式,第二條命令生成的是符號(hào)方程。實(shí)際上,用單引號(hào)生成的是字符串,但可以參與符號(hào)運(yùn)算。第9章MATLAB符號(hào)計(jì)算(2)用sym函數(shù)建立符號(hào)表達(dá)式例如:>>U=sym('3*x^2-5*y+2*x*y+6')U=3*x^2+2*y*x-5*y+6>>M=sym('[a,b;c,d]')M=[a,b][c,d]第一條命令建立符號(hào)表達(dá)式3x2-5y+2xy+6,此時(shí)不需定義變量x、y。第二條命令生成一個(gè)符號(hào)矩陣。第9章MATLAB符號(hào)計(jì)算(3)使用已經(jīng)定義的符號(hào)變量組成符號(hào)表達(dá)式例如:>>symsxy;>>V=3*x^2-5*y+2*x*y+6V=3*x^2+2*y*x-5*y+6第9章MATLAB符號(hào)計(jì)算9.1.2基本的符號(hào)運(yùn)算1.符號(hào)對(duì)象的四則運(yùn)算符號(hào)表達(dá)式的四則運(yùn)算與數(shù)值運(yùn)算一樣,用+、-、*、/、^運(yùn)算符實(shí)現(xiàn),其運(yùn)算結(jié)果依然是一個(gè)符號(hào)表達(dá)式。例如:>>symsxyz;>>f=2*x^2+3*x-5;>>g=x^2-x+7;>>f+gans=3*x^2+2*x+2>>f=(x*x-y*y)/(x-y)f=(x^2-y^2)/(x-y)第9章MATLAB符號(hào)計(jì)算2.符號(hào)對(duì)象的關(guān)系運(yùn)算MATLAB提供的6種關(guān)系運(yùn)算符<、<=、>、>=、==、~=和對(duì)應(yīng)的函數(shù)lt、le、gt、ge、eq、ne也可用于符號(hào)對(duì)象。若參與運(yùn)算的是符號(hào)表達(dá)式,其結(jié)果是一個(gè)符號(hào)關(guān)系表達(dá)式;若參與運(yùn)算的是符號(hào)矩陣,其結(jié)果是由符號(hào)關(guān)系表達(dá)式組成的矩陣。例如:>>symsxyabcd;>>A=[x,10*x;y,10*y];>>B=[a,b;c,d];>>A==Bans=[x==a,10*x==b][y==c,10*y==d]第9章MATLAB符號(hào)計(jì)算在進(jìn)行符號(hào)對(duì)象的運(yùn)算前,可用assume函數(shù)對(duì)符號(hào)對(duì)象設(shè)置值域,函數(shù)調(diào)用格式為:assume(condition)assume(expr,set)第一種格式指定變量滿足條件condition,第二種格式指定表達(dá)式expr屬于集合set。例如:>>symsx>>assume(x<0)>>abs(x)==xans=-x==x>>assume((x-1)/2,'integer')第9章MATLAB符號(hào)計(jì)算MATLAB還提供了isequaln函數(shù),用于判斷兩個(gè)或多個(gè)符號(hào)對(duì)象是否一致,函數(shù)的調(diào)用格式為:①isequaln(A,B):若A和B一致,則返回1,否則返回0。判斷時(shí),所有NaN都當(dāng)成相同。②isequaln(A1,A2,…,An):若A1、A2、…、An都一致,則返回1,否則返回0。例如:>>symsx>>isequaln(abs(x),x)ans=0>>assume(x>0)>>isequaln(abs(x),sqrt(x*x),x)ans=1第9章MATLAB符號(hào)計(jì)算3.符號(hào)對(duì)象的邏輯運(yùn)算MATLAB提供的3種邏輯運(yùn)算符:&(與)、|(或)和~(非),還有4個(gè)邏輯運(yùn)算函數(shù):and(a,b)、or(a,b)、not(a)和xor(a,b),也可用于符號(hào)對(duì)象。例如:>>symsx>>y=x>0&x<10 %或y=and(x>0,x<10)y=0<xandx<10第9章MATLAB符號(hào)計(jì)算4.符號(hào)表達(dá)式的基本運(yùn)算(1)符號(hào)表達(dá)式的提取分子和分母運(yùn)算如果符號(hào)表達(dá)式是一個(gè)有理分式或可以展開為有理分式,可利用numden函數(shù)來提取符號(hào)表達(dá)式中的分子或分母,其調(diào)用格式為:[n,d]=numden(s)該函數(shù)提取符號(hào)表達(dá)式s的分子和分母,分別將它們存放在n與d中。例如:>>f=sym('a*x^2/(b+x)')f=(a*x^2)/(b+x)>>[n,d]=numden(f)n=a*x^2d=b+x第9章MATLAB符號(hào)計(jì)算numden函數(shù)在提取各部分之前,將符號(hào)表達(dá)式有理化后,返回所得的分子和分母。例如:>>g=sym('(x^2+3)/(2*x-1)+3*x/(x-1)')g=(3*x)/(x-1)+(x^2+3)/(2*x-1)>>[n,d]=numden(g)n=x^3+5*x^2-3d=(2*x-1)*(x-1)第9章MATLAB符號(hào)計(jì)算如果符號(hào)表達(dá)式是一個(gè)符號(hào)矩陣,numden返回兩個(gè)新矩陣n和d,其中n是分子矩陣,d是分母矩陣。例如:>>h=sym('[3/2,(2*x+1)/3;a/x+a/y,3*x+4]')h=[3/2,(2*x)/3+1/3][a/x+a/y,3*x+4]>>[n,d]=numden(h)n=[3,2*x+1][a*(x+y),3*x+4]d=[2,3][x*y,1]第9章MATLAB符號(hào)計(jì)算(2)符號(hào)表達(dá)式的因式分解與展開MATLAB提供了符號(hào)表達(dá)式的因式分解與展開的函數(shù),函數(shù)的調(diào)用格式為:①factor(s):對(duì)符號(hào)表達(dá)式s分解因式。②expand(s):對(duì)符號(hào)表達(dá)式s進(jìn)行展開。③collect(s):對(duì)符號(hào)表達(dá)式s合并同類項(xiàng)。④collect(s,v):對(duì)符號(hào)表達(dá)式s按變量v合并同類項(xiàng)。第9章MATLAB符號(hào)計(jì)算例如:>>symsabxy;>>A=a^3-b^3;>>factor(A) %對(duì)A分解因式ans=[a-b,a^2+a*b+b^2]>>factor(sym('420')) %對(duì)符號(hào)整數(shù)分解因式ans=[2,2,3,5,7]>>s=(-7*x^2-8*y^2)*(-x^2+3*y^2);>>expand(s) %對(duì)s展開ans=7*x^4-13*x^2*y^2-24*y^4>>collect(s,x) %對(duì)s按變量x合并同類項(xiàng)(無同類項(xiàng))ans=7*x^4-13*x^2*y^2-24*y^4第9章MATLAB符號(hào)計(jì)算(3)符號(hào)表達(dá)式系數(shù)的提取如果符號(hào)表達(dá)式是一個(gè)多項(xiàng)式,可利用coeffs函數(shù)來提取符號(hào)表達(dá)式中的系數(shù),其調(diào)用格式為:c=coeffs(s[,x])該函數(shù)返回多項(xiàng)式中按指定變量升冪順序排列的系數(shù),若沒有指定變量,則返回所有項(xiàng)的常系數(shù),且按離字符“x”近原則確定主變量。例如:>>symsxy>>s=5*x*y^3+3*x^2*y^2+2*y+1;>>coeffs(s) %求所有項(xiàng)的常系數(shù),按x的升冪排列ans=[1,2,3,5]>>coeffs(s,y) %求變量y的系數(shù)ans=[1,2,3*x^2,5*x]第9章MATLAB符號(hào)計(jì)算(4)符號(hào)表達(dá)式的化簡MATLAB提供simplify(s)函數(shù)對(duì)符號(hào)表達(dá)式s進(jìn)行化簡。例如:>>symsxya>>s=log(2*x/y);>>simplify(s)ans=log((2*x)/y)>>s=(-a^2+1)/(1-a);>>simplify(s)ans=a+1第9章MATLAB符號(hào)計(jì)算(5)符號(hào)表達(dá)式與數(shù)值表達(dá)式之間的轉(zhuǎn)換利用函數(shù)sym可以將數(shù)值表達(dá)式變換成它的符號(hào)表達(dá)式。例如:>>sym(1.5)ans=3/2>>sym(3.14)ans=157/50函數(shù)eval可以將符號(hào)表達(dá)式變換成數(shù)值表達(dá)式。例如:>>x=sym('a');>>a=20;>>y=x+10y=a+10>>eval(y)ans=30第9章MATLAB符號(hào)計(jì)算(6)符號(hào)多項(xiàng)式與多項(xiàng)式系數(shù)向量之間的轉(zhuǎn)換利用函數(shù)sym2poly可以將符號(hào)多項(xiàng)式轉(zhuǎn)換為多項(xiàng)式系數(shù)向量,而函數(shù)poly2sym可以將多項(xiàng)式系數(shù)向量轉(zhuǎn)換為符號(hào)多項(xiàng)式。例如:>>u=sym2poly(sym('x^3-2*x-5'))u=

10-2-5>>v=poly2sym(u,y)v=y^3-2*y-5調(diào)用poly2sym函數(shù)時(shí),若未指定自變量,則采用系統(tǒng)默認(rèn)自變量x。第9章MATLAB符號(hào)計(jì)算9.1.3符號(hào)運(yùn)算中變量的確定findsym函數(shù)和sysvar函數(shù)可以幫助用戶查找一個(gè)符號(hào)表達(dá)式中的符號(hào)變量,函數(shù)的調(diào)用格式為:findsym(s[,n])symvar(s[,n])函數(shù)返回符號(hào)表達(dá)式s中的n個(gè)符號(hào)變量,若沒有指定n,則返回s中的全部符號(hào)變量。findsym以字符串形式返回結(jié)果,symvar以向量形式返回結(jié)果。第9章MATLAB符號(hào)計(jì)算例如:>>symsxayzb; %定義5個(gè)符號(hào)變量>>s1=3*x+y;s2=a*y+b; %定義2個(gè)符號(hào)表達(dá)式>>findsym(s1)ans=x,y>>findsym(s2,2)ans=y,b>>symvar(s1+s2)ans=[a,b,x,y]第9章MATLAB符號(hào)計(jì)算在求函數(shù)的極限、導(dǎo)數(shù)和積分時(shí),如果用戶沒有明確指定自變量,MATLAB將按以下原則確定主變量并對(duì)其進(jìn)行相應(yīng)微積分運(yùn)算:①尋找除i、j之外,在字母順序上最接近x的小寫字符。②若表達(dá)式中有兩個(gè)符號(hào)變量與x的距離相等,則ASCII大者優(yōu)先??捎胒indsym(s,1)或symvar(s,1)查找表達(dá)式s的主變量。例如:>>symsabwyz>>findsym(a*z+b*w,1)ans=w>>findsym(5*a+b,1)ans=b第9章MATLAB符號(hào)計(jì)算9.1.4符號(hào)矩陣符號(hào)矩陣也是一種符號(hào)表達(dá)式,所以前面介紹的符號(hào)表達(dá)式運(yùn)算都可以在矩陣意義下進(jìn)行。但應(yīng)注意這些函數(shù)作用于符號(hào)矩陣時(shí),是分別作用于矩陣的每一個(gè)元素。例如,利用sym函數(shù)可以建立以下符號(hào)矩陣并化簡。第9章MATLAB符號(hào)計(jì)算命令如下:>>symsabxyalp>>m=sym('[a^3-b^3,sin(alp)^2+cos(alp)^2;(15*x*y-3*x^2)/(x-5*y),78]');>>simplify(m)%對(duì)符號(hào)矩陣化簡處理ans=[a^3-b^3,1][-3*x,78]第9章MATLAB符號(hào)計(jì)算由于符號(hào)矩陣是一個(gè)矩陣,所以符號(hào)矩陣還能進(jìn)行有關(guān)矩陣的運(yùn)算。曾介紹過的應(yīng)用于數(shù)值矩陣的點(diǎn)運(yùn)算符和函數(shù),如diag、triu、tril、inv、det、rank、trace、eig等,也可直接應(yīng)用于符號(hào)矩陣。第9章MATLAB符號(hào)計(jì)算下面定義一個(gè)符號(hào)矩陣,并進(jìn)行各種符號(hào)運(yùn)算。>>A=sym('[sin(x),cos(x);acos(x),asin(x)]')A=[sin(x),cos(x)][acos(x),asin(x)]>>B=A.' %求轉(zhuǎn)置矩陣。注意有點(diǎn)運(yùn)算符B=[sin(x),acos(x)][cos(x),asin(x)]>>C=diag(A,1) %求矩陣對(duì)角線元素C=cos(x)>>D=triu(A) %求上三角矩陣D=[sin(x),cos(x)][0,asin(x)]>>n=rank(A) %求秩n=2第9章MATLAB符號(hào)計(jì)算例9-1當(dāng)λ取何值時(shí),以下齊次線性方程組有非零解。對(duì)于齊次線性方程組Ax=0,當(dāng)rank(A)<n或時(shí),齊次方程組有非零解。程序如下:symslamdaA=[1-lamda,-2,4;2,3-lamda,1;1,1,1-lamda];D=det(A);factor(D)程序運(yùn)行結(jié)果為:ans=[-1,lamda,lamda-2,lamda-3]從而得知,當(dāng)λ=0、λ=2或λ=3時(shí),原方程組有非零解。第9章MATLAB符號(hào)計(jì)算9.2符號(hào)微積分9.2.1符號(hào)極限MATLAB中求函數(shù)極限的函數(shù)是limit,可用來求函數(shù)在指定點(diǎn)的極限值和左右極限值。對(duì)于極限值為“沒有定義”的極限,MATLAB給出的結(jié)果為NaN,極限值為無窮大時(shí),MATLAB給出的結(jié)果為Inf。limit函數(shù)的調(diào)用格式為:①limit(f,x,a):求符號(hào)函數(shù)f(x)的極限值。即計(jì)算當(dāng)變量x趨近于常數(shù)a時(shí),f(x)函數(shù)的極限值。②limit(f,a):求符號(hào)函數(shù)f(x)的極限值。由于沒有指定符號(hào)函數(shù)f(x)的自變量,則使用該格式時(shí),符號(hào)函數(shù)f(x)的變量為函數(shù)findsym(f)確定的默認(rèn)自變量,即變量x趨近于a。第9章MATLAB符號(hào)計(jì)算③limit(f):求符號(hào)函數(shù)f(x)的極限值。符號(hào)函數(shù)f(x)的變量為函數(shù)findsym(f)確定的默認(rèn)變量;沒有指定變量的目標(biāo)值時(shí),系統(tǒng)默認(rèn)變量趨近于0,即a=0的情況。④limit(f,x,a,'right'):求符號(hào)函數(shù)f的極限值。'right'表示變量x從右邊趨近于a。⑤limit(f,x,a,'left'):求符號(hào)函數(shù)f的極限值。'left'表示變量x從左邊趨近于a。第9章MATLAB符號(hào)計(jì)算例9-2求下列極限。(1)(2)(3)(4)>>symsamx;>>f=(x^(1/m)-a^(1/m))/(x-a);>>limit(f,x,a)%求極限(1)ans=a^(1/m-1)/m>>f=(sin(a+x)-sin(a-x))/x;>>limit(f)%求極限(2)ans=2*cos(a)>>f=x*(sqrt(x^2+1)-x);>>limit(f,x,inf,'left')%求極限(3)ans=1/2>>f=(sqrt(x)-sqrt(a)-sqrt(x-a))/sqrt(x*x-a*a);>>limit(f,x,a,'right')%求極限(4)ans=-1/(2*a)^(1/2)第9章MATLAB符號(hào)計(jì)算9.2.2符號(hào)導(dǎo)數(shù)diff函數(shù)用于對(duì)符號(hào)表達(dá)式求導(dǎo)數(shù),其調(diào)用格式為:①diff(s):沒有指定變量和導(dǎo)數(shù)階數(shù),則系統(tǒng)按findsym函數(shù)指示的默認(rèn)變量對(duì)符號(hào)表達(dá)式s求一階導(dǎo)數(shù)。②diff(s,'v'):以v為自變量,對(duì)符號(hào)表達(dá)式s求一階導(dǎo)數(shù)。③diff(s,n):按findsym函數(shù)指示的默認(rèn)變量對(duì)符號(hào)表達(dá)式s求n階導(dǎo)數(shù),n為正整數(shù)。④diff(s,'v',n):以v為自變量,對(duì)符號(hào)表達(dá)式s求n階導(dǎo)數(shù)。第9章MATLAB符號(hào)計(jì)算例9-3求下列函數(shù)的導(dǎo)數(shù)。(1),求y'。(2)y=xcosx,求y''、y'''。(3),求、。(4)求、。(5)z=f(x,y)由方程x2+y2+z2=a2定義,求、。>>symsabtxyz;>>f=sqrt(1+exp(x));>>diff(f)%求(1)。未指定求導(dǎo)變量和階數(shù),按默認(rèn)規(guī)則處理ans=exp(x)/(2*(exp(x)+1)^(1/2))>>f=x*cos(x);>>diff(f,x,2)%求(2)。求f對(duì)x的二階導(dǎo)數(shù)ans=-2*sin(x)-x*cos(x)>>diff(f,x,3)%求(2)。求f對(duì)x的三階導(dǎo)數(shù)ans=x*sin(x)-3*cos(x)>>f1=a*cos(t);f2=b*sin(t);第9章MATLAB符號(hào)計(jì)算>>diff(f2)/diff(f1)%求(3)。按參數(shù)方程求導(dǎo)公式求y對(duì)x的導(dǎo)數(shù)ans=-(b*cos(t))/(a*sin(t))%求(3)。求y對(duì)x的二階導(dǎo)數(shù)>>(diff(f1)*diff(f2,2)-diff(f1,2)*diff(f2))/(diff(f1))^3ans=-(a*b*cos(t)^2+a*b*sin(t)^2)/(a^3*sin(t)^3)>>f=x*exp(y)/y^2;>>diff(f,x)%求(4)。z對(duì)x的偏導(dǎo)數(shù)ans=exp(y)/y^2>>diff(f,y)%求(4)。z對(duì)y的偏導(dǎo)數(shù)ans=(x*exp(y))/y^2-(2*x*exp(y))/y^3>>f=x^2+y^2+z^2-a^2;>>zx=diff(f,x)/diff(f,z)%求(5)。zx=x/z>>zy=diff(f,y)/diff(f,z)%求(5)。zy=y/z第9章MATLAB符號(hào)計(jì)算例9-4在曲線y=x3+3x-2上哪一點(diǎn)的切線與直線y=4x-1平行。依題意,即求曲線哪一點(diǎn)的導(dǎo)數(shù)值為4。程序如下:x=sym('x');y=x^3+3*x-2;%定義曲線函數(shù)f=diff(y);%對(duì)曲線求導(dǎo)數(shù)g=f-4;solve(g)%求方程f-4=0的根,見9.4.1小節(jié)程序運(yùn)行結(jié)果為:ans=-3^(1/2)/33^(1/2)/3結(jié)果表明,在x=和x=處的切線和指定直線平行。第9章MATLAB符號(hào)計(jì)算9.2.3符號(hào)積分1.符號(hào)函數(shù)的不定積分在MATLAB中,int函數(shù)用于求符號(hào)函數(shù)的不定積分,有兩種調(diào)用格式:①int(f):沒有指定積分變量和積分階數(shù)時(shí),系統(tǒng)按findsym函數(shù)指示的默認(rèn)變量對(duì)被積函數(shù)或符號(hào)表達(dá)式f求不定積分。②int(f,v):以v為自變量,對(duì)被積函數(shù)或符號(hào)表達(dá)式f求不定積分。第9章MATLAB符號(hào)計(jì)算例9-5求下列不定積分。(1)

(2)

(3)

(4)

命令如下:>>x=sym('x');>>f=(3-x^2)^3;>>int(f)%求(1)ans=-x^7/7+(9*x^5)/5-9*x^3+27*x>>f=sin(x)^2;>>int(f)%求(2)ans=x/2-sin(2*x)/4第9章MATLAB符號(hào)計(jì)算>>symsalphat;>>f=exp(alpha*t);>>int(f)%求(3)ans=exp(alpha*t)/alpha>>f=5*x*t/(1+x^2);>>int(f,t)%求(4)ans=(5*t^2*x)/(2*(x^2+1))第9章MATLAB符號(hào)計(jì)算2.符號(hào)函數(shù)的定積分在MATLAB中,求符號(hào)函數(shù)的定積分也是使用int函數(shù),其調(diào)用格式為:int(f,v,a,b)其中,a、b分別表示定積分的下限和上限。該函數(shù)求被積函數(shù)f在區(qū)間[a,b]上的定積分。a和b可以是兩個(gè)具體的數(shù),也可以是一個(gè)符號(hào)表達(dá)式,還可以是無窮(inf)。當(dāng)函數(shù)f關(guān)于變量x在閉區(qū)間[a,b]上可積時(shí),函數(shù)返回一個(gè)定積分結(jié)果。當(dāng)a、b中有一個(gè)是inf時(shí),函數(shù)返回一個(gè)廣義積分。當(dāng)a、b中有一個(gè)符號(hào)表達(dá)式時(shí),函數(shù)返回一個(gè)符號(hào)函數(shù)。第9章MATLAB符號(hào)計(jì)算例9-6求下列定積分。

(1)

(4)

(3)

(2)命令如下:>>x=sym('x');t=sym('t');>>int(abs(1-x),1,2)%求(1)ans=1/2>>f=1/(1+x^2);>>int(f,-inf,inf)%求(2)ans=pi第9章MATLAB符號(hào)計(jì)算>>f=x^3/(x-1)^10;>>I=int(f,2,3)%求(3)I=138535/129024>>double(I)%將上述符號(hào)結(jié)果轉(zhuǎn)換為數(shù)值ans=1.0737>>int(4*x/t,t,2,sin(x))%求(4)ans=4*x*(log(sin(x))-log(2))第9章MATLAB符號(hào)計(jì)算例9-7求橢球的體積。用平面Z=z0(z0<=c)去截取上述橢球時(shí),其相交線是一個(gè)橢圓,該橢圓在xy平面投影的面積是:,橢球的體積。程序如下:symsabcz;f=pi*a*b*(c^2-z^2)/c^2;V=int(f,z,-c,c)程序運(yùn)行結(jié)果為:V=(4*pi*a*b*c)/3第9章MATLAB符號(hào)計(jì)算9.3級(jí)數(shù)9.3.1級(jí)數(shù)符號(hào)求和曾討論過有限級(jí)數(shù)求和的函數(shù)sum,sum處理的級(jí)數(shù)是以一個(gè)向量形式表示的,并且只能是有窮級(jí)數(shù),對(duì)于無窮級(jí)數(shù)求和,sum是無能為力的。求無窮級(jí)數(shù)的和需要符號(hào)表達(dá)式求和函數(shù)symsum,其調(diào)用格式為:symsum(s,v,n,m)其中,s表示一個(gè)級(jí)數(shù)的通項(xiàng),是一個(gè)符號(hào)表達(dá)式。v是求和變量,v省略時(shí)使用系統(tǒng)的默認(rèn)變量。n和m是求和的開始項(xiàng)和末項(xiàng)。第9章MATLAB符號(hào)計(jì)算例9-8求下列級(jí)數(shù)之和。(1)(2)(3)(4)第9章MATLAB符號(hào)計(jì)算命令如下:>>n=sym('n');>>s1=symsum(1/n^2,n,1,inf)%求s1s1=pi^2/6>>s2=symsum((-1)^(n+1)/n,1,inf)%求s2。未指定求和變量,默認(rèn)為ns2=log(2)>>s3=symsum(n*x^n,n,1,inf)%求s3。此處的求和變量n不能省略。s3=piecewise([abs(x)<1,x/(x-1)^2])>>s4=symsum(n^2,1,100)%求s4。計(jì)算有限級(jí)數(shù)的和s4=338350第9章MATLAB符號(hào)計(jì)算9.3.2函數(shù)的泰勒級(jí)數(shù)泰勒(Taylor)級(jí)數(shù)將一個(gè)任意函數(shù)表示為一個(gè)冪級(jí)數(shù),并且,在許多情況下,只需要取冪級(jí)數(shù)的前有限項(xiàng)來表示該函數(shù),這對(duì)于大多數(shù)工程應(yīng)用問題來說,精度已經(jīng)足夠。MATLAB提供了taylor函數(shù)將函數(shù)展開為冪級(jí)數(shù),其調(diào)用格式為:taylor(f,v,a)taylor(f,v,a,Name,Value)該函數(shù)將函數(shù)f按變量v展開為泰勒級(jí)數(shù),v的默認(rèn)值與diff函數(shù)相同。參數(shù)a指定將函數(shù)f在自變量v=a處展開,a的默認(rèn)值是0。第二種格式用于運(yùn)算時(shí)設(shè)置相關(guān)選項(xiàng),Name和Value成對(duì)使用,Name為選項(xiàng),Value為Name的值。第9章MATLAB符號(hào)計(jì)算Name有3個(gè)可取字符串:①'ExpansionPoint':指定展開點(diǎn),對(duì)應(yīng)值為標(biāo)量或向量。未設(shè)置時(shí),展開點(diǎn)為0。②'Order':指定截?cái)嚯A,對(duì)應(yīng)值為一個(gè)正整數(shù)。未設(shè)置時(shí),截?cái)嚯A為6,即展開式的最高階為5。③'OrderMode':指定展開式采用絕對(duì)階或相對(duì)階,對(duì)應(yīng)值為'Absolute'或'Relative'。未設(shè)置時(shí)取'Absolute'。第9章MATLAB符號(hào)計(jì)算例9-9求函數(shù)在指定點(diǎn)的泰勒級(jí)數(shù)展開式。(1)求的5階泰勒級(jí)數(shù)展開式。(2)將在x=1處按5次多項(xiàng)式展開。命令如下:>>x=sym('x');>>f1=sqrt(1-2*x+x^3)-(1-3*x+x^2)^(1/3);>>f2=(1+x+x^2)/(1-x+x^2);>>taylor(f1)%求(1)。ans=(239*x^5)/72+(119*x^4)/72+x^3+x^2/6>>taylor(f2,x,1,'Order',6)%求(2)。展開到x-1的5次冪時(shí)應(yīng)選擇n=6ans=2*(x-1)^3-2*(x-1)^2-2*(x-1)^5+3第9章MATLAB符號(hào)計(jì)算9.4符號(hào)方程求解9.4.1符號(hào)代數(shù)方程求解代數(shù)方程是指未涉及微積分運(yùn)算的方程,相對(duì)比較簡單。在MATLAB中,求解用符號(hào)表達(dá)式表示的代數(shù)方程可由函數(shù)solve實(shí)現(xiàn),其調(diào)用格式為:①solve(s):求解符號(hào)表達(dá)式s的代數(shù)方程,求解變量為默認(rèn)變量。②solve(s,v):求解符號(hào)表達(dá)式s的代數(shù)方程,求解變量為v。③solve(s1,s2,…,sn,v1,v2,…,vn):求解符號(hào)表達(dá)式s1,s2,…,sn組成的代數(shù)方程組,求解變量分別為v1,v2,…,vn。第9章MATLAB符號(hào)計(jì)算例9-10解下列方程。(1)(3)(4)(2)命令如下:>>x=solve('1/(x+2)+4*x/(x^2-4)=1+2/(x-2)','x')%解方程(1)x=1>>f=sym('x-(x^3-4*x-7)^(1/3)=1');>>x=solve(f)%解方程(2)x=3>>x=solve('2*sin(3*x-pi/4)=1')%解方程(3)x=(5*pi)/36(13*pi)/36>>x=solve('x+x*exp(x)-10','x')%解方程(4)。僅標(biāo)出方程的左端x=1.6335061701558463841931651789789第9章MATLAB符號(hào)計(jì)算例9-11求下列方程組的解。(1)(3)(4)(2)第9章MATLAB符號(hào)計(jì)算x=Emptysym:0-

溫馨提示

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

評(píng)論

0/150

提交評(píng)論