第12講:符號表達式與符號運算_第1頁
第12講:符號表達式與符號運算_第2頁
第12講:符號表達式與符號運算_第3頁
第12講:符號表達式與符號運算_第4頁
第12講:符號表達式與符號運算_第5頁
已閱讀5頁,還剩24頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第第12講:符號表達式講:符號表達式 與符號運算與符號運算 2 我們知道數(shù)值計算是我們知道數(shù)值計算是 MATLAB 最強大的功能之最強大的功能之 一,但自從一,但自從 Mathworks 公司買下了公司買下了 Maple 的使的使 用權以后,用權以后,MATLAB將數(shù)值計算與符號計算熔為將數(shù)值計算與符號計算熔為 一體,成了全功能的計算軟件。一體,成了全功能的計算軟件。 所謂所謂符號計算符號計算是指在運算時,無須事先對變量賦是指在運算時,無須事先對變量賦 值,而將所得到結果以標準的符號形式表示。值,而將所得到結果以標準的符號形式表示。 MATLAB 以以 Maple 的內(nèi)核作為符號計算引,依的內(nèi)

2、核作為符號計算引,依 賴賴 Maple 已有的函數(shù)庫,開發(fā)了實現(xiàn)符號計算的已有的函數(shù)庫,開發(fā)了實現(xiàn)符號計算的 符號工具箱。符號工具箱。 3 n本講教學目標本講教學目標 了解符號對象了解符號對象 掌握符號和數(shù)值的不同掌握符號和數(shù)值的不同 掌握符號變量的定義方法掌握符號變量的定義方法 掌握符號多項式的生成和運算掌握符號多項式的生成和運算 掌握符號矩陣的生成和運算方法掌握符號矩陣的生成和運算方法 4 n12.1 符號對象符號對象 符號對象是符號的字符串表示,是符號工具箱符號對象是符號的字符串表示,是符號工具箱 中定義的又一種數(shù)據(jù)類型。在符號工具箱中符中定義的又一種數(shù)據(jù)類型。在符號工具箱中符 號對象用

