ch9MATLAB符號計(jì)算.ppt_第1頁
ch9MATLAB符號計(jì)算.ppt_第2頁
ch9MATLAB符號計(jì)算.ppt_第3頁
ch9MATLAB符號計(jì)算.ppt_第4頁
ch9MATLAB符號計(jì)算.ppt_第5頁
已閱讀5頁,還剩21頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第9章 MATLAB符號計(jì)算 9.1 符號對象 9.2 符號微積分 9.3 級 數(shù) 9.4 符號方程求解,1建立符號變量和符號常量 MATLAB提供了兩個(gè)建立符號對象的函數(shù):sym和syms,兩個(gè)函數(shù)的用法不同。 (1) sym函數(shù) sym函數(shù)用來建立單個(gè)符號量,一般調(diào)用格式為: 符號量名=sym(符號字符串) 該函數(shù)可以建立一個(gè)符號量,符號字符串可以是常量、變量、函數(shù)或表達(dá)式。 應(yīng)用sym函數(shù)還可以定義符號常量,使用符號常量進(jìn)行代數(shù)運(yùn)算時(shí)和數(shù)值常量進(jìn)行的運(yùn)算不同。下面的命令用于比較符號常量與數(shù)值常量在代數(shù)運(yùn)算時(shí)的差別。,9.1 符號對象,9.1.1 建立符號對象,a=sym(a); b=sym(b); c=sym(c); x=1; y=2; z=-4; w=a2+b2+c2 h=x2+y2+z2,比較符號常量和數(shù)值常量的差別,a=sym(4); b=sym(5); c=sym(7); d=sym(pi); x=4; y=5; z=7; r=pi w=cos(a2+b2+c2)+sin(d/4) h=cos(x2+y2+z2)+sin(r/4),若要計(jì)算w的值使用,eval(w),(2) syms函數(shù),函數(shù)sym一次只能定義一個(gè)符號變量,使用不方便。MATLAB提供了另一個(gè)函數(shù)syms,一次可以定義多個(gè)符號變量。syms函數(shù)的一般調(diào)用格式為: syms 符號變量名1 符號變量名2 符號變量名n 用這種格式定義符號變量時(shí)不要在變量名上加字符串分界符(),變量間用空格而不要用逗號分隔。,syms x y z h x2+(y+z)2-h,2建立符號表達(dá)式,含有符號對象的表達(dá)式稱為符號表達(dá)式。建立符號表達(dá)式有以下3種方法:,(1)利用單引號來生成符號表達(dá)式。,y=1/sqrt(2*x),(2)用sym函數(shù)建立符號表達(dá)式。,f=sym(2*x2-5*y2-3*x*y-7),(3) 使用已經(jīng)定義的符號變量組成符號表達(dá)式。,syms x y f=2*x2-5*y2-3*x*y-7,9.1.2 符號表達(dá)式運(yùn)算,1符號表達(dá)式的四則運(yùn)算,符號表達(dá)式的加、減、乘、除、冪運(yùn)算可以由通常的“+”、“-”、“*”、“/”、“”來實(shí)現(xiàn)。,2符號表達(dá)式的提取分子和分母運(yùn)算,如果符號表達(dá)式是一個(gè)有理分式或可以展開為有理分式,可利用numden函數(shù)來提取符號表達(dá)式中的分子或分母。其一般調(diào)用格式為: n,d=numden(s) 該函數(shù)提取符號表達(dá)式s的分子和分母,分別將它們存放在n與d中。,syms x y n,d = numden(x/y + y/x),3符號表達(dá)式的因式分解與展開,MATLAB提供了符號表達(dá)式的因式分解與展開的函數(shù),函數(shù)的調(diào)用格式為:,factor(s):對符號表達(dá)式s分解因式。 expand(s):對符號表達(dá)式s進(jìn)行展開。 collect(s):對符號表達(dá)式s合并同類項(xiàng)。 collect(s,v):對符號表達(dá)式s按變量v合并同類項(xiàng)。,A=a3-b3;factor(A),s=(3*x2-4*x*y-5)*(5*y2+3*y-4*x+2) expand(s),collect(s) collect(s,y),factor(sym(420),4符號表達(dá)式的化簡,MATLAB提供的對符號表達(dá)式化簡的函數(shù)有:,simplify(s):應(yīng)用函數(shù)規(guī)則對s進(jìn)行化簡。,simple(s):調(diào)用MATLAB的其他函數(shù)對表達(dá)式進(jìn)行綜合化簡,并顯示化簡過程。,simplify(log(2*(x2-1)*y/(y*x+y),simple(log(2*(x2-1)*y/(y*x+y),pretty(s):美化表達(dá)式形式。,5符號表達(dá)式與數(shù)值表達(dá)式之間的轉(zhuǎn)換,利用函數(shù)sym可以將數(shù)值表達(dá)式變換成它的符號表達(dá)式,函數(shù)numeric或eval可以將符號表達(dá)式變換成數(shù)值表達(dá)式。,sym(0.333), ans =333/1000,如:f=1/2*sqrt(2), numeric(f) 或 eval(f),9.1.3 符號表達(dá)式中變量的確定,MATLAB中的符號可以表示符號變量和符號常量。findsym可以幫助用戶查找一個(gè)符號表達(dá)式中的的符號變量。該函數(shù)的調(diào)用格式為: findsym(s,n) 函數(shù)返回符號表達(dá)式s中的n個(gè)符號變量,若沒有指定n,則返回s中的全部符號變量。,syms x y z a b d f=3*x*y+4*a*z+d*y+b findsym(f) findsym(f,1) findsym(f,3),符號變量排序?yàn)椋簒 y z a b c d ,符號矩陣也是一種符號表達(dá)式,所以前面介紹的符號表達(dá)式運(yùn)算都可以在矩陣意義下進(jìn)行。但應(yīng)注意這些函數(shù)作用于符號矩陣時(shí),是分別作用于矩陣的每一個(gè)元素。 由于符號矩陣是一個(gè)矩陣,所以符號矩陣還能進(jìn)行有關(guān)矩陣的運(yùn)算。MATLAB還有一些專用于符號矩陣的函數(shù),這些函數(shù)作用于單個(gè)的數(shù)據(jù)無意義。例如 transpose(s):返回s矩陣的轉(zhuǎn)置矩陣。 determ(s):返回s矩陣的行列式值。 其實(shí),曾介紹過的許多應(yīng)用于數(shù)值矩陣的函數(shù),如diag、triu、tril、inv、det、rank、eig等,也可直接應(yīng)用于符號矩陣。,9.1.4 符號矩陣,syms a c1 t a = 980; c1 =3 y = exp(-a*t)*c1 subs(y,a,c1,a,c1) subs(cos(a)+sin(b),a,b,sym(alpha),2),9.1.5 變量替換函數(shù),Subs(f) subs(f,new,old),subs(exp(a*t),a,-magic(2),subs(x*y,x,y,0 1;-1 0,1 -1;-2 1),9.2 符號微積分,9.2.1 符號極限,limit函數(shù)的調(diào)用格式為: (1) limit(f,x,a):求符號函數(shù)f(x)的極限值。即計(jì)算當(dāng)變量x趨近于常數(shù)a時(shí),f(x)函數(shù)的極限值。 (2) limit(f,a):求符號函數(shù)f(x)的極限值。由于沒有指定符號函數(shù)f(x)的自變量,則使用該格式時(shí),符號函數(shù)f(x)的變量為函數(shù)findsym(f)確定的默認(rèn)自變量,即變量x趨近于a。,(3) limit(f):求符號函數(shù)f(x)的極限值。符號函數(shù)f(x)的變量為函數(shù)findsym(f)確定的默認(rèn)變量;沒有指定變量的目標(biāo)值時(shí),系統(tǒng)默認(rèn)變量趨近于0,即a=0的情況。,(4) limit(f,x,a,right):求符號函數(shù)f的極限值。right表示變量x從右邊趨近于a。 (5) limit(f,x,a,left):求符號函數(shù)f的極限值。left表示變量x從左邊趨近于a。,syms a t x y=sin(a*t)/t limit(y,t,0) limit(y,0) ezplot(h),h=exp(-1/x) limit(h,x,0) limit(h,x,0,left) limit(h,x,0,right),左右極限,求下列極限。 極限1: syms a m x; f=(x*(exp(sin(x)+1)-2*(exp(tan(x)-1)/(x+a); limit(f,x,a) 極限2: syms x t; limit(1+2*t/x)(3*x),x,inf),極限3: syms x; f=x*(sqrt(x2+1)-x); limit(f,x,inf,left) 極限4: syms x; f=(sqrt(x)-sqrt(2)-sqrt(x-2)/sqrt(x*x-4); limit(f,x,2,right),9.2.2 符號導(dǎo)數(shù),diff函數(shù)用于對符號表達(dá)式求導(dǎo)數(shù)。該函數(shù)的一般調(diào)用格式為: diff(s):沒有指定變量和導(dǎo)數(shù)階數(shù),則系統(tǒng)按findsym函數(shù)指示的默認(rèn)變量對符號表達(dá)式s求一階導(dǎo)數(shù)。 diff(s,v):以v為自變量,對符號表達(dá)式s求一階導(dǎo)數(shù)。 diff(s,n):按findsym函數(shù)指示的默認(rèn)變量對符號表達(dá)式s求n階導(dǎo)數(shù),n為正整數(shù)。 diff(s,v,n):以v為自變量,對符號表達(dá)式s求n階導(dǎo)數(shù)。,例9-2 求下列函數(shù)的導(dǎo)數(shù)。,x = sym(x); t = sym(t); diff(sin(x2) diff(t6,6),syms x y; f=sin(x2)*cos(cos(y2) diff(f,y,2),9.2.3 符號積分,符號積分由函數(shù)int來實(shí)現(xiàn)。該函數(shù)的一般調(diào)用格式為: int(s):沒有指定積分變量和積分階數(shù)時(shí),系統(tǒng)按findsym函數(shù)指示的默認(rèn)變量對被積函數(shù)或符號表達(dá)式s求不定積分。 int(s,v):以v為自變量,對被積函數(shù)或符號表達(dá)式s求不定積分。 int(s,v,a,b):求定積分運(yùn)算。a,b分別表示定積分的下限和上限。該函數(shù)求被積函數(shù)在區(qū)間a,b上的定積分。a和b可以是兩個(gè)具體的數(shù),也可以是一個(gè)符號表達(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è)符號表達(dá)式時(shí),函數(shù)返回一個(gè)符號函數(shù)。,9.2.4 積分變換,常見的積分變換有傅立葉變換、拉普拉斯變換和Z變換。 1傅立葉(Fourier)變換 在MATLAB中,進(jìn)行傅立葉變換的函數(shù)是: fourier(f,x,t):求函數(shù)f(x)的傅立葉像函數(shù)F(t)。 ifourier(F,t,x):求傅立葉像函數(shù)F(t)的原函數(shù)f(x)。 例9-4 求函數(shù)y=exp(-x*x)的傅立葉變換及其逆變換。,2拉普拉斯(Laplace)變換 在MATLAB中,進(jìn)行拉普拉斯變換的函數(shù)是: laplace(fx,x,t):求函數(shù)f(x)的拉普拉斯像函數(shù)F(t)。 ilaplace(Fw,t,x):求拉普拉斯像函數(shù)F(t)的原函數(shù)f(x)。 例9-5 計(jì)算y=x3的拉普拉斯變換及其逆變換。,funtool,9.3 級 數(shù),9.3.1 級數(shù)符號求和 求無窮級數(shù)的和需要符號表達(dá)式求和函數(shù)symsum,其調(diào)用格式為: symsum(s,v,n,m) 其中s表示一個(gè)級數(shù)的通項(xiàng),是一個(gè)符號表達(dá)式。v是求和變量,v省略時(shí)使用系統(tǒng)的默認(rèn)變量。n和m是求和的開始項(xiàng)和末項(xiàng),syms n; symsum(n,1,100) symsum(1/n,1,100) symsum(1/n2,1,100) symsum(1/n2,1,inf),9.3.2 函數(shù)的泰勒級數(shù),MATLAB提供了taylor函數(shù)將函數(shù)展開為冪級數(shù),其調(diào)用格式為: taylor(f,v,n,a) 該函數(shù)將函數(shù)f按變量v展開為泰勒級數(shù),展開到第n項(xiàng)(即變量v的n-1次冪)為止,n的缺省值為6。v的缺省值與diff函數(shù)相同。參數(shù)a指定將函數(shù)f在自變量v=a處展開,a的缺省值是0。,例9-8 求函數(shù)在指定點(diǎn)的泰勒級數(shù)展開式。,syms a x taylor(sin(a*x),x,0,6),taylortool,9.4 符號方程求解,9.4.1 符號代數(shù)方程求解 在MATLAB中,求解用符號表達(dá)式表示的代數(shù)方程可由函數(shù)solve實(shí)現(xiàn),其調(diào)用格式為: solve(s):求解符號表達(dá)式s的代數(shù)方程,求解變量為默認(rèn)變量。 solve(s,v):求解符號表達(dá)式s的代數(shù)方程,求解變量為v。 solve(s1,s2,sn,v1,v2,vn):求解符號表達(dá)式s1,s2,sn組成的代數(shù)方程組,求解變量分別v1,v2,vn。,例9-9 解下列方程。,solve(tan(2*y)=sin(y),y),在解不唯一的情況下,返回多個(gè)值 若不能求符號解,則返回可變精度解,x,y = solve(x2+x*y+y =3,x2- 4*x+3=0),u,v=solve(a*u2+v2=0,u-v=1),將a看著參數(shù),S = solve(a*u2 + v2=0,u - v = 1,a,u),將v看著參數(shù),x,y = solve(sin(x+y)-exp(x)*y =0,x2-y=2),無解析解,9.4.2 符號常微分方程求解,在MATLAB中,用大寫字母D表示導(dǎo)數(shù)。例如,Dy表示y,D2y表示y,Dy(0)=5表示y(0)=5。D3y+D2y+Dy-x+5=0表示微分方程y+y+y-x+5=0。符號常微分方程求解可以通過函數(shù)dsolve來實(shí)現(xiàn),其調(diào)用格式為: dsolve(e,c,v) 該函數(shù)求解常微分方程e在初值條件c下的特解。參數(shù)v描述方程中的自變量,省略時(shí)按缺省原則處理,若沒有給出初值條件c,則求方程的通解。 dsolve在求常微分方程組時(shí)的調(diào)用格式為: dsolve(e1,e2,en,c1,cn,v1,vn) 該函

溫馨提示

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

評論

0/150

提交評論