第7章MATLAB符號計算_第1頁
第7章MATLAB符號計算_第2頁
第7章MATLAB符號計算_第3頁
第7章MATLAB符號計算_第4頁
第7章MATLAB符號計算_第5頁
已閱讀5頁,還剩34頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、 matlab 不僅具有數(shù)值運算功能,還開發(fā)了在matlab環(huán)境下實現(xiàn)符號計算的工具包Symbolic Math Toolbox主要內(nèi)容主要內(nèi)容7.1 符號計算基礎(chǔ)符號計算基礎(chǔ)7.2 符號函數(shù)及其應(yīng)用符號函數(shù)及其應(yīng)用7.3 符號積分符號積分7.4 級數(shù)級數(shù)第第7章章 MATLAB符號計算符號計算o科學(xué)計算可分為兩類:一類是純數(shù)值的計算,例如求函數(shù)的值,以及方程的數(shù)值解等等;另一類計算是符號運算,又稱代數(shù)運算,這是一種智能化的計算,處理的是符號。符號可以代表整數(shù)、有理數(shù)、實數(shù)和復(fù)數(shù),也可以代表多項式、函數(shù),還可以代表數(shù)學(xué)結(jié)構(gòu),如集合、群的表示等等。我們在數(shù)學(xué)的教學(xué)和研究中進行的數(shù)學(xué)運算多為符號運

2、算。oMATLAB中的符號數(shù)學(xué)工具箱(Symbolic Math Toolbox)集成了豐富的符號運算功能?;镜姆枖?shù)學(xué)工具箱包含100多個MATLAB函數(shù),包括的內(nèi)容有:微積分、線性代數(shù)、化簡代數(shù)表達(dá)式、方程求解、特殊的數(shù)學(xué)函數(shù)、變量精度算法和數(shù)學(xué)變換等等。o工具箱中所有的符號表達(dá)式的計算都是在Maple內(nèi)核下執(zhí)行的。Maple是一種功能強大、通用的數(shù)學(xué)和工程軟件,是世界上最值得信賴、最完整的數(shù)學(xué)軟件之一。其中的符號運算功能尤為突出。Maple系統(tǒng)最先主要由加拿大的沃特盧大學(xué)(University of Waterloo)開發(fā)的,后來由瑞士的一個技術(shù)部門發(fā)展,最終由Waterloo Map

3、le公司商業(yè)化運作。什么是符號運算直接對抽象的符號對象進行計算,并將所得結(jié)果以標(biāo)準(zhǔn)的符號形式來表示。2.與數(shù)值運算的區(qū)別 數(shù)值運算中必須先對變量賦值,然后才能參與運算。 符號運算無須事先對獨立變量賦值,運算結(jié)果以標(biāo)準(zhǔn)的符號形式表達(dá)。o特點: 運算對象可以是沒賦值的符號變量 可以獲得任意精度的解oSymbolic Math Toolbox符號運算工具包通過調(diào)用Maple軟件實現(xiàn)符號計算的。omaple軟件主要功能是符號運算, 它占據(jù)符號軟件的主導(dǎo)地位。7.1 符號計算基礎(chǔ)符號計算基礎(chǔ)7.1.1 符號對象符號對象1建立符號變量和符號常量建立符號變量和符號常量MATLAB提供了兩個建立符號對象的函數(shù)

4、:提供了兩個建立符號對象的函數(shù):sym和和syms,兩個函數(shù)的用法不同。兩個函數(shù)的用法不同。(1) sym函數(shù)函數(shù)sym函數(shù)用來建立單個符號量,一般調(diào)用格式為:函數(shù)用來建立單個符號量,一般調(diào)用格式為:符號量名符號量名=sym(符號字符串符號字符串)該函數(shù)可以建立一個符號量,符號字符串可以是常量、該函數(shù)可以建立一個符號量,符號字符串可以是常量、變量、函數(shù)或表達(dá)式。變量、函數(shù)或表達(dá)式。sym函數(shù)還可以定義符號常量,使用符號常量進行代數(shù)函數(shù)還可以定義符號常量,使用符號常量進行代數(shù)運算時和數(shù)值常量進行的運算不同。運算時和數(shù)值常量進行的運算不同。(2) syms函數(shù)函數(shù)MATLAB提供了另一個函數(shù)提供了