3、于表示符號變量、表達式和方程。號對象用于表示符號變量、表達式和方程。 例例1:符號對象和普通數(shù)據(jù)對象之間的差別符號對象和普通數(shù)據(jù)對象之間的差別 sqrt(2) %在命令窗口中輸入在命令窗口中輸入 ans = 1.4142 x=sqrt(sym(2) %在命令窗口中輸入在命令窗口中輸入 x = 2(1/2) 5 n由上例可以看出,當采用符號運算時,并由上例可以看出,當采用符號運算時,并 不計算出表達式的結果,而是給出符號表不計算出表達式的結果,而是給出符號表 達式。達式。 n如果可以查看符號如果可以查看符號 x 所表示的值,可以在所表示的值,可以在 窗口中輸入:窗口中輸入: double(x)

4、ans = 1.4142 6 n例例2:符號運算和數(shù)值運算之間的差別。符號運算和數(shù)值運算之間的差別。 sym(2)/sym(5) ans = 2/5 2/5 + 1/3 ans = 0.7333 sym(2)/sym(5) + sym(1)/sym(3) ans = 11/15 double(sym(2)/sym(5) + sym(1)/sym(3) ans = 0.7333 當進行數(shù)值運算時,當進行數(shù)值運算時, 結果為結果為double型數(shù)據(jù);型數(shù)據(jù); 而進行符號運算時,而進行符號運算時, 結果為分數(shù)形式。結果為分數(shù)形式。 7 n12.2 定義符號變量定義符號變量 參與符號運算的對象可以是符

5、號變量、符號表參與符號運算的對象可以是符號變量、符號表 達式或符號矩陣。達式或符號矩陣。 符號變量要先定義,后引用。符號變量要先定義,后引用??梢杂每梢杂胹ym函數(shù)、函數(shù)、 syms函數(shù)將運算量定義為符號型數(shù)據(jù)。函數(shù)將運算量定義為符號型數(shù)據(jù)。 引用符號運算函數(shù)時,用戶可指定函數(shù)執(zhí)行過引用符號運算函數(shù)時,用戶可指定函數(shù)執(zhí)行過 程中的變量參數(shù);若用戶沒有指定變量參數(shù),程中的變量參數(shù);若用戶沒有指定變量參數(shù), 則使用則使用findsym函數(shù)默認的變量作為函數(shù)的變函數(shù)默認的變量作為函數(shù)的變 量參數(shù)。量參數(shù)。 8 n12.2.1 sym函數(shù)函數(shù) sym函數(shù)的主要功能是創(chuàng)建符號變量,以便進函數(shù)的主要功能是

6、創(chuàng)建符號變量,以便進 行符號運算,也可以用于創(chuàng)建符號表達式或符行符號運算,也可以用于創(chuàng)建符號表達式或符 號矩陣。號矩陣。 一般格式為:一般格式為: x = sym(x) 其目的是將其目的是將 x 創(chuàng)建為符號變量,以創(chuàng)建為符號變量,以 x 作為作為 輸出變量名。每次調用該函數(shù),可以定義一個輸出變量名。每次調用該函數(shù),可以定義一個 符號變量。符號變量。 9 n函數(shù)的其他調用格式:函數(shù)的其他調用格式: S = sym(A) 如果參數(shù)如果參數(shù) A 為字符串,則返回一個為字符串,則返回一個 符號變量或者一個符號數(shù)值;如果符號變量或者一個符號數(shù)值;如果 A 是一個數(shù)字或矩是一個數(shù)字或矩 陣,則返回該參數(shù)的

7、符號表示;陣,則返回該參數(shù)的符號表示; x = sym(x, real) 指定符號變量指定符號變量 x 為實數(shù);為實數(shù); x = sym(x, unreal) 指定指定 x 為一個純粹的變量,為一個純粹的變量, 而不具有其他屬性;而不具有其他屬性; S = sym(A, flag) 參數(shù)參數(shù) flag 可為可為 r,d,e 或或 f。該函數(shù)將數(shù)值標量或者矩陣轉化為符號形式,第。該函數(shù)將數(shù)值標量或者矩陣轉化為符號形式,第 二個參數(shù)用于指定浮點數(shù)轉化的方法,該函數(shù)各個取二個參數(shù)用于指定浮點數(shù)轉化的方法,該函數(shù)各個取 值的意義如表所示。值的意義如表所示。 10 n例例3:用符號運算解方程組:用符號運

8、算解方程組: n其中其中 a, b, x, y 均為符號運算量。均為符號運算量。 說明:說明:在符號運算前,應先將在符號運算前,應先將 a, b, x, y 定義定義 為符號運算量。為符號運算量。 1 5 byax byax 11 n a = sym(a); %定義定義a為符號運算量為符號運算量 n b = sym(b); n x = sym(x); n y = sym(y); % 以以a,b為符號常數(shù),為符號常數(shù),x,y為符號變量求解方程組為符號變量求解方程組 n x,y = solve(a*x-b*y-1,a*x+b*y-5,x,y) x = 3/a y = 2/b 12 n例例4:已知一

9、復數(shù)表達式已知一復數(shù)表達式 z=x+i*y,試求其,試求其 共軛復數(shù),并求該表達式與其共軛復數(shù)乘共軛復數(shù),并求該表達式與其共軛復數(shù)乘 積的多項式。積的多項式。 n說明:說明:為了使乘積表達式為了使乘積表達式x2+y2非負,非負, 這里把變量這里把變量x和和y定義為實數(shù)。定義為實數(shù)。 13 n x=sym(x,real); n y=sym(y,real); n z=x+i*y; % 定義復數(shù)表達式定義復數(shù)表達式 n conj(z); % 求共軛復數(shù)求共軛復數(shù) %求表達式與其共軛復數(shù)乘積的多項式求表達式與其共軛復數(shù)乘積的多項式 n expand(z*conj(z) ans = x2+y2 14 n

10、12.2.2 syms函數(shù)函數(shù) syms函數(shù)的功能與函數(shù)的功能與sym函數(shù)類似,可以在一函數(shù)類似,可以在一 個語句中同時定義多個符號變量。個語句中同時定義多個符號變量。 其一般格式為:其一般格式為: syms arg1 arg2 argN 用于將用于將arg1, arg2,argN等符號創(chuàng)建為符號等符號創(chuàng)建為符號 型數(shù)據(jù)。型數(shù)據(jù)。 15 n12.2.3 默認符號變量默認符號變量 在數(shù)學表達式中,一般習慣于使用排在字母表在數(shù)學表達式中,一般習慣于使用排在字母表 中前面的字母作為變量的系數(shù),而用排在后面中前面的字母作為變量的系數(shù),而用排在后面 的字母表示變量。的字母表示變量。 例如:例如: f =

11、 ax2+bx+c g = sin(at+b) 根據(jù)數(shù)學式中表示自變量的習慣,默認根據(jù)數(shù)學式中表示自變量的習慣,默認a, b, c 為符號常數(shù),為符號常數(shù),x, t為看作自變量。為看作自變量。 16 n在進行導數(shù)運算時,由于沒有指定符號變量,則系統(tǒng)在進行導數(shù)運算時,由于沒有指定符號變量,則系統(tǒng) 采用數(shù)學習慣來確定表達式中的自變量,默認采用數(shù)學習慣來確定表達式中的自變量,默認a, b, c 為符號常數(shù),為符號常數(shù),x, t 為符號變量,即:為符號變量,即: 對函數(shù)對函數(shù) f 求導為:求導為:df/dx; 對函數(shù)對函數(shù) g 求導為:求導為:dg/dt n可以用可以用 findsym 函數(shù)查詢默認的

12、變量,來了解函數(shù)函數(shù)查詢默認的變量,來了解函數(shù) 引用過程中使用的符號變量個數(shù)及名稱。引用過程中使用的符號變量個數(shù)及名稱。 n其格式為:其格式為: findsym(f, n) n說明:說明:f 為用戶定義的符號函數(shù),為用戶定義的符號函數(shù),n 表示查詢變量的表示查詢變量的 個數(shù),省略時表示查詢?nèi)磕J變量。個數(shù),省略時表示查詢?nèi)磕J變量。 17 n例例5:查詢下面符號函數(shù)中的系統(tǒng)默認變量。查詢下面符號函數(shù)中的系統(tǒng)默認變量。 f = xn 和和 g = sin(at+b) n syms a b n t x % 定義符號變量定義符號變量 n f=xn; % 給定符號函數(shù)給定符號函數(shù) n g=sin(

13、a*t+b); n findsym(f,1) % 查詢查詢1個系統(tǒng)默認變量個系統(tǒng)默認變量 ans = x % 表示表示 f 函數(shù)中查詢的函數(shù)中查詢的1個系統(tǒng)默認變量為個系統(tǒng)默認變量為x 18 n12.3 符號表達式符號表達式 符號表達式是由符號變量、函數(shù)、算術運算符符號表達式是由符號變量、函數(shù)、算術運算符 等組成的式子。符號表達式的書寫格式與數(shù)值等組成的式子。符號表達式的書寫格式與數(shù)值 表達式相同。表達式相同。 例如,例如,數(shù)學表達式:數(shù)學表達式: 其符號表達式為:其符號表達式為: 1+sqrt(5*x)/2。 注意:在定義表達式前應先將表達式中的字符注意:在定義表達式前應先將表達式中的字符

14、x 定義為符號變量。定義為符號變量。 2 51x 19 n12.3.1 符號表達式運算符號表達式運算 1提取分子和分母運算提取分子和分母運算 如果符號表達式是一個有理分式或可以展開為如果符號表達式是一個有理分式或可以展開為 有理分式,可用有理分式,可用numden函數(shù)來提取符號表達函數(shù)來提取符號表達 式中的分子或分母。式中的分子或分母。 其一般格式為:其一般格式為: n,d=numden(s) 該函數(shù)提取符號表達式該函數(shù)提取符號表達式 s 的分子和分母,分別的分子和分母,分別 將它們存放在將它們存放在 n 與與 d 中。中。 20 n2符號表達式的四則運算符號表達式的四則運算 符號表達式的加、

15、減、乘、除運算可分別由函符號表達式的加、減、乘、除運算可分別由函 數(shù)數(shù)symadd、symsub、symmul和和symdiv來來 實現(xiàn),冪運算可以由實現(xiàn),冪運算可以由sympow來實現(xiàn)。來實現(xiàn)。 n3符號表達式的替換求值符號表達式的替換求值 sub(s, new) 將符號表達式中自由符號變將符號表達式中自由符號變 量用量用 new 替代替代 sub(s, old, new) 將符號變量將符號變量 old 用用 new 替代。替代。 21 n4符號表達式的因式分解與展開符號表達式的因式分解與展開 函數(shù)的調用格式為:函數(shù)的調用格式為: nfactor(s) 對符號表達式對符號表達式s分解因式分解

16、因式 nexpand(s) 對符號表達式對符號表達式s進行展開進行展開 nhorner(s) 對符號多項式對符號多項式s用嵌套形式表示用嵌套形式表示 n5符號表達式的化簡符號表達式的化簡 函數(shù)的調用格式為:函數(shù)的調用格式為: nsimplify(s) 應用函數(shù)規(guī)則對應用函數(shù)規(guī)則對s進行化簡進行化簡 nsimple(s) 調用調用MATLAB的其他函數(shù)對表達式的其他函數(shù)對表達式 進行綜合化簡,并顯示化簡過程進行綜合化簡,并顯示化簡過程 22 n例例6:將表達式將表達式(x9-1)分解為多個因式。分解為多個因式。 syms x factor(x9-1) ans = (x-1)*(x2+x+1)*(

17、x6+x3+1) n例例7:符號表達式的簡化。符號表達式的簡化。 syms x fun = (1/x+7/x2+12/x+8)(1/3) fun = (13/x+7/x2+8)(1/3) sfy=simplify(fun) sfy = (13*x+7+8*x2)/x2)(1/3) 23 n12.3.2 符號表達式與數(shù)值表達式的轉化符號表達式與數(shù)值表達式的轉化 數(shù)值表達式數(shù)值表達式符號表達式符號表達式 函數(shù)函數(shù)sym。 符號表達式符號表達式數(shù)值表達式數(shù)值表達式 函數(shù)函數(shù)eval、 “numeric”、vpa 和和 subs。 neval(A) 符號表達式符號表達式數(shù)值表達式數(shù)值表達式 nR =

