資源描述:
《二講matlab符號(hào)計(jì)算》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、第二講Matlab符號(hào)計(jì)算參考文獻(xiàn):MATLAB程序設(shè)計(jì)教程李海濤,鄧櫻編著高等教育出版社,2002所謂符號(hào)計(jì)算是指在運(yùn)算時(shí),無須事先對(duì)變量賦值,而將所得到結(jié)果以標(biāo)準(zhǔn)的符號(hào)形式來表示。Matlab本身并沒有符號(hào)計(jì)算功能,MathWorks公司于1993年購買了著名的符號(hào)數(shù)學(xué)軟件Maple的使用權(quán),并利用Maple已有的函數(shù)庫,開發(fā)了符號(hào)數(shù)學(xué)工具箱。符號(hào)運(yùn)算與數(shù)值運(yùn)算的區(qū)別:數(shù)值運(yùn)算中必須先對(duì)變量賦值,然后才能參與運(yùn)算。符號(hào)運(yùn)算無須事先對(duì)獨(dú)立變量賦值,運(yùn)算結(jié)果以標(biāo)準(zhǔn)的符號(hào)形式表達(dá)。符號(hào)計(jì)算是精確計(jì)算,可以獲得任意精度的解;SymbolicMa
2、thToolbox——符號(hào)運(yùn)算工具包通過調(diào)用Maple軟件實(shí)現(xiàn)符號(hào)計(jì)算的。Maple軟件——主要功能是符號(hào)運(yùn)算,它占據(jù)符號(hào)軟件的主導(dǎo)地位。符號(hào)運(yùn)算的特點(diǎn):運(yùn)算對(duì)象可以是沒賦值的符號(hào)變量。符號(hào)計(jì)算定義在符號(hào)變量的基礎(chǔ)上,符號(hào)表達(dá)式計(jì)算前必須定義符號(hào)變量;Matlab的符號(hào)數(shù)學(xué)工具箱的主要功能包括:符號(hào)表達(dá)式的創(chuàng)建、符號(hào)矩陣的運(yùn)算、符號(hào)表達(dá)式的化簡、符號(hào)微積分、符號(hào)方程(主要指代數(shù)方程與常微分方程)的求解、符號(hào)函數(shù)繪圖等。符號(hào)計(jì)算的計(jì)算速度較慢;符號(hào)計(jì)算的運(yùn)算符和基本數(shù)學(xué)函數(shù)與數(shù)值計(jì)算中的運(yùn)算符和基本數(shù)學(xué)函數(shù)幾乎完全相同。一、符號(hào)對(duì)象的創(chuàng)建(一
3、)創(chuàng)建符號(hào)變量和表達(dá)式參與符號(hào)運(yùn)算的對(duì)象可以是符號(hào)變量、符號(hào)表達(dá)式或符號(hào)矩陣。符號(hào)變量要先定義,后引用。Matlab提供了兩個(gè)建立符號(hào)變量的函數(shù):sym和syms,兩個(gè)函數(shù)的用法不同。sym函數(shù)sym函數(shù)的主要功能是創(chuàng)建單個(gè)符號(hào)變量,以便進(jìn)行符號(hào)運(yùn)算,也可以用于創(chuàng)建符號(hào)表達(dá)式或符號(hào)矩陣。用sym函數(shù)創(chuàng)建符號(hào)變量的一般格式為:符號(hào)量名=sym('符號(hào)字符串')符號(hào)字符串可以是常量、變量、函數(shù)、表達(dá)式或方程。如:f1='a?x^2+b?x+c'——二次三項(xiàng)式f2='a?x^2+b?x+c=0'——方程f3='Dy+y^2=1'——微分方程符號(hào)表
4、達(dá)式或符號(hào)方程可以賦給符號(hào)變量,以后調(diào)用方便;也可以不賦給符號(hào)變量直接參與運(yùn)算a=sym('a');b=sym('b');c=sym('c');d=sym('d');%定義4個(gè)符號(hào)變量w=10;x=5;y=-8;z=11;%定義4個(gè)數(shù)值變量A=[a,b;c,d]%建立符號(hào)矩陣AB=[w,x;y,z]%建立數(shù)值矩陣Bdet(A)%計(jì)算符號(hào)矩陣A的行列式det(B)%計(jì)算數(shù)值矩陣B的行列式使用符號(hào)變(常)量進(jìn)行代數(shù)運(yùn)算和數(shù)值變(常)量進(jìn)行的運(yùn)算是不同的。例1考察符號(hào)變量和數(shù)值變量的差別。例2定義一個(gè)符號(hào)函數(shù)fxy=(a*x^2+b*y^2)/c
5、^2,分別求該函數(shù)對(duì)x、y的導(dǎo)數(shù)和對(duì)x的積分。a=sym('a');b=sym('b');c=sym('c');%定義符號(hào)變量x=sym('x');y=sym('y');fxy=(a*x^2+b*y^2)/c^2;%生成符號(hào)函數(shù)diff(fxy,x)%符號(hào)函數(shù)fxy對(duì)x求導(dǎo)數(shù)diff(fxy,y)%符號(hào)函數(shù)fxy對(duì)y求導(dǎo)數(shù)int(fxy,x)%符號(hào)函數(shù)fxy對(duì)x求積分ans=2*a*x/c^2ans=2*b*y/c^2ans=1/c^2*(1/3*a*x^3+b*y^2*x)例3比較符號(hào)常數(shù)與數(shù)值在代數(shù)運(yùn)算時(shí)的差別。pi1=sym('pi'
6、);k1=sym('8');%定義符號(hào)變量k2=sym('2');k3=sym('3');pi2=pi;r1=8;r2=2;r3=3;%定義數(shù)值變量sin(pi1/3)%計(jì)算符號(hào)表達(dá)式值sin(pi2/3)%計(jì)算數(shù)值表達(dá)式值sqrt(k1)%計(jì)算符號(hào)表達(dá)式值sqrt(r1)%計(jì)算數(shù)值表達(dá)式值sqrt(k3+sqrt(k2))%計(jì)算符號(hào)表達(dá)式值sqrt(r3+sqrt(r2))%計(jì)算數(shù)值表達(dá)式值ans=1/2*3^(1/2)ans=0.8660ans=2*2^(1/2)ans=2.8284ans=(3+2^(1/2))^(1/2)ans=2.
7、1010符號(hào)表達(dá)式由符號(hào)變量、函數(shù)、算術(shù)運(yùn)算符等組成。符號(hào)表達(dá)式的書寫格式與數(shù)值表達(dá)式相同。利用單引號(hào)來生成;用sym函數(shù)建立;使用已定義的符號(hào)變量組成。建立符號(hào)表達(dá)式的方法:例4已知一復(fù)數(shù)表達(dá)式z=x+i*y,試求其共軛復(fù)數(shù),并求該表達(dá)式與其共軛復(fù)數(shù)乘積的多項(xiàng)式。為了使乘積表達(dá)式x^2+y^2非負(fù),這里,把變量x和y定義為實(shí)數(shù)。>>x=sym('x','real');y=sym('x','real');若要去掉'x'的屬性,可以使用下面語句>>x=sym('x','unreal')將'x'創(chuàng)建為純格式的符號(hào)變量。z=x+i*y;%定義復(fù)數(shù)
8、表達(dá)式conj(z);%求共軛復(fù)數(shù)expand(z*conj(z))%求表達(dá)式與其共軛復(fù)數(shù)乘積的多項(xiàng)式ans=x^2+y^2syms函數(shù)函數(shù)sym一次只能定義一個(gè)符號(hào)變量,使用不