




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、第六章 MATLAB符號計算及工具箱電子科技大學 王 洪 MathWorks公司在1993年收購了主要針對符號計算的MAPLIE V 軟件的使用,以MAPLIE內核為符號計算的引擎,開發了符號數學工具箱( Symbolic Math Toolbox )。 MAPLIE占據符號軟件的主導地位,符號運算工具包通過調用Maple軟件實現符號計算的。 在符號計算中,參與運算的是符號變量而不是數值,使用字符串進行分析。數值運算中必須先對變量賦值,然后才能參與運算。符號運算無須事先對獨立變量賦值,運算結果以標準的符號形式表達,可以獲得任意精度的解。 MATLAB的符號數學工具箱包括基本符號數學工具箱和擴展
2、數學工具箱。 符號數學工具箱有三個通道與MAPLIE交換信息:基本符號數學工具箱、專門的M文件和函數計算器。Suppose you want to use a symbolic variable to represent the golden ratio The command rho = sym(1 + sqrt(5)/2)achieves this goal. Now you can perform various mathematical operations on rho. For example, f = rho2 - rho - 1returns f = (1/2+1/2*5(1/
3、2)2-3/2-1/2*5(1/2)Then simplify(f) returns 0251符號常量、符號變量、符號表符號常量、符號變量、符號表達式、符號矩陣的創建達式、符號矩陣的創建符號表達式的代數運算符號表達式的代數運算符號表達式的操作和轉換符號表達式的操作和轉換符號極限、符號微分、符號積符號極限、符號微分、符號積分、符號級數分、符號級數符號積分變換符號積分變換6.1 符號表達式的建立 1. 創建符號常量創建符號常量符號常量是不含變量的符號表達式。符號常量是不含變量的符號表達式。語法:語法:sym(常量常量) %創建符號常量創建符號常量 例如,創建符號常量,這種方式是絕對準確的符號數值表
4、示:例如,創建符號常量,這種方式是絕對準確的符號數值表示: a=sym(sin(2)a =sin(2) sym命令也可以把數值轉換成某種格式的符號常量命令也可以把數值轉換成某種格式的符號常量語法:語法: sym(常量常量,參數參數) %把常量按某種格式轉換為符號常量把常量按某種格式轉換為符號常量 參數參數作用作用d返回最接近的十進制數值返回最接近的十進制數值(默認位數為默認位數為32位位)f返回該符號值最接近的浮點表示返回該符號值最接近的浮點表示r返回該符號值最接近的有理數型返回該符號值最接近的有理數型(為系統默認方式為系統默認方式),可表,可表示為示為p/q、p*q、10q、pi/q、2q和
5、和sqrt(p)形式之一形式之一e返回最接近的帶有機器浮點誤差的有理值返回最接近的帶有機器浮點誤差的有理值2. 創建符號變量和符號表達式S=sym(arg) 從表達式arg創建一個sys對象S,如果arg是數值標量或矩陣,應當作數值對應的符號。x=sym (x) 建立符號變量x,其值為單引號內的內容。x=sym (x,real) 設定符號變量為實型變量。x=sym (x,unreal)取消符號變量的實型屬性,成為純粹的形式變量。sym(表達式) 例:例:f1=sym(a*x2+b*x+c) 3. 定義多個符號變量syms arg1 arg2 .syms arg1 arg2 . realsyms
6、 arg1 arg2 . unrealsyms arg1 arg2 . is short-hand notation for arg1 = sym(arg1);arg2 = sym(arg2); .syms arg1 arg2 . real is short-hand notation for arg1 = sym(arg1,real);arg2 = sym(arg2,real); .4. 創建符號矩陣 用sys命令:矩陣元素是不帶等號的符號表達式,矩陣元素長度可以不同。例:A=sym(4+x x2 x;x3 5*x-3 x*a)或先創建符號變量syms x aA=4+x x2 x;x3 5*
7、x-3 x*a結果:A = 4+x, x2, x x3, 5*x-3, x*a5. 數字矩陣轉化為符號矩陣數字矩陣轉化為符號矩陣 數值變量與符號變量不能進行運算,需要將數值數值變量與符號變量不能進行運算,需要將數值矩陣轉化為符號矩陣,數值矩陣中的小數按最近的矩陣轉化為符號矩陣,數值矩陣中的小數按最近的有理數轉化。有理數轉化。例:A=1/3,2.5;1/0.7,2/5A = 0.3333 2.5000 1.4286 0.4000sym(A) ans = 1/3, 5/2 10/7, 2/56. 將符號矩陣轉化為數值矩陣函數調用格式:double(A) numeric(A)A = 1/3, 5/2
8、10/7, 2/5numeric(A)ans = 0.3333 2.5000 1.4286 0.4000三種數據類型之間的轉換: MATLAB有三種數值型、字符型和符號型,優先級符號型最高,混合運算時將自動轉換為高級數據類型。轉換指令:1轉化為符號型:S=sym(f);2) 轉化為字符變量:S=int2str(x) 整數轉化為字符變量,x為有理數先四舍五入,x為虛數,只轉化實部。S=num2str(x) 普通數值類型轉化為字符變量。3轉化為數值型:X=double(s);X=numeric(s);X=srt2num(s): 字符型轉化為數值型,若s中含有非字符型變量,返回空矩陣。7 符號表達式
9、或矩陣的修改1)重新賦值。2)指令修改 用A1=subs(A, old, new)來修改。 用new置換符號表達式A中的old 得到新的符號表達式A1。例:例: syms a b; A = a, 2*b; 3*a, 0 A(2,2)=4*b A = a, 2*b 3*a, 4*b A2=subs(A1, b, c) A2 = a, 2*(c) 3*a, 4*(c) 新版MATLAB采用了重載技術,使得符號運算的算符和基本函數與數值運算中的算符和基本函數幾乎完全相同。所以符號運算操作指令都比較直觀、簡單。 例1:f= 2*x2+3*x-5; g= x2+x-7; syms x f=2*x2+3*
10、x-5; g= x2+x-7; h=f+g h = 3*x2+4*x-12 6.2 符號矩陣的基本運算例2:f=cos(x);g= sin(2*x); syms x f=cos(x);g=sin(2*x); f/g+f*g ans = cos(x)/sin(x)+cos(x)*sin(x) 符號運算中的運算符(2關系運算符 在符號對象的比較中,沒有“大于”、“大于等于”、“小于”、“小于等于的概念,只要“等于和“不等于的概念。 “”和“”(1) 基本運算符基本運算符運算符運算符“”,“”,“*”,“”,“/”,“”分別實現符分別實現符號矩陣的加、減、乘、左除、右除、求冪運算。號矩陣的加、減、乘
11、、左除、右除、求冪運算。運算符運算符“.*”,“./”,“.”,“.”分別實現符號數組的乘、分別實現符號數組的乘、除、求冪,即數組間元素與元素的運算。除、求冪,即數組間元素與元素的運算。運算符運算符“”,“.”分別實現符號矩陣的共軛轉置、非共軛轉置。分別實現符號矩陣的共軛轉置、非共軛轉置。(1) 三角函數和雙曲函數三角函數包括sin、cos、tan;雙曲函數包括sinh、cosh、tanh;三角反函數除了atan2函數僅能用于數值計算外,其余的asin、acos、atan函數在符號運算中與數值計算的使用方法相同。(2) 指數和對數函數指數函數sqrt、exp、expm的使用方法與數值計算的完全
12、相同;對數函數在符號計算中只有自然對數log(表示ln),而沒有數值計算中的log2和log10。(3) 復數函數復數的共軛conj、求實部real、求虛部imag和求模abs函數與數值計算中的使用方法相同。但沒有提供求相角的命令。(4) 矩陣代數命令常用矩陣代數命令有diag,triu,tril,inv,det,rank, poly,expm,eig等,用法幾乎與數值計算中的情況完全一樣。 函數運算6.3符號表達式的操作和轉換 小寫字母小寫字母i和和j不能作為自由變量。不能作為自由變量。 符號表達式中如果有多個字符變量,則按照以下順序選擇自符號表達式中如果有多個字符變量,則按照以下順序選擇自
13、由變量:首先選擇由變量:首先選擇x作為自由變量;如果沒有作為自由變量;如果沒有x,則選擇在字,則選擇在字母順序中最接近母順序中最接近x的字符變量;如果與的字符變量;如果與x相同距離,則在相同距離,則在x后面后面的優先。的優先。 大寫字母比所有的小寫字母都靠后。大寫字母比所有的小寫字母都靠后。 1.自由變量的確定自由變量的確定語法:語法:findsym(EXPR,n)%確定自由符號變量確定自由符號變量說明:說明:EXPR可以是符號表達式或符號矩陣;可以是符號表達式或符號矩陣;n為按順序得出為按順序得出符號變量的個數,當符號變量的個數,當n省略時,則不按順序得出省略時,則不按順序得出EXPR中所有
14、中所有的符號變量。的符號變量。2. findsym函數函數f=sym(a*x2+b*x+c) f =a*x2+b*x+c findsym(f) %得出所有的符號變量得出所有的符號變量 ans =a, b, c, x 3. 符號表達式的化簡符號表達式的化簡多項式形式的表達方式:多項式形式的表達方式:f(x)=x3+6x2+11x-6 因式形式的表達方式:因式形式的表達方式:f(x)=(x-1)(x-2)(x-3) 嵌套形式的表達方式:嵌套形式的表達方式:f(x)=x(x(x-6)+11)-6 (1) pretty函數函數給出排版形式的輸出結果給出排版形式的輸出結果(2) collect函數函數
15、對符號對符號 變量合并同類項,多個符號變量,可以指定按變量合并同類項,多個符號變量,可以指定按某個符號變量合并同類項。某個符號變量合并同類項。(3) expand函數函數將符號表達式展開成多項式形式。將符號表達式展開成多項式形式。(4) honer函數函數將符號表達式寫成嵌套形式。將符號表達式寫成嵌套形式。(5) factor函數函數將符號表達式寫成因式的形式。將符號表達式寫成因式的形式。(6) simplify函數函數利用各種恒等式對符號表達式化簡。利用各種恒等式對符號表達式化簡。(7) simple函數函數給出多種化簡形式。給出多種化簡形式。f=sym(x3-6*x2+11*x-6)%多項
16、式形式多項式形式 f =x3-6*x2+11*x-6 g= sym(x-1)*(x-2)*(x-3) %因式形式因式形式 g =(x-1)*(x-2)*(x-3) h= sym( x*(x*(x-6)+11)-6) %嵌套形式嵌套形式 h =x*(x*(x-6)+11)-6 給出多種化簡形式。給出多種化簡形式。例:演示上述函數功能。例:演示上述函數功能。4. 求反函數和復合函數求反函數和復合函數(1求反函數求反函數 finverse(f,v) %對指定自變量對指定自變量v的函數的函數f(v)求反函數求反函數說明:當說明:當v省略,則對默認的自由符號變量求反函數省略,則對默認的自由符號變量求反函
17、數 例:求例:求tex的反函數。的反函數。 f=sym(t*ex) %原函數原函數 f =t*ex g=finverse(f) %對默認自由變量求反函數對默認自由變量求反函數 g =log(x/t)/log(e) g=finverse(f,t) %對對t求反函數求反函數 g =t/(ex) (2求復合函數求復合函數 compose(f,g) %求求f(x)和和g(y)的復合函數的復合函數f(g(y) compose(f,g,z) %求求f(x)和和g(y)的復合函數的復合函數f(g(z)例例:計算計算tex與與ay2+by+c的復合函數。的復合函數。 f=sym(t*ex); %創建符號表達式
18、創建符號表達式 g=sym(a*y2+b*y+c); %創建符號表達式創建符號表達式 h1=compose(f,g) %計算計算f(g(x) h1 =t*e(a*y2+b*y+c) h2=compose(g,f) %計算計算g(f(x) h2 =a*t2*(ex)2+b*t*ex+c h3=compose(f,g,z) %計算計算f(g(z) h3 =t*e(a*z2+b*z+c) (3提取分子和分母提取分子和分母 如果符號表達式是一個有理分式(兩個多項式之比),可以利用numden函數來提取分子或分母,還可以進行通分。語法:n,d=numden(f)說明:n為分子;d為分母;f為有理分式。2
19、2113s2s3s2s和的分子和分母。例:用例:用numden函數來提取符號表達式函數來提取符號表達式和f1=sym(1/(s2+3*s+2) f2=sym(1/s2+3*s+2) n1,d1=numden(f1) n2,d2=numden(f2) 6.4符號極限、微積分和級數求和f(x)lim0 xf(x)limaxf(x)limaxf(x)limax表達式表達式函數格式函數格式說明說明limt(f)對對x求趨近于求趨近于0的極限的極限 limt(f,x,a)對對x求趨近于求趨近于a的極限,當左右極限的極限,當左右極限不相等時極限不存在。不相等時極限不存在。limt(f,x,a, left)
20、對對x求左趨近于求左趨近于a的極限的極限 limt(f,x,a, right)對對x求右趨近于求右趨近于a的極限的極限1. 符號極限符號極限例:分別求例:分別求1/x在在0處從兩邊趨近、從左邊趨近和從右邊趨近的處從兩邊趨近、從左邊趨近和從右邊趨近的三個極限值。三個極限值。 f=sym(1/x) f =1/x limit(f) %對對x求趨近于求趨近于0的極限的極限 ans =NaN limit(f,x,0) %對對x求趨近于求趨近于0的極限的極限 ans =NaN limit(f,x,0,left) %左趨近于左趨近于0 ans =-inf limit(f,x,0,right) %右趨近于右趨
21、近于0 ans =inf 2. 符號微分符號微分diff(f) %求求f對自由變量的一階微分對自由變量的一階微分diff(f,t)%求求f對符號變量對符號變量t的一階微分的一階微分diff(f,n)%求求f對自由變量的對自由變量的n階微分階微分diff(f,t,n) %求求f對符號變量對符號變量t的的n階微分階微分例:已知例:已知f(x)ax2+bx+c,求,求f(x)的微分。的微分。 f=sym(a*x2+b*x+c) f =a*x2+b*x+c diff(f) %對默認自由變量對默認自由變量x求一階微分求一階微分 ans =2*a*x+b diff(f,a) %對符號變量對符號變量a求一階
22、微分求一階微分 ans =x2 diff(f,x,2) %對符號變量對符號變量x求二階微分求二階微分 3. 符號積分符號積分int(f,t) %求符號變量求符號變量t的不定積分的不定積分int(f,t,a,b) %求符號變量求符號變量t的積分的積分int(f,t,m,n) %求符號變量求符號變量t的積分的積分cos(x)cos(x)例:求積分和。 。f=sym(cos(x);int(f) %求不定積分求不定積分 ans =sin(x) int(f,0,pi/3) %求定積分求定積分 ans =1/2*3(1/2) int(f,a,b) %求定積分求定積分 ans =sin(b)-sin(a)
23、int(int(f) %求多重積分求多重積分 ans =-cos(x) 3. 級數求和級數求和 symsum(s,x,a,b) %計算表達式s的級數和說明:x為自變量,x省略則默認為對自由變量求和;s為符號表達式;a,b為參數x的取值范圍。syms x ks1=symsum(1/k2,1,10) %計算級數的前計算級數的前10項和項和 s1 =1968329/1270080 s2=symsum(1/k2,1,inf) %計算級數和計算級數和 s2 =1/6*pi2 s3=symsum(xk,k,0,inf) %計算對計算對k為自變量的級數和為自變量的級數和 s3 =-1/(x-1) 22221111+23kkx xx例:求級數和1+的和。4. 泰勒級數展開泰勒級數展開 taylor (F,x,n) %求泰勒級數展開說明:x為自變量,F為符號表達式;對F進行泰勒級數展開至n項,參數n省略則默認展開前5項 syms x s1=tay
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 房地產買賣糾紛處理試題及答案
- 2025年房地產經紀專業考試試題及答案
- 房地產經紀專業2025年考題預測試題及答案
- 安全食品的挑選與保存技巧試題及答案
- 導游證資格考試多元文化理解試題及答案
- 食品安全與營養知識試題及答案
- 如何應對市場突發危機的試題及答案
- 2024演出經紀人資格證考點深度解析與試題及答案
- 陜師大復試筆試題及答案
- 西游記易考題及答案
- 美容行業:美容師簡歷
- 2025年甘肅白銀有色集團股份有限公司招聘筆試參考題庫含答案解析
- 2025年上半年安徽明光市事業單位招聘筆試易考易錯模擬試題(共500題)試卷后附參考答案
- 湖北省武漢市2024-2025學年高三2月調研考試英語試題
- 教科版三年級下冊科學全冊同步練習(一課一練)
- 2025年南京信息職業技術學院單招職業技能測試題庫參考答案
- 城市公園景觀設計教學課件
- 2025年阜陽職業技術學院單招職業適應性測試題庫及參考答案
- 【凱度】2025年生鮮消費新趨勢
- 《防波堤施工》課件
- 2025河南中煙安陽卷煙廠一線崗位招聘14人易考易錯模擬試題(共500題)試卷后附參考答案
評論
0/150
提交評論