符號語言簡介_第1頁
符號語言簡介_第2頁
符號語言簡介_第3頁
符號語言簡介_第4頁
符號語言簡介_第5頁
已閱讀5頁,還剩5頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

MATLAB符號語言工具箱應(yīng)用簡介MATLAB具有符號數(shù)學(xué)工具箱,可以對符號表達(dá)式進(jìn)行運(yùn)算和處理?;具\(yùn)算包括復(fù)合、化簡、微分、積分以及求解代數(shù)方程式、微分方程式等。另外,還可以求解線性代數(shù)問題,如求解符號矩陣的逆、行列式、正則行的精確結(jié)果,找出符號矩陣的特征值而沒有由數(shù)值計算引入的誤差。工具箱還支持可變精度運(yùn)算,由于符號運(yùn)算不產(chǎn)生數(shù)值運(yùn)算產(chǎn)生的運(yùn)算誤差,可以在運(yùn)算最后將數(shù)字代入結(jié)果,因此避免了中間運(yùn)算的誤差,能夠以指定的精度返回結(jié)果。符號數(shù)學(xué)工具箱的功能建立在 Maple軟件的基礎(chǔ)上。該軟件最初是由加拿大的滑鐵盧(Waterloo)大學(xué)開發(fā)的。當(dāng)用戶要求MATLAB進(jìn)行符號運(yùn)算時,它就轉(zhuǎn)入Maple去計算并將結(jié)果返回到MATLAB命令窗口。因此,MATLAB中的符號運(yùn)算是MATLAB處理數(shù)字功能的自然擴(kuò)展。1符號表達(dá)式符號表達(dá)式是包括數(shù)字、代數(shù)或有理運(yùn)算和符號變量的MATLAB字符串。它不要求變量有預(yù)先確定的值。符號方程式是含有等號的符號表達(dá)式。符號矩陣是數(shù)組,其元素是符號表達(dá)式。符號運(yùn)算是使用已知的數(shù)學(xué)規(guī)則和給定的符號恒等式求解這些符號方程,它與代數(shù)和微積分所學(xué)到的求解方法完全一樣。創(chuàng)建符號表達(dá)式MATLAB用sym(‘’)命令建立符號表達(dá)式。符號表達(dá)式表示成字符串,用單引號‘’括起來,以與數(shù)字變量或運(yùn)算相區(qū)別。否則,這些符號表達(dá)式幾乎完全像MATLAB命令。表B-1列有幾則符號表達(dá)式和MATLAB等效表達(dá)式的例子。表B-1符號表達(dá)式與等效的MATLAB表達(dá)式MATLAB符號函數(shù)可讓用戶用多種方法來操作這些表達(dá)式。例如,定義符號表達(dá)式:y=sym('cos(x)')y=cos(x)對符號表達(dá)式進(jìn)行運(yùn)算c1=diff(y)%求微分cl=-sin(x)符號常量不含變量的符號表達(dá)式叫做符號常量。例如f=sym('2*4-6')%定義符號表達(dá)式,不含符號變量f=2*4-6求f的數(shù)值(進(jìn)行數(shù)值運(yùn)算):f1二numeric(f)f1=2進(jìn)行符號運(yùn)算:f2=f+1f2=3符號變量當(dāng)字符表達(dá)式中含有多于一個的變量時,只有一個變量是獨立變量,其余的文字符號作為常量處理。如果用戶不指定哪一個變量是獨立變量,MATLAB將基于以下規(guī)則選擇一個獨立變量:?除去i和j的小寫字母,表達(dá)式中如果沒有其他字母,選擇x作為獨立變量;?如果有多個字符變量,選擇在字母順序中最接近x的字符變量;?如果有相連的字母,選擇在字母表中較后的那一個。例如,鍵入:diff('sin(x)+1')%只含有一個字符變量,該字符就是獨立變量ans=cos(x)鍵入:diff('sin(a)+b')%含有兩個字符變量,字母表中靠后的是獨立變量ans=1鍵入:diff('3*y+z') %含有兩個字符變量,接近x的是獨立變量ans=32符號表達(dá)式運(yùn)算一旦建立了一個符號表達(dá)式,符號運(yùn)算功能可以完成如提取表達(dá)式的一部分、合并兩個表達(dá)式、求表達(dá)式的數(shù)值以及表達(dá)式的加、減、乘、除等運(yùn)算。提取分子和分母如果表達(dá)式是一個有理分式(兩個多項式之比),或是可以展開為有理分式(包括那些分母為1的分式)可利用numden命令來提取分子或分母,必要時還可以進(jìn)行表達(dá)式合并。例如,m=sym('x"2') %定義有理分式mm=x"2代數(shù)運(yùn)算很多標(biāo)準(zhǔn)的代數(shù)運(yùn)算可以在符號表達(dá)式上執(zhí)行,命令symadd,symsub,symmul和symdiv可以加、減、乘、除兩個表達(dá)式,sympow將一個表達(dá)式表示為另一個表達(dá)式的幕次。例如,f='2*x-5' %定義符號表達(dá)式ff=2*x-5g='x"2-x+7' %定義符號表達(dá)式gx2-x+7symadd(f,g)%求f+gans=x+2+x"2高級運(yùn)算符號表達(dá)式的高級運(yùn)算包括表達(dá)式的復(fù)合、求逆函數(shù)、求前n-1項和等。其中,?命令compose把f(x)和g(x)復(fù)合成f((g(x))。例如,f=sym('cos(x)')f=cos(x)?命令finverse求表達(dá)式的逆函數(shù)。表達(dá)式f(x)的逆函數(shù)g(x)滿足g(f(x))=x。命令finverse給出表達(dá)式的逆函數(shù),如果解不唯一,就給出警告。例如,p=sym(,e“x,)p=e"x鍵入:finverse(p)ans=log(x)/log(e)結(jié)果相當(dāng)于ln(x),因為ln(e"x)=x。?命令symsum求表達(dá)式的前n—1項和。有下面四種形式:f=sym('x"2')f=x"2鍵入:symsum(f)%求前x-1項和ans=1/3*x"3T/2*x"2+1/6*x函數(shù)變換MATLAB的符號運(yùn)算功能,可以將符號表達(dá)式變換成數(shù)值或反之。有些符號函數(shù)可返回數(shù)值。命令sym可將MATLAB的一般(數(shù)值)表達(dá)式轉(zhuǎn)換為符號表達(dá)式,前面已經(jīng)作過介紹。函數(shù)numeric的功能正好相反,它把一個符號常數(shù)(無變量符號表達(dá)式)變換為一個數(shù)值。例如,numeric('1+2"2')ans=53微分和積分微分和積分是微積分學(xué)研究和應(yīng)用的核心,并廣泛地用在許多工程學(xué)科。MATLAB符號運(yùn)算功能可以解決許多這類問題。微分符號表達(dá)式的微分利用命令diff完成,有下面四種形式:p='a*x"2+b*x' %定義符號表達(dá)式pp=a*x"2+b*x鍵入:diff(p)%對缺省變量x求微分ans=2*a*x+b積分符號運(yùn)算的積分命令為int(f),其中f是一個符號表達(dá)式。積分的目的是求出另一個符號表達(dá)式P,使其微分滿足diff(P)=f。積分命令有多種表達(dá)形式,例如:f='cos(2*x)+s”2' %建立符號表達(dá)式ff=cos(2*x)+s"2鍵入:int(f) %對x求積分ans=1/2*sin(2*x)+s"2*x4符號表達(dá)式畫圖MATLAB提供了命令ezplot,將符號表達(dá)式可視化。對于一個自變量的函數(shù),可視化實際上是求解自變量各點上的函數(shù)值并繪圖的過程。例如,y='2*x"2-3*x+10'y=2*x"2-3*x+10鍵入不同命令:ezplot(y) %程序自動選擇自變量范圍繪圖ezplot(y,[-1010]) %確定自變量范圍繪圖繪圖結(jié)果如圖B-1,圖B-2所示,表明了同一個函數(shù)不同的自變量范圍的圖形。圖B-1符號表達(dá)式畫圖,自動選擇小x范圍 圖B-2符號表達(dá)式畫圖,給定范圍5符號表達(dá)式的簡化對于一些冗長繁復(fù)、難以理解的符號表達(dá)式,MATLAB提供了許多方法可以將其進(jìn)行簡化、約分、合并同類項等處理,使表達(dá)式變得更簡潔易懂。包括:pretty命令,該命令以類似于數(shù)學(xué)課本上的形式(如有理分式)來顯示符號表達(dá)式。collect命令可以合并同類項,給出降幕排列形式horner命令可將降幕排列的多項式變成嵌套形式factor命令將表達(dá)式分解因式expand命令展開表達(dá)式,給出降幕排列形式simplify命令將表達(dá)式進(jìn)行簡化Simplify是一個功能強(qiáng)大、通用的工具。它利用各種類型的代數(shù)恒等式,包括求和、積分和分?jǐn)?shù)幕、三角、指數(shù)和log函數(shù)等來簡化表達(dá)式。simple命令可在簡化基礎(chǔ)上進(jìn)一步給出多種簡化形式符號表達(dá)式的簡化是很有用的工具,但由于簡化方式不同,有時會產(chǎn)生不同的答案。在符號工具箱內(nèi)的simple命令可以試用幾種方式進(jìn)行簡化,然后選擇最簡形式。6可變精度算術(shù)運(yùn)算計算機(jī)內(nèi)的數(shù)值計算精度受到每次計算結(jié)果所保留的位數(shù)(字長、字節(jié)數(shù))的限制,例如如果保留位數(shù)是16位,則第17位以后的數(shù)據(jù)將被舍去,所以任何數(shù)值運(yùn)算都會引入舍入誤差,重復(fù)多次的數(shù)值運(yùn)算還會造成累計誤差。而MATLAB的符號運(yùn)算是對符號表達(dá)式的運(yùn)算,結(jié)果是非常準(zhǔn)確的,因為它們不需要進(jìn)行數(shù)值運(yùn)算,所以無舍入誤差。對符號運(yùn)算結(jié)果用函數(shù)eval或numeric求其數(shù)值,所以僅在結(jié)果轉(zhuǎn)換時會引入一次性的舍入誤差。原理上,符號運(yùn)算可以實現(xiàn)任何數(shù)位的運(yùn)算,但當(dāng)保留位數(shù)增加時,每次計算就需要附加時間和計算機(jī)內(nèi)存。Maple的缺省位數(shù)為16位精度,命令digits給出保留位數(shù)的當(dāng)前值。命令digits(n)可以改變?nèi)笔∥粩?shù),其中n是所期望精度的數(shù)位。用這種方法增加精度的副作用是,每個隨后進(jìn)行的Maple函數(shù)的計算都以新的精度為準(zhǔn),增加了計算時間。計算結(jié)果的顯示不會改變,只有所用的aple函數(shù)的缺省精度受到影響。另外一個函數(shù)vpa可以用缺省的精度或任何指定的精度實行單個符號表達(dá)式的計算,以同樣的精度來顯示結(jié)果,而使全局的digits參數(shù)不變。7符號方程求解用MATLAB所具有的符號工具箱可以求解符號方程。解單個代數(shù)方程MATLAB用solve命令求解符號方程。如果表達(dá)式不是一個方程式(不含等號),則在求解之前自動將表達(dá)式置成等于0。它可以求解f(x)=0或y(x)=f(x)兩種形式的代數(shù)方程。如果鍵入命令:solve('a*x"2+b*x+c') %求二次方程的根ans=[1/2/a*(-b+(b"2-4*a*c)”(1/2))][1/2/a*(-b-(b”2-4*a*c)”(1/2))]代數(shù)方程組求解solve命令還可以同時求解若干代數(shù)方程,語句形式為:solve(sl,s2,…,sn)對缺省變量求解n個方程;solve(s1,s2, ,sn,'v1,v2…vn')對n個未知數(shù)v1,v2…vn求解n個方程。解單個微分方程用MATLAB符號工具箱的dsovle命令可以求解微分方程。由于用符號運(yùn)算解微分方程可以得到解析解,比起一般的數(shù)值解,更具有理論研究意義。在微分方程的表達(dá)式中,包含微分符號。Dsovle命令中用大寫字母D來表示求微分,D2、D3等等表示二次、三次重復(fù)求微分。解微分方程組命令dsolve也可同時處理若十個微分方程式。8線性代數(shù)和矩陣MATLAB用線性代數(shù)求解符號矩陣問題。(1)建立符號矩陣符號矩陣和向量是數(shù)組,其元素為符號表達(dá)式,用sym命令產(chǎn)生。建立的符號矩陣,用行向量表示。例如,s=sym('[cos(x),a-b;cd,2+x]')s=[cos(x),a-b][cd,2+x](2)矩陣代數(shù)運(yùn)算用symadd,symsub,symmul和symdiv命令,可以進(jìn)行符號矩陣的加法、減法、乘法、除法等代數(shù)運(yùn)算,用sympow可計算乘幕,用transpose可以給出符號矩陣的轉(zhuǎn)置。線性代數(shù)運(yùn)算在MATLAB5以上的版本中,符號矩陣運(yùn)算的命令形式與數(shù)值矩陣運(yùn)算命令相同,即同一個命令既可以用于數(shù)值矩陣,也可以用于符號矩陣。但得出的解的形式不同,對于數(shù)值矩陣,得出數(shù)值解;而對于符號矩陣,得出符號表達(dá)式。例如,inv(a)求矩陣的逆矩陣。det(a)可計算符號矩陣a的行列式。poly求解矩陣的特征多項式。[v,e]=eig(a)可以求得符號矩陣的特征根和特征向量,但要求矩陣元素是有理數(shù)。?[v,j]=jordan(A)可以得到矩陣的約當(dāng)(Jordan)標(biāo)準(zhǔn)型。得到的v是A的特征向量矩陣,j是特征值的對角矩陣。jacobian(f,x)可求解函數(shù)f(x)對x的雅可比(Jacobia)矩陣。其結(jié)果的第(i,j)項是df(i)/dx(j)。缺省自變量是t。當(dāng)f是標(biāo)量時,f的雅可比值是f的梯度。下面的幾個表綜合給出了符號工具箱的命令和應(yīng)用。表B-2 符號表達(dá)式的運(yùn)算

命令說明Numeric符號到數(shù)值的轉(zhuǎn)換Pretty顯示悅目的符號輸出Subs替代子表達(dá)式sym建立符號矩陣或表達(dá)式symadd符號加法symdiv符號除法symmul符號乘法symop符號運(yùn)算sympow符號表達(dá)式的幕運(yùn)算symrat有理近似symsub符號減法表B-3符號表達(dá)式的簡化命令說明colleet合并同類項xepand展開factor因式simple求解最簡形式simplify簡化symsum和級數(shù)表B-4符號多項式命令說明charpoly特征多項式horner嵌套多項式表示numden分子或分母的提取poly2sym多項式向量到符號的轉(zhuǎn)換sym2poly符號到多

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論