資源描述:
《Matlab符號(hào)函數(shù)》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫(kù)。
1、MATLAB中的符號(hào)運(yùn)算建立符號(hào)變量和符號(hào)常量MATLAB提供了兩個(gè)建立符號(hào)對(duì)象的函數(shù):sym,syms(1)sym函數(shù)sym函數(shù)用來(lái)建立單個(gè)符號(hào)變量,一般調(diào)用格式為:符號(hào)變量名=sym('符號(hào)字符串')該函數(shù)可以建立一個(gè)符號(hào)變量,符號(hào)字符串可以是常量、變量、函數(shù)或表達(dá)式。應(yīng)用sym函數(shù)還可以定義符號(hào)常量,使用符號(hào)常量進(jìn)行代數(shù)運(yùn)算時(shí)和數(shù)值常量進(jìn)行的運(yùn)算不同。(2)syms函數(shù)函數(shù)sym一次只能定義一個(gè)符號(hào)變量,使用不方便。MATLAB提供了另一個(gè)函數(shù)syms,一次可以定義多個(gè)符號(hào)變量。syms函數(shù)的一般調(diào)用格式為:syms符號(hào)變量
2、名1符號(hào)變量名2…符號(hào)變量名n用這種格式定義符號(hào)變量時(shí)不要在變量名上加字符串分界符(‘),變量間用空格而不要用逗號(hào)分隔。符號(hào)函數(shù)中只有一個(gè)符號(hào)變量時(shí),默認(rèn)其為自變量。例1.定義兩個(gè)符號(hào)變量x,y,并繪制函數(shù)y=exp(-x^2)的圖形。>>symsxy>>y=exp(-x^2)y=exp(-x^2)>>ezplot(y,[-2.5,2.5])ezplot(f,[a,b]):二維曲線的繪制命令??捎脕?lái)畫出函數(shù)f在區(qū)間[a,b]上的圖形。畫出橢圓的圖形,圖形區(qū)域。ezplot(‘x^2/3+y^2/4-1’,[-5,5,-8,8])例
3、2.符號(hào)變量與數(shù)值變量的區(qū)別符號(hào)運(yùn)算和數(shù)值運(yùn)算的主要區(qū)別之一,是在參與運(yùn)算時(shí),符號(hào)運(yùn)算可以在沒(méi)有提前賦值的情況下合法地出現(xiàn)在表達(dá)式中,而數(shù)值變量在參與運(yùn)算時(shí),必須提前賦值。此外,符號(hào)運(yùn)算可獲得任意精度的解,但同時(shí)也需要耗費(fèi)較多的資源。例3.比較一個(gè)符號(hào)變量和一個(gè)數(shù)值變量占用空間的不同。>>clear>>symsA>>x=pi;>>whosNameSizeBytesClassA1x1126symobjectx1x18doublearray例4.轉(zhuǎn)換數(shù)值變量為符號(hào)變量>>A=[1/3,1/4;1/5,1/7];%定義一個(gè)表示二階矩陣的
4、數(shù)值變量>>B=sym(A)%使用函數(shù)轉(zhuǎn)換B=[1/3,1/4][1/5,1/7]將數(shù)值變量轉(zhuǎn)換為符號(hào)變量的常用方法是使用函數(shù)sym(A)將符號(hào)變量轉(zhuǎn)換為數(shù)值變量的方法是使用函數(shù)double()或numeric().例5.定義一個(gè)分?jǐn)?shù)為符號(hào)數(shù),并將符號(hào)數(shù)轉(zhuǎn)換為數(shù)值數(shù)。>>clear>>x=sym('1/3');>>double(x)ans=0.3333符號(hào)表達(dá)式的創(chuàng)建含有符號(hào)對(duì)象的表達(dá)式稱為符號(hào)表達(dá)式。建立符號(hào)表達(dá)式有以下方法:例如:f=sym('a*x^2+b*x+c')f=sym('表達(dá)式')syms符號(hào)變量1符號(hào)變量2…f=
5、表達(dá)式>>f=sym('1/sin(x)');>>finverse(f)ans=asin(1/x)例6:求f=1/sin(x)的反函數(shù).或:>>symsx;f=1/sin(x);>>finverse(f)ans=asin(1/x)例7:符號(hào)多項(xiàng)式運(yùn)算>>symsx>>f=2*x^2+3*x-5;g=x^2+x-7;>>h1=f+g,h2=expand(f*g)h1=3*x^2+4*x-12h2=2*x^4+5*x^3-16*x^2-26*x+35>>factor(h2)ans=(x-1)*(2*x+5)*(x^2+x-7)>>h2
6、=f*gh2=(2*x^2+3*x-5)*(x^2+x-7)在符號(hào)變量表達(dá)式中,通常默認(rèn)x為自由變量,如果符號(hào)表達(dá)式中不出現(xiàn)x,則以最靠近x的字母為自由變量。用函數(shù)findsym()可以確定表達(dá)式中的自由變量。findsym(表達(dá)式)可得出表達(dá)式中所有的符號(hào)變量,findsym(表達(dá)式,n)可以得到表達(dá)式中最靠近x的n個(gè)變量。例8:定義一個(gè)符號(hào)表達(dá)式,并從中確定符號(hào)變量。>>clear>>symsabcx>>f1=a*x^2+b*x+c;>>findsym(f1)ans=a,b,c,x>>findsym(f1,1)ans=x>>f
7、indsym(f1,2)ans=x,c符號(hào)表達(dá)式中變量替換要將符號(hào)表達(dá)式中的某一個(gè)變量轉(zhuǎn)換為一個(gè)數(shù)或者另一個(gè)變量時(shí),可用函數(shù)subs:subs(A,‘old’,‘new’)用‘new’置換符號(hào)表達(dá)式A中的’old’得到新的符號(hào)表達(dá)式。例9.求符號(hào)多項(xiàng)式的值。>>symsax>>f=a*x^2+3*x+4;>>f1=subs(f,a,2)f1=2*x^2+3*x+4>>subs(f1,x,5)ans=69>>a=2;x=5;eval(f)ans=69命令eval可計(jì)算符號(hào)表達(dá)式的值將符號(hào)矩陣轉(zhuǎn)化為數(shù)值矩陣調(diào)用格式:double(A)
8、numeric(A)例10.A=sym([1/3,2/5;10/7,2/5])A=[1/3,2/5][10/7,2/5]>>numeric(A)ans=0.33330.40001.42860.4000復(fù)雜表達(dá)式的化簡(jiǎn)>>symsxyzabc>>f=