資源描述:
《MATLAB語言課件第3講MATLAB語言的符號運算.ppt》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、3MATLAB語言的符號運算3.1.1符號變量與基本運算1、符號變量與符號表達(dá)式3.1基本符號運算使用sym()函數(shù)可以創(chuàng)建符號變量和符號表達(dá)式例:a=sym(‘a(chǎn)bcd’)f=sym(‘a(chǎn)*x^2+b*x+c’)定義了符號變量f后,通過f可對其進行一系列操作:df=diff(f)df=2*a*x+bnf=int(f)nf=1/3*x^3+1/2*x^2+c*x上例中,系統(tǒng)自動地將x作為自變量處理,而將a、b、c等作為常量參數(shù)。即符號表達(dá)式中含有多于一個符號變量時,在沒有指定自變量時,Matlab會自行決定自變量。其原則為:除了i和j之外,字母位置最接近x的小寫字母;如果式子中沒有上述字母,則
2、x會被視為默認(rèn)的自變量。Matlab自變量確定原則如下:符號表達(dá)式默認(rèn)自變量a*x^2+b*x+cx1/(4+cos(t))t4*x/yx2*a+bb2、符號運算數(shù)值運算的大部分運算規(guī)則與MATLAB語言的各種數(shù)值運算函數(shù)都適用于基本符號變量的解析運算。例:R=sym(‘(-1+sqrt(5))/2’)%定義符號數(shù)值symswtF=sin(w*t)%定義一個正弦函數(shù)表達(dá)式3.2微積分1、極限Matlab提供了求表達(dá)式極限的函數(shù)limit,其基本用法如下:limit(f,x,a)x趨近alimit(f,x,a,’left’)x左趨近alimit(f,x,a,’right’)x右趨近a3.1.2符
3、號運算的擴展利用MAPLE數(shù)學(xué)專用軟件實現(xiàn)實現(xiàn)符號運算的擴展。例:>>limit(1/x,x,0)>>limit(1/x,x,0,’left’)>>limit(1/x,x,0,’right’)例:求如下函數(shù)的極限:symsxalimit(((x+a)/(x-a))^x,inf)2、微分Matlab求微分的函數(shù)是diff()說明:①用diff(f)求f對預(yù)設(shè)獨立變量的一次微分;②diff(f,t)求f對獨立變量t的一次微分;③用diff(f,n)求f對預(yù)設(shè)獨立變量的n次微分④diff(f,t,n)求f對獨立變量t的n次微分;⑤f可以是標(biāo)量、向量、矩陣。例:已知求f(x)的微分。symsabcxf
4、=a*x^2+b*x+cdiff(f)diff(f,a)diff(f,a,2)diff(diff(f),a)3、積分Matlab求積分的函數(shù)是int()說明:①用int(f)返回f對預(yù)設(shè)獨立變量的積分;②int(f,’t’)返回f對獨立變量t的積分;③int(f,a,b)求f對預(yù)設(shè)獨立變量的積分,積分區(qū)間為[a,b],a和b為數(shù)值式;④int(f,’t’,a,b)求f對獨立變量t的積分,積分區(qū)間為[a,b],a和b為數(shù)值式;⑤int(f,’m’,’n’)求f對預(yù)設(shè)獨立變量的積分,積分區(qū)間為[m,n],m和n為字符式⑥f可以是標(biāo)量、向量、矩陣。例:求下列積分:f=sym(‘sqrt(x)/(1+
5、x^2)’)int(f,0,inf)3.3方程求解1、利用符號表達(dá)式求解代數(shù)方程例1:求解一元二次方程的根。f=sym(‘a(chǎn)*x^2+b*x+c’)solve(f)solve(f,a)2、利用符號表達(dá)式求解線性方程組例2:求解線性代數(shù)方程x+y+z=10x-y+z=02*x-y-z=-4>>f1=sym(‘x+y+z=10’);>>f2=sym(‘x-y+z=0’);>>f3=sym(‘2*x-y-z=-4’);>>[x,y,z]=solve(f1,f2,f3)3.4微分方程求解符號運算中的微分方程求解函數(shù)可利用如下格式dsolve(‘方程1’,‘方程2’,…)函數(shù)格式說明:①可多至12個微分
6、方程的求解;②默認(rèn)自變量為x,并可任意指定自變量t,u等;③方程的各階導(dǎo)數(shù)項以大寫字母“D”作為標(biāo)識,后接數(shù)字階數(shù),再接解變量名;④初始條件以符號代數(shù)方程給出,如果初始條件項缺省,其默認(rèn)常數(shù)為C1,C2,…等;⑤返回變量的格式為:[Y1,Y2,…]=dsolve(…)下面是一些實例:①一階微分方程dsolve(‘Dy=a*y’,’x’)dsolve(‘Df=f+sin(t)’)y=dsolve(‘(Dy)^2+y^2=1’,’s’)②一階微分方程,給定初始條件dsolve(‘Dy=a*y’,’y(0)=b’)dsolve(‘Df=f+sin(t)’,’f(pi/2)=0’)y=dsolve(‘
7、(Dy)^2+y^2=1’,’y(0)=5’,’s’)③二階微分方程dsolve(‘D2y=-a^2*y’)④二階微分方程,給定初始條件dsolve(‘D2y=-a^2*y’,’y(0)=1’,’Dy(pi/2)=0’)⑤2個微分方程[x,y]=dsolve(‘Dx=y’,Dy=-x’)[f,g]=dsolve(‘Df=3*f+4*g’,’Dg=-5*f+2*g’)⑥2個微分方程,給定初始條件[x