資源描述:
《Matlab講義5.ppt》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)。
1、1數(shù)學(xué)軟件——MATLAB電子教案(五)——符號(hào)運(yùn)算與基本微積分2符號(hào)對(duì)象的定義MATLAB中的SymbolicMathToolbox工具箱對(duì)符號(hào)對(duì)象支持?jǐn)?shù)學(xué)解析式似的推演。故進(jìn)行公式演算前應(yīng)將推演對(duì)象先指定為符號(hào)對(duì)象類型(sym)的數(shù)據(jù)。定義基本符號(hào)對(duì)象的指令有sym、syms兩個(gè)。它們的基本使用方式為:f=sym(arg)把數(shù)字/字符串/表達(dá)式轉(zhuǎn)換為符號(hào)對(duì)象f。f=sym(argn,flagn)把數(shù)值表達(dá)式argn轉(zhuǎn)換為flagn格式的符號(hào)對(duì)象f。argv=sym(‘a(chǎn)rgv’,flagv)按flagv要求把字符串a(chǎn)rgv定義為符號(hào)對(duì)象argv。syms(‘a(chǎn)rgv1’,’argv2’
2、,...)把字符arg1,arg2等定義為基本符號(hào)對(duì)象。symsargv1argv2...為syms(...)的簡(jiǎn)潔形式。3sym、syms的選項(xiàng)簡(jiǎn)要說明f=sym(argn,flagn)中的選項(xiàng)flagn可?。?‘d’最接近的十進(jìn)制浮點(diǎn)數(shù)精確表示。‘r’最接近的有理表示(缺省設(shè)置)。所謂“有理”表示,是指用兩個(gè)正整數(shù)p,q構(gòu)成的:p/q,p*pi/q,sqrt(p),2^q,10^q形式之一表示。argv=sym(‘a(chǎn)rgv’,flagv)中選項(xiàng)flagv可?。?‘positive’限定argv為“正實(shí)數(shù)型”符號(hào)變量。‘real’限定argv為“實(shí)數(shù)型”符號(hào)變量。‘unreal’
3、指定argv為“非實(shí)數(shù)型”變量(清除argv的實(shí)數(shù)屬性)。4符號(hào)常數(shù)與數(shù)值常數(shù)的轉(zhuǎn)換數(shù)值計(jì)算受計(jì)算機(jī)字長(zhǎng)的限制,每次數(shù)值操作都帶截?cái)嗾`差,故無任采用何種算法均會(huì)產(chǎn)生積累誤差。但符號(hào)計(jì)算的結(jié)果是絕對(duì)準(zhǔn)確的,因此在輸出最終結(jié)果時(shí),再根據(jù)需要轉(zhuǎn)換為指定精度的數(shù)值將減少誤差。SymbolicToolbox中與數(shù)值精度計(jì)算有關(guān)的指令有:double(x)將符號(hào)常數(shù)x轉(zhuǎn)為16位相對(duì)精度浮點(diǎn)數(shù)。digits(n)設(shè)置今后的數(shù)值計(jì)算以n位相對(duì)精度進(jìn)行。xs=vpa(x)在digits指定精度下,給出x的數(shù)值型符號(hào)結(jié)果xs。xs=vpa(x,n)在n位相對(duì)精度下,給出x的數(shù)值型符號(hào)結(jié)果xs。5字符表達(dá)式轉(zhuǎn)符
4、號(hào)對(duì)象示例y=sym(‘2*sin(x)*cos(x)’)%字符表達(dá)式化為符號(hào)變量。y=simple(y)%把y表示的符號(hào)表達(dá)式化為最簡(jiǎn)形式。symsfai1fail2;y=simple(sin(fai1)*cos(fai2)-cos(fai1)*sin(fai2))symsa11a12a21a22;A=[a11,a12;a21,a22]DA=det(A),IA=inv(A),EA=eig(A)注意:進(jìn)行符號(hào)計(jì)算前,首先定義基本符號(hào)對(duì)象(可以是常數(shù)、變量、表達(dá)式),然后利用這些基本符號(hào)對(duì)象去構(gòu)成新的符號(hào)表達(dá)式,進(jìn)行所需的符號(hào)運(yùn)算。由符號(hào)對(duì)象構(gòu)成表達(dá)式生成的衍生對(duì)象通常仍為符號(hào)對(duì)象。6符號(hào)計(jì)
5、算的運(yùn)算符和基本函數(shù)由于采用了重載技術(shù),符號(hào)表達(dá)式中的運(yùn)算符以及內(nèi)建函數(shù)與數(shù)值計(jì)算形式幾乎一致。下面進(jìn)行簡(jiǎn)要?dú)w納?;具\(yùn)算符:“+”,“-”,“*”,“”,“/”,“^”;“.*”,“./”,“.”,“.^”;“.?”,“?”。關(guān)系運(yùn)算符:“==”,“~=”(符號(hào)對(duì)象間比較時(shí),無大小概念)。三角函數(shù)、雙曲函數(shù)及其反函數(shù)。指數(shù)函數(shù)、對(duì)數(shù)函數(shù)等(exp、log、sqrt)。復(fù)數(shù)函數(shù)(conj,real,imag,abs;但無求輻角指令)。矩陣代數(shù)指令(diag,triu,tril,inv,det,rank)(rref,null,colspace,poly,expm,eig,svd)
6、。7符號(hào)對(duì)象的識(shí)別數(shù)值對(duì)象、符號(hào)對(duì)象、字符串對(duì)象各自遵循不同的運(yùn)算法則,但外形常常很相似。MATLAB提供class,isa,whos等指令對(duì)它們進(jìn)行識(shí)別。另外,觀察基本工作空間瀏覽器也可知道已有對(duì)象的類型。例如:vs=sym('f=x+y'),vc='f=x+y',vf=5.2+1.8class(vs),class(vc),class(vf)isa(vs,'sym'),isa(vc,'char'),isa(vf,'double')whos8符號(hào)表達(dá)式中自由變量的確定MATLAB指令findsym能幫助用戶了解系統(tǒng)對(duì)符號(hào)表達(dá)式中的獨(dú)立自變量是如何自動(dòng)認(rèn)定的。具體方法如下:findsy
7、m(EXPR)確認(rèn)表達(dá)式EXPR中所有自由符號(hào)變量。findsym(EXPR,N)從EXPR中確認(rèn)出靠x最近的N個(gè)獨(dú)立自變量。說明:EXPR可以是符號(hào)矩陣。此時(shí)指令對(duì)自由變量的確認(rèn)是對(duì)整個(gè)矩陣進(jìn)行,而非元素。按照自然科學(xué)習(xí)慣,MATLAB總是默認(rèn)將x以及最靠近x的字母表示的變量?jī)?yōu)先確認(rèn)為獨(dú)立的自由變量。(小寫字母總是比大寫字母更靠近x)9確定自由變量示例symsabxXY;k=sym('3');z=sym('c*sqr