18、vpa(A) 對符號表達式對符號表達式A求給定精度的值求給定精度的值 nR = subs(S, old, new) 將符號表達式將符號表達式S中的某中的某 些些“老變量老變量”替換成替換成“新變量或數(shù)值數(shù)組。新變量或數(shù)值數(shù)組。 nnumeric 代表具體的數(shù)值類型,如代表具體的數(shù)值類型,如float等等 24 n例例8:求以下符號的有效位數(shù)值求以下符號的有效位數(shù)值 digits(25) % 設置設置vpa輸出的有效數(shù)輸出的有效數(shù) q = vpa(sin(sym(pi)/6) w = vpa(1+sqrt(5)/2,4) % 有效位為有效位為4 q = 0.5000000000000000000

19、000000 w = 1.618 n例例9:替換替換“老老”符號。符號。 subs(a+b,a,4) ans = 4+b subs(cos(a)+sin(b),a,b,sym(alpha),2) ans = cos(alpha)+sin(2) 25 n12.4 符號矩陣符號矩陣 12.4.1 符號矩陣的創(chuàng)建符號矩陣的創(chuàng)建 n數(shù)值矩陣數(shù)值矩陣A=1,2;3,4 n A=a,b;c,d 不識別不識別 1. 用函數(shù)用函數(shù)sym創(chuàng)建符號矩陣創(chuàng)建符號矩陣 n命令格式:命令格式: A=sym( ) 例例10: A = sym(a , 2*b ; 3*a , 0) A = a, 2*b 3*a, 0 26 n2. 用字符串直接創(chuàng)建矩陣用字符串直接創(chuàng)建矩陣 模仿模仿mat

溫馨提示

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

評論

0/150

提交評論