5、另一個函數(shù)syms,一次可以定義多個符號,一次可以定義多個符號變量。變量。syms函數(shù)的一般調(diào)用格式為:函數(shù)的一般調(diào)用格式為:syms 符號變量名符號變量名1 符號變量名符號變量名2 符號變量名符號變量名n用這種格式定義符號變量時不要在變量名上加字符串分界符用這種格式定義符號變量時不要在變量名上加字符串分界符(),變量間用空格而不要用逗號分隔。,變量間用空格而不要用逗號分隔。ox=sym(x)o syms a b c xof=a*x2+b*x+c2建立符號表達(dá)式建立符號表達(dá)式含有符號對象的表達(dá)式稱為符號表達(dá)式。建立符號表達(dá)式含有符號對象的表達(dá)式稱為符號表達(dá)式。建立符號表達(dá)式有以下有以下3種方法

6、:種方法:(1)利用單引號來生成符號表達(dá)式。利用單引號來生成符號表達(dá)式。z= (1+sqrt(5)/2(2)用用sym函數(shù)建立符號表達(dá)式。函數(shù)建立符號表達(dá)式。z=sym(1+sqrt(5)/2)(3) 使用已經(jīng)定義的符號變量組成符號表達(dá)式。使用已經(jīng)定義的符號變量組成符號表達(dá)式。osyms a b c xof=a*x2+b*x+c7.1.2 符號表達(dá)式運算符號表達(dá)式運算1符號表達(dá)式的四則運算符號表達(dá)式的四則運算符號表達(dá)式的加、減、乘、除運算可分別由函數(shù)符號表達(dá)式的加、減、乘、除運算可分別由函數(shù)symadd、symsub、symmul和和symdiv來實現(xiàn),來實現(xiàn),冪運算可以由冪運算可以由symp

7、ow來實現(xiàn)。來實現(xiàn)。of=2*x2+3*x-5og=x2-x+7osymadd(f,g)osymmul(f,g)osymdiv(f,g)2符號表達(dá)式的提取分子和分母運算符號表達(dá)式的提取分子和分母運算如果符號表達(dá)式是一個有理分式或可以展開為有理分式,可如果符號表達(dá)式是一個有理分式或可以展開為有理分式,可利用利用numden函數(shù)來提取符號表達(dá)式中的分子或分母。函數(shù)來提取符號表達(dá)式中的分子或分母。其一般調(diào)用格式為:其一般調(diào)用格式為:n,d=numden(s)該函數(shù)提取符號表達(dá)式該函數(shù)提取符號表達(dá)式s的分子和分母,分別將它們存放在的分子和分母,分別將它們存放在n與與d中。中。osyms x yof=x

8、/y+y/x;on,d=numden(f)3符號表達(dá)式的因式分解與展開符號表達(dá)式的因式分解與展開MATLAB提供了符號表達(dá)式的因式分解與展開的函數(shù),函提供了符號表達(dá)式的因式分解與展開的函數(shù),函數(shù)的調(diào)用格式為:數(shù)的調(diào)用格式為:ofactor(s):對符號表達(dá)式:對符號表達(dá)式s分解因式。分解因式。oexpand(s):對符號表達(dá)式:對符號表達(dá)式s進行展開。進行展開。ocollect(s):對符號表達(dá)式:對符號表達(dá)式s合并同類項。合并同類項。collect(s,v):對符號表達(dá)式:對符號表達(dá)式s按變量按變量v合并同類項。合并同類項。o【例】 對表達(dá)式f=a3-1進行因式分解。o輸入:of = sym

9、(a3-1);ofactor(f)o結(jié)果為:oans = o(a-1)*(a2+a+1)o【例】展開表達(dá)式f=(x+1)5和f=sin(x+y)o輸入:osyms x yof=(x+1)5;oexpand(f)of=sin(x+y);oexpand(f)o返回結(jié)果為:oans =ox5+5*x4+10*x3+10*x2+5*x+1oans =osin(x)*cos(y)+cos(x)*sin(y)o【例】 符號多項式的同類項合并。o輸入:of =sym(exp(x)+x)*(x+2)*(y+1);oc1=collect(f)oc2=collect(f, y)oc3=collect(f, exp

10、(x)o返回結(jié)果為:oc1 =o(y+1)*x2+(exp(x)+2)*(y+1)*x+2*exp(x)*(y+1)oc2 =o(exp(x)+x)*(x+2)*y+(exp(x)+x)*(x+2)oc3 =o(x+2)*(y+1)*exp(x)+x*(x+2)*(y+1)o我們分別按不同的變量進行同類項合并,得到了不同的結(jié)果。4符號表達(dá)式的化簡符號表達(dá)式的化簡MATLAB提供的對符號表達(dá)式化簡的函數(shù)有:提供的對符號表達(dá)式化簡的函數(shù)有:osimplify(s):應(yīng)用函數(shù)規(guī)則對:應(yīng)用函數(shù)規(guī)則對s進行化簡。進行化簡。osimple(s):調(diào)用:調(diào)用MATLAB的其他函數(shù)對表達(dá)式進行綜的其他函數(shù)對表

11、達(dá)式進行綜合化簡,并顯示化簡過程。合化簡,并顯示化簡過程。of = sym(sin(x)2+cos(x)2);oS=sym(exp(c*log(sqrt(a+b);osimplify(f)osimplify(S) 5符號表達(dá)式與數(shù)值表達(dá)式之間的轉(zhuǎn)換符號表達(dá)式與數(shù)值表達(dá)式之間的轉(zhuǎn)換利用函數(shù)利用函數(shù)sym可以將數(shù)值表達(dá)式變換成它的符號表達(dá)式。可以將數(shù)值表達(dá)式變換成它的符號表達(dá)式。sym(1.5)函數(shù)函數(shù)numeric或或eval可以將符號表達(dá)式變換成數(shù)值表達(dá)式。可以將符號表達(dá)式變換成數(shù)值表達(dá)式。z=(1+sqrt(5)/2numeric(z)7.1.3 符號表達(dá)式中變量的確定符號表達(dá)式中變量的確定

12、MATLAB中的符號可以表示符號變量和符號常量。中的符號可以表示符號變量和符號常量。findsym可可以幫助用戶查找一個符號表達(dá)式中的的符號變量。以幫助用戶查找一個符號表達(dá)式中的的符號變量。該函數(shù)的調(diào)用格式為:該函數(shù)的調(diào)用格式為:findsym(s,n)函數(shù)返回符號表達(dá)式函數(shù)返回符號表達(dá)式s中的中的n個符號變量,若沒有指定個符號變量,若沒有指定n,則返,則返回回s中的全部符號變量。中的全部符號變量。例:例:syms x a y z b; s1=3*x+y; findsym(s1)7.1.4 符號矩陣符號矩陣符號矩陣也是一種符號表達(dá)式,所以前面介紹的符號表達(dá)式符號矩陣也是一種符號表達(dá)式,所以前面

13、介紹的符號表達(dá)式運算都可以在矩陣意義下進行。但應(yīng)注意這些函數(shù)作用運算都可以在矩陣意義下進行。但應(yīng)注意這些函數(shù)作用于符號矩陣時,是分別作用于矩陣的每一個元素。于符號矩陣時,是分別作用于矩陣的每一個元素。oA=sym(a,b;c,d)syms x y zoB=x+3*x,5*z+6*z;y-y,z/z由于符號矩陣是一個矩陣,所以符號矩陣還能由于符號矩陣是一個矩陣,所以符號矩陣還能進行有關(guān)矩陣的運算。進行有關(guān)矩陣的運算。transpose(s):返回:返回s矩陣的轉(zhuǎn)置矩陣。矩陣的轉(zhuǎn)置矩陣。determ(s):返回:返回s矩陣的行列式值。矩陣的行列式值。其實,許多應(yīng)用于數(shù)值矩陣的函數(shù),如其實,許多應(yīng)用

14、于數(shù)值矩陣的函數(shù),如diag、triu、tril、inv、det、rank、eig等,也可直等,也可直接應(yīng)用于符號矩陣。接應(yīng)用于符號矩陣。7.2 符號函數(shù)及其應(yīng)用符號函數(shù)及其應(yīng)用7.2.1 符號極限符號極限MATLAB中求函數(shù)極限的函數(shù)是中求函數(shù)極限的函數(shù)是limit,調(diào)用格式為:,調(diào)用格式為:olimit(f,x,a):求符號函數(shù):求符號函數(shù)f(x)的極限值。即計算當(dāng)變量的極限值。即計算當(dāng)變量x趨近于常數(shù)趨近于常數(shù)a時,時,f(x)函數(shù)的極限值。函數(shù)的極限值。(2) limit(f,a):求符號函數(shù):求符號函數(shù)f(x)的極限值。由于沒有指定符的極限值。由于沒有指定符號函數(shù)號函數(shù)f(x)的自變

15、量,則使用該格式時,符號函數(shù)的自變量,則使用該格式時,符號函數(shù)f(x)的變量為函數(shù)的變量為函數(shù)findsym(f)確定的默認(rèn)自變量,即變量確定的默認(rèn)自變量,即變量x趨近于趨近于a。(3) limit(f):求符號函數(shù):求符號函數(shù)f(x)的極限值。符號函數(shù)的極限值。符號函數(shù)f(x)的變量的變量為函數(shù)為函數(shù)findsym(f)確定的默認(rèn)變量;沒有指定變量的目確定的默認(rèn)變量;沒有指定變量的目標(biāo)值時,系統(tǒng)默認(rèn)變量趨近于標(biāo)值時,系統(tǒng)默認(rèn)變量趨近于0,即,即a=0的情況。的情況。(4) limit(f,x,a,right):求符號函數(shù):求符號函數(shù)f的極限值。的極限值。right表表示變量示變量x從右邊趨近

16、于從右邊趨近于a。(5) limit(f,x,a,left):求符號函數(shù):求符號函數(shù)f的極限值。的極限值。left表示變表示變量量x從左邊趨近于從左邊趨近于a。例例 求下列極限。求下列極限。極限極限1:syms a m x;f=(x*(exp(sin(x)+1)-2*(exp(tan(x)-1)/(x+a);Limit (f, x, a)ans =(1/2*a*exp(sin(a)+1/2*a-exp(tan(a)+1)/a極限極限2:syms x t;limit(1+2*t/x)(3*x), x, inf)ans =exp(6*t)極限極限3:syms x;f=x*(sqrt(x2+1)-x

17、);limit(f, x, inf, left)ans =1/2極限極限4:syms x;f=(sqrt(x)-sqrt(2)-sqrt(x-2)/sqrt(x*x-4);limit(f,x,2,right)ans =-1/27.2.2 符號函數(shù)求導(dǎo)及其應(yīng)用符號函數(shù)求導(dǎo)及其應(yīng)用diff函數(shù)用于對符號表達(dá)式求導(dǎo)數(shù)。該函數(shù)的一般調(diào)用格式為:函數(shù)用于對符號表達(dá)式求導(dǎo)數(shù)。該函數(shù)的一般調(diào)用格式為:odiff(s):沒有指定變量和導(dǎo)數(shù)階數(shù),則系統(tǒng)按:沒有指定變量和導(dǎo)數(shù)階數(shù),則系統(tǒng)按findsym函數(shù)函數(shù)指示的默認(rèn)變量對符號表達(dá)式指示的默認(rèn)變量對符號表達(dá)式s求一階導(dǎo)數(shù)。求一階導(dǎo)數(shù)。odiff(s,v):以:

18、以v為自變量,對符號表達(dá)式為自變量,對符號表達(dá)式s求一階導(dǎo)數(shù)。求一階導(dǎo)數(shù)。odiff(s,n):按:按findsym函數(shù)指示的默認(rèn)變量對符號表達(dá)式函數(shù)指示的默認(rèn)變量對符號表達(dá)式s求求n階導(dǎo)數(shù),階導(dǎo)數(shù),n為正整數(shù)。為正整數(shù)。odiff(s,v,n):以:以v為自變量,對符號表達(dá)式為自變量,對符號表達(dá)式s求求n階導(dǎo)數(shù)。階導(dǎo)數(shù)。o S1 = sym(6*x3-4*x2+b*x-5); oS2 = sym(sin(a); oS3 = sym(1 - t3)/(1 + t4);odiff(S1)oans= o18*x2-8*x+b odiff(S1,2) oans= o36*x-8 odiff(S1,b

19、) oans= ox odiff(S2) oans= ocos(a) 7.3 符號積分符號積分符號積分由函數(shù)符號積分由函數(shù)int來實現(xiàn)。該函數(shù)的一般調(diào)用格式為:來實現(xiàn)。該函數(shù)的一般調(diào)用格式為:oint(s):沒有指定積分變量和積分階數(shù)時,系統(tǒng)按:沒有指定積分變量和積分階數(shù)時,系統(tǒng)按findsym函數(shù)指示的默認(rèn)變量對被積函數(shù)或符號表達(dá)式函數(shù)指示的默認(rèn)變量對被積函數(shù)或符號表達(dá)式s求不定積分。求不定積分。oint(s,v):以:以v為自變量,對被積函數(shù)或符號表達(dá)式為自變量,對被積函數(shù)或符號表達(dá)式s求求不定積分。不定積分。int(s,v,a,b):求定積分運算。:求定積分運算。a,b分別表示定積分的下

20、分別表示定積分的下限和上限。該函數(shù)求被積函數(shù)在區(qū)間限和上限。該函數(shù)求被積函數(shù)在區(qū)間a,b上的定積分。上的定積分。o【例6-24】分別計算積分表達(dá)式 o依次輸入以下語句:osyms x zof=-2*x/(1+x2)2;oint(f)of=x/(1+z2);oint(f)oint(f,z)of=x*log(1+x);oint(f,0,1)dxxx22)1 (2dxzx2)1(dzzx2)1 (10)1log(dxxx7.3.2 積分變換積分變換常見的積分變換有傅立葉變換、拉普拉斯變換和常見的積分變換有傅立葉變換、拉普拉斯變換和Z變換。變換。1傅立葉傅立葉(Fourier)變換變換在在MATLAB

21、中,進行傅立葉變換的函數(shù)是:中,進行傅立葉變換的函數(shù)是:ofourier(f,x,t):求函數(shù):求函數(shù)f(x)的傅立葉像函數(shù)的傅立葉像函數(shù)F(t)。oifourier(F,t,x):求傅立葉像函數(shù):求傅立葉像函數(shù)F(t)的原函數(shù)的原函數(shù)f(x)。osyms x of = sin(x)*exp(-x2); oF1 = fourier(f) 2拉普拉斯拉普拉斯(Laplace)變換變換在在MATLAB中,進行拉普拉斯變換的函數(shù)是:中,進行拉普拉斯變換的函數(shù)是:olaplace(fx,x,t):求函數(shù):求函數(shù)f(x)的拉普拉斯像函數(shù)的拉普拉斯像函數(shù)F(t)。oilaplace(Fw,t,x):求拉普

22、拉斯像函數(shù):求拉普拉斯像函數(shù)F(t)的原函數(shù)的原函數(shù)f(x)。osyms x s t vof1= sqrt(t); oL1 = laplace(f) of2 = 1/sqrt(s); oL2 = laplace(f2) 3Z變換變換當(dāng)函數(shù)當(dāng)函數(shù)f(x)呈現(xiàn)為一個離散的數(shù)列呈現(xiàn)為一個離散的數(shù)列f(n)時,對數(shù)列時,對數(shù)列f(n)進行進行z變換的變換的MATLAB函數(shù)是:函數(shù)是:oztrans(fn,n,z):求:求fn的的Z變換像函數(shù)變換像函數(shù)F(z)。oiztrans(Fz,z,n):求:求Fz的的z變換原函數(shù)變換原函數(shù)f(n)。osyms a k w x n zof4 = exp(k*n2)

23、*cos(k*n);oZF4 = ztrans(f4,k,x)7.4 級級 數(shù)數(shù)7.4.1 級數(shù)符號求和級數(shù)符號求和求無窮級數(shù)的和需要符號表達(dá)式求和函數(shù)求無窮級數(shù)的和需要符號表達(dá)式求和函數(shù)symsum,其調(diào)用,其調(diào)用格式為:格式為:symsum(s,v,n,m)其中其中s表示一個級數(shù)的通項,是一個符號表達(dá)式。表示一個級數(shù)的通項,是一個符號表達(dá)式。v是求和是求和變量,變量,v省略時使用系統(tǒng)的默認(rèn)變量。省略時使用系統(tǒng)的默認(rèn)變量。n和和m是求和的開是求和的開始項和末項。始項和末項。o例:s1=1+1/4+1/9+.+1/n2+.on=sym(n);os1=symsum(1/n2, n, 1 ,inf

24、)oS1=1/6*pi27.5 符號方程求解符號方程求解7.5.1 符號代數(shù)方程求解符號代數(shù)方程求解在在MATLAB中,求解用符號表達(dá)式表示的代數(shù)方程可由函數(shù)中,求解用符號表達(dá)式表示的代數(shù)方程可由函數(shù)solve實現(xiàn),其調(diào)用格式為:實現(xiàn),其調(diào)用格式為:osolve(s):求解符號表達(dá)式:求解符號表達(dá)式s的代數(shù)方程,求解變量為默認(rèn)的代數(shù)方程,求解變量為默認(rèn)變量。變量。osolve(s,v):求解符號表達(dá)式:求解符號表達(dá)式s的代數(shù)方程,求解變量為的代數(shù)方程,求解變量為v。osolve(s1,s2,sn,v1,v2,vn):求解符號表達(dá)式:求解符號表達(dá)式s1,s2,sn組成的代數(shù)方程組,求解變量分別組成的代數(shù)方程組,求解變量分別v1,v2,vn。o【例】求一元二次方程a*x2+b*x+c=0的根of=sym(a*x2+b*x+c);osolve(f) %以x為自變量,求解方程f=0oans =o 1/2/a*(-b+(b2-4*a*c)(1/2)o 1/2/a*(-b-(b2-4*a*c)(1/2)osolve(f,

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論