資源描述:
《matlab符號運算2》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、第5章MATLAB符號運算符號數(shù)學(xué)工具箱使用符號對象或字符串來進行符號分析和運算,它的結(jié)果形式也是符號或者說解析形式的。5.1符號對象及其表達方式符號對象是對參與符號運算的各種形式量的一個統(tǒng)稱。包括符號常量、符號變量、符號表達式和符號矩陣或數(shù)組。定義符號常量sym()函數(shù)可以將一個數(shù)值常量A定義成一個符號常量sym(A)或sym(A,flag).flag為可選參數(shù),有4種形式,分別是'r'、'd'、'e'或'f'。r:有理數(shù)(缺省)d:十進制數(shù)e:帶有機器浮點誤差的有理數(shù)f:浮點數(shù)例5.1將一組數(shù)值常量定義成符號常量。l
2、og(2)%數(shù)值常量f1=sym('log(2)')%符號常量,注意f1在工作空間中的類型定義符號變量(1)使用sym()函數(shù):sym('x')sym('x','real')sym('x','unreal')(2)使用syms命令symsarg1arg2...symsarg1arg2...realsymsarg1arg2...unreal>>sym('x')%定義符號變量x>>sym('y','real')%定義符號變量y,且同時為實型符號量>>symsabc>>symsmnreal>>symsxyzunreal5.1.
3、2符號表達式由符號對象參與運算的表達式即是符號表達式。與數(shù)值表達式不同,符號表達式中的變量不要求有預(yù)先確定的值。符號方程式是含有等號的符號表達式。例5.5構(gòu)造符號表達式。symsxyzrst;x^2+2*x+1f3=sym('r^2+sin(x)+cos(y)+log(s)+exp(t)')可以從工作空間中查證,f1、f2、f3均為符號表達式。f4='r^2+sin(x)+cos(y)+log(s)+exp(t)';g='sin(a)+cos(b)';%f4和g均為字符串變量。5.1.3符號矩陣符號矩陣的元素可以是符號常
4、量、符號變量和符號表達式,可用函數(shù)sym命令來直接創(chuàng)建符號矩陣;用類似創(chuàng)建普通數(shù)值矩陣的方法創(chuàng)建符號矩陣;由數(shù)值矩陣轉(zhuǎn)換為符號矩陣和以矩陣元素的通式來創(chuàng)建符號矩陣。例5.6構(gòu)造符號矩陣S=sym('[l,x,y,z;n,u,v,w;a,b,c,d;g,h,j,p]')H=sym('[cos(t),-sin(t);sin(t),cos(t)]')例5.7用sym()函數(shù)將數(shù)值矩陣轉(zhuǎn)換成符號矩陣。先建立一個數(shù)值矩陣,例如:M=[1.1,1.2,1.3;2.1,2.2,2.3;3.1,3.2,3.3]再通過sym命令可直接將數(shù)
5、值矩陣轉(zhuǎn)換為符號矩陣,例如:S=sym(M)例5.8用size()函數(shù)求符號矩陣的大小s=size(M)[s_r,s_c]=size(M)s_r=size(M,1)s_c=size(M,2)例5.9抽取符號矩陣中的元素B=sym('[a,b,c;d,e,f;g,h,k]')B(2,3),B(6)5.2符號算術(shù)運算符號算術(shù)運算主要是針對符號對象的加減、乘除運算,其運算法則和運算符號同第2章介紹的數(shù)值運算相同,其不同點在于參與運算的對象和運算所得結(jié)果是符號的而非數(shù)值的。例5.10求兩個符號表達式的和與差symsxfxgx%定
6、義符號變量于符號表達式fx=2*x^2+3*x-5gx=x^2-x+7fx+gxfx-gxA*B、A/B可分別用來求A和B兩個符號矩陣的乘法與除法。A.*B則用來實現(xiàn)兩個符號數(shù)組的乘法。其中矩陣除法也可用來求解符號線性方程組的解。symsabcdefgh;A=[ab;cd];B=[ef;gh];C1=A.*BD1=A*B例5-13已知多項式,,求兩個多項式的積和商。symsxfxgxfx=3*x^5-x^4+2*x^3+x^2+3gx=1/3*x^3+x^2-3*x-1fx*gxexpand(fx*gx)%展開積的符號表
7、達式5.3.1表達式中的獨立變量5.3.1表達式中的獨立變量當符號表達式中含有多于一個的變量時,只有一個變量是獨立變量。MATLAB基于以下規(guī)則選擇獨立變量:(1)因為i和j是虛單位,它們不能作為獨立變量。(2)表達式中有x作為符號變量時,x就是獨立變量。表達式中沒有x作為符號變量時,就從表達式中挑選打頭字母最靠近x的符號變量作為獨立變量。如果表達式中有與x前后等距的兩個字母符號變量時,選擇排序在x后面的那一個。findsym()查找MATLAB的符號表達式或矩陣中哪一個變量是獨立變量r=findsym(S):以字母表的
8、順序返回表達式S中的所有符號變量(注:符號變量由除了i與j的字母與數(shù)字構(gòu)成的、字母打頭的字符串)。若S中沒有任何的符號變量,則findsym返回一空字符串。r=findsym(S,n):返回表達式S中依接近x的順序而排列的n個符號變量symsaxyztalphabetaS1=findsym(sin(pi*t*alph