符號表達式是代表數(shù)字、函數(shù)、算子和變量的MATLAB字符串,或_第1頁
符號表達式是代表數(shù)字、函數(shù)、算子和變量的MATLAB字符串,或_第2頁
符號表達式是代表數(shù)字、函數(shù)、算子和變量的MATLAB字符串,或_第3頁
符號表達式是代表數(shù)字、函數(shù)、算子和變量的MATLAB字符串,或_第4頁
全文預(yù)覽已結(jié)束

下載本文檔

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

文檔簡介

1、符號表達式是代表數(shù)字、函數(shù)、算子和變量的MATLAB字符串,或字符串數(shù)組。不要求變量有預(yù)先確定的值,符號方程式是含有等號的符號表達式。符號算術(shù)是使用已知的規(guī)則和給定符號恒等式求解這些符號方程的實踐,它與代數(shù)和微積分所學(xué)到的求解方法完全一樣。符號矩陣是數(shù)組,其元素是符號表達式。MATLAB在內(nèi)部把符號表達式表示成字符串,以與數(shù)字變量或運算相區(qū)別;否則,這些符號表達式幾乎完全象基本的MATLAB命令。表22.1列有幾則符號表達式例子以及MATLAB等效表達式。表22.1符號表達式MATLAB表達式 ' 1/(2*xn) ' y= ' 1/sqrt(2*x) ' &#

2、39; cos(x2)-sin(2*x) ' M=sym( ' a,b;c,d ' )f=int( ' x3/sqrt(1-x) ' , ' a ' , ' b ' )MATLAB符號函數(shù)可讓用戶用多種方法來操作這些表達式,比如,>> diff( ' cos(x) ' ) % differentiate cos(x) with respect to xans=-sin(x)>> M=sym( ' a,b;c,d ' ) % create a symbolic matr

3、ix MM=a,bc,d>> determ(M) % find the determinant of the symbolic matrix Mans=a*d-b*c請注意,上面的第一個例子的符號表達式是用單引號以隱含方式定義的。它告訴MATLAB ' cos(x) ' 是一個字符串并說明diff( ' cosx ' )是一個符號表達式而不是數(shù)字表達式;然而在第二個例子中,用函數(shù)sym顯式地告訴MATLAB M=sym( ' a,b;c,d ' )是一符號表達式。在MATLAB可以自己確定變量類型的場合下,通常不要求顯式函數(shù)sym。正

4、如在第八章所闡述,MATLAB中函數(shù)function argument形式是與function( ' argument ' )等價的。其中,function是一個函數(shù),argument是一字符串。例如,MATLAB可以構(gòu)造diff cos(x)和diff( ' cos(x) ' )兩者都意味diff (sym ' cos(x) ' )。但第一種形式顯然更便于輸入。然而,很多時候sym是必要的。在上述的第二個例子中,>> M=a,b;c,d % M is a numeric matrix using value of a through

5、 d?Uundefine function or variable a.>> M= ' a,b;c,d ' % M is a character string, but not a symbolic matrixM=a,b;c,d>> M=sym( ' a,b;c,d ' ) % M is a symbolic matrixM=a,bc,dM以三種方式定義: 數(shù)字型(如果a、b、c、d已預(yù)先確定)、字符串型或符號矩陣型。許多符號函數(shù)非常巧妙能夠自動將字符轉(zhuǎn)變?yōu)榉柋磉_式。但在某些情況下,尤其是建立符號數(shù)組時,必須用函數(shù)sym,特別地將字符

6、串變?yōu)榉柋磉_式。隱含形式,例如diff cos(x),對于那些不需要參考先前結(jié)果的簡單任務(wù),最有用。但是最簡單形式(無引號)要求一個參量,它是一個單字符的字符串、不包含插入的空格。>> diff x2+3*x+5 % the argument is equivalent to ' x2+3*x+5 ' ans=2*x+3>> diff x2 + 3*x + 5 % spaces break the argument into separate strings?Error using=>diffToo manyinput arguments無變量的

7、符號表達式稱作符號常量。符號常量常常與整數(shù)很難區(qū)別,例如>> f=symop( ' (3*4-2)/5+1 ' ) % reduce a symbolic constant to its simplest formf = 3>> isstr(f) % is f a string? (1=yes, 0=no)ans=1 在這個例子中,f代表符號常數(shù) ' 3 ' ;而不是數(shù)字3。正如第六章所闡述的,MATLAB是以字符ASCII碼形式來存儲字符串的。所以,如果對字符串進行數(shù)字運算,則在運算中,采用各字符串的ASCII碼值。因為數(shù)字51是字符

8、' 3 ' 的ASCII表示,所以f加1在數(shù)值上不能得到期望的結(jié)果>> f+1ans=52符號變量當字符表達式中含有多于一個的變量時,只有一個變量是獨立變量。如果不告訴MATLAB哪一個變量是獨立變量,MATLAB將基于以下規(guī)則選擇一個:在符號表達式中缺省的獨立變量是唯一的,除去i和j的小寫字母,不是單詞的一部分。如果沒有這種字母,就選擇x作為獨立變量。如字符不是唯一的,就選擇在字母順序中最接近x的字母。如果有相連的字母,就選擇在字母表中較后的那一個。缺省的獨立變量,有時稱作自由變量,在表達式 ' 1/(5+cos(x) ' 中是 ' x &

9、#39; ;在 ' 3*y+z ' 中是 ' y ' ;在 ' a+sin(t) ' 是 ' t ' 。在表式 ' sin(pi/4)-cos(3/5) ' 中自由符號變量是 ' x ' ,因為此式是一個符號常數(shù)無符號變量。可利用函數(shù)symvar詢問MATLAB在符號表達式中哪一個變量它認為是獨立變量。>> symvar( ' a*x+y*) % find the default symbolic variableans=x>> symvar( ' a*t+s

10、/(u+3) ' ) % u is the closest to ' x ' ans=u>> symvar( ' sin(omega) ' ) % ' omega ' is not a singlee character。ans=x>> symvar( ' 3*i+4*j ' ) % i and j are equel to sqrt(-1)ans=x>> symvar( ' y+3*s ' , ' t ' ) % find the variable cl

11、osest to t rather than xans=s如果利用規(guī)則symvar不能找到一個缺省獨立變量,它便假定無獨立變量并返回x。這一結(jié)論對含有由多個字母組成的變量,如:alpha或s2的表達式,或不含變量的符號常數(shù)均成立。如果需要,絕大多數(shù)命令都使用用戶選項以指定獨立變量。>> diff( ' xn ' ) % differentiate with respect to the default variable ' x ' ans=xn*n/x>> diff( ' xn ' , ' n ' ) % differentiate xn with respect to ' n ' ans=xn*log(x)>> diff( ' s

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論