數(shù)學建模符號計算_第1頁
數(shù)學建模符號計算_第2頁
數(shù)學建模符號計算_第3頁
數(shù)學建模符號計算_第4頁
數(shù)學建模符號計算_第5頁
已閱讀5頁,還剩74頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、通知通知明天(明天(4.15)上午的培訓課因有部)上午的培訓課因有部分同學要參加考試,所以暫停一次。分同學要參加考試,所以暫停一次。下周六下午正常。望相互轉告!下周六下午正常。望相互轉告!符號計算符號計算本節(jié)目標 一是講述一是講述MATLAB符號計算基本知識,包符號計算基本知識,包括符號對象的創(chuàng)建、符號數(shù)字、符號表達括符號對象的創(chuàng)建、符號數(shù)字、符號表達式的操作;式的操作; 二是介紹符號微積分的計算;二是介紹符號微積分的計算; 三是介紹符號矩陣分析和代數(shù)方程(組)三是介紹符號矩陣分析和代數(shù)方程(組)的符號解法;的符號解法; 四是介紹符號計算結果的可視化。四是介紹符號計算結果的可視化。本節(jié)重點 熟

2、悉符號對象的創(chuàng)建、符號數(shù)字、符號熟悉符號對象的創(chuàng)建、符號數(shù)字、符號表達式的操作。表達式的操作。 熟悉符號微積分的基本計算函數(shù)指令。熟悉符號微積分的基本計算函數(shù)指令。 熟悉代數(shù)方程(組)的符號解法。熟悉代數(shù)方程(組)的符號解法。 熟悉符號計算結果可視化的的基本指令。熟悉符號計算結果可視化的的基本指令。 了解符號計算幫助系統(tǒng)及其幫助指令。了解符號計算幫助系統(tǒng)及其幫助指令。 本節(jié)內容1符號對象和符號表達式符號對象和符號表達式2 符號數(shù)字及表達式的操作符號數(shù)字及表達式的操作 3 符號微積分符號微積分4 微分方程的符號解法微分方程的符號解法5 符號變換和符號卷積符號變換和符號卷積 6 符號矩陣分析和代數(shù)

3、方程解符號矩陣分析和代數(shù)方程解 7 代數(shù)狀態(tài)方程求符號傳遞函數(shù)代數(shù)狀態(tài)方程求符號傳遞函數(shù) 8 符號計算結果的可視化符號計算結果的可視化 9 符號計算資源深入利用符號計算資源深入利用Matlab的符號計算功能的符號計算功能umatlab自產(chǎn)生起就在數(shù)值計算上功能卓著自產(chǎn)生起就在數(shù)值計算上功能卓著,深受各專深受各專業(yè)計算人員的歡迎業(yè)計算人員的歡迎.但由于在數(shù)學但由于在數(shù)學,物理等各種科研和工物理等各種科研和工程應用中經(jīng)常會遇到符號運算的問題程應用中經(jīng)常會遇到符號運算的問題. 為此為此, 公司于公司于1993年購買了年購買了 Maple 軟件的使用權軟件的使用權,并在此基礎上并在此基礎上,開開發(fā)了符

4、號計算工具箱發(fā)了符號計算工具箱 (Symbolic Math Toolbox)符號運算與數(shù)值運算的區(qū)別:符號運算與數(shù)值運算的區(qū)別:符號運算中,解算數(shù)學表達式、方程時,不是在離散符號運算中,解算數(shù)學表達式、方程時,不是在離散化的數(shù)值點上進行,而是憑借一系列恒等式和數(shù)學定化的數(shù)值點上進行,而是憑借一系列恒等式和數(shù)學定理,通過推理和演繹,獲得解析結果。這種計算建立理,通過推理和演繹,獲得解析結果。這種計算建立在數(shù)值完全準確表達和推演嚴格解析的基礎上,所得在數(shù)值完全準確表達和推演嚴格解析的基礎上,所得結果是完全準確的。結果是完全準確的。符號運算符號運算-代數(shù)運算,公式推導代數(shù)運算,公式推導數(shù)值運算數(shù)值

5、運算-算術運算算術運算代值代值2.1 符號對象和符號表達式符號對象和符號表達式在在matlab中中,數(shù)值和數(shù)值變量用于數(shù)值的存儲和各種數(shù)值計算數(shù)值和數(shù)值變量用于數(shù)值的存儲和各種數(shù)值計算.而而符號常量符號常量,符號變量符號變量,符號函數(shù)符號函數(shù),符號操作等則是用來形成符號操作等則是用來形成符號符號表達式表達式,嚴格按照代數(shù)嚴格按照代數(shù),微積分等課程中的規(guī)則微積分等課程中的規(guī)則,公式進行運算公式進行運算,并并盡可能給出盡可能給出解析表達式解析表達式.2.1.1 符號對象的創(chuàng)建和衍生符號對象的創(chuàng)建和衍生 數(shù)值計算數(shù)值計算-變量先賦值變量先賦值,再使用再使用. 符號計算符號計算-先定義基本的符號對象先

6、定義基本的符號對象(可以是可以是常量常量,變變 量量,表達式表達式),然后用這些基本符號對象去構成新的表達然后用這些基本符號對象去構成新的表達式式,再進行所需的符號運算再進行所需的符號運算2.1.1 符號對象的創(chuàng)建和衍生符號對象的創(chuàng)建和衍生1. 生成符號對象的基本規(guī)則生成符號對象的基本規(guī)則 任何基本符號對象(數(shù)字、參數(shù)、變量、表達式)任何基本符號對象(數(shù)字、參數(shù)、變量、表達式)都必須借助專門的符號函數(shù)指令都必須借助專門的符號函數(shù)指令sym或或syms定義。定義。 任何包含符號對象的表達式或方程,將繼承符號任何包含符號對象的表達式或方程,將繼承符號對象的屬性。即任何包含符號對象的表達式、方程對象

7、的屬性。即任何包含符號對象的表達式、方程也一定是符號對象。也一定是符號對象。2 符號數(shù)字的定義符號數(shù)字的定義格式:格式:sc=sym(num) % sc為值為為值為num的符號數(shù)字的符號數(shù)字注意:注意: i) 單引號必須在英文狀態(tài)下輸入,構成字符串單引號必須在英文狀態(tài)下輸入,構成字符串 ii) num為一個具體的數(shù)字為一個具體的數(shù)字如:如: sc=sym(2/3) sa=sym(pi+sqrt(5)sc=2/3sb =pi + 5(1/2)2 符號數(shù)字的定義符號數(shù)字的定義【例【例2.1-1】符號(類)數(shù)字與數(shù)值(類)數(shù)字之間的差異?!糠枺悾?shù)字與數(shù)值(類)數(shù)字之間的差異。a=pi+sqrt

8、(5)sa=sym(pi+sqrt(5)Ca=class(a)Csa=class(sa)vpa(sa-a) a = 5.3777sa = pi + 5(1/2)Ca = doubleCsa = symans =0.00000000000000001382237584108520004859354256418 本例表現(xiàn)符號數(shù)字總是被準確記錄和運算,而數(shù)值數(shù)字并不本例表現(xiàn)符號數(shù)字總是被準確記錄和運算,而數(shù)值數(shù)字并不總能保證被準確存儲,運算時會引進截斷誤差。總能保證被準確存儲,運算時會引進截斷誤差。3. 基本符號變量:基本符號變量:定義格式:定義格式:i) syms para para=sym(pa

9、ra) syms a; a=sym(a)ii) syms para flag para=sym(para, flag) syms a positive; a=sym(a, positive)flag為參數(shù)屬性:為參數(shù)屬性:positive-參數(shù)取正實數(shù)參數(shù)取正實數(shù)real-參數(shù)為實數(shù)參數(shù)為實數(shù)unreal-參數(shù)為限定的復數(shù)參數(shù)為限定的復數(shù)iii) syms a b c syms a b c flag無逗號無逗號符號參數(shù)符號參數(shù)(表達式中的參數(shù))(表達式中的參數(shù)), “待解符號變量待解符號變量”或或“自由符號變量自由符號變量” (表達式中的自變量(表達式中的自變量x,默認默認為為x)25sin(

10、3)30uzxzwa4. 自由符號變量自由符號變量symvar(expression) 列出表達式中所有基本符號變量列出表達式中所有基本符號變量symvar(expression,n) 列出表達式中認定列出表達式中認定n個自由符號變量個自由符號變量expression是符號表達式或符號表達式矩陣,是符號表達式或符號表達式矩陣,x是是首選自由符號變量,認定優(yōu)先次序為首選自由符號變量,認定優(yōu)先次序為x, y, w, z, v等等u解題結果是解題結果是“用符號參數(shù)構成的表達式表述自由符號用符號參數(shù)構成的表達式表述自由符號變量變量”。解題時自由符號變量可。解題時自由符號變量可“人為指定人為指定”,也可

11、也可“默認地自動認定默認地自動認定”:與小寫字母與小寫字母 x 的的ASII碼距離最碼距離最小的變量。小的變量。4. 自由符號變量自由符號變量syms a b t u v x yA=a+b*x, sin(t)+u; x*exp(-t), log(y)+vsymvar(A,1) A = a + b*x, u + sin(t) x/exp(t), v + log(y)ans = x u【例【例2.1-4】symvar確定自由變量是對整個矩陣進行的。確定自由變量是對整個矩陣進行的。 2.1.2 符號計算中的算符符號計算中的算符u由于新版由于新版matlab采用了重載采用了重載(Overload)技術

12、技術, 使得使得用來構成符號計算表達式的算符和基本函數(shù)用來構成符號計算表達式的算符和基本函數(shù),無論在形無論在形式式,名稱名稱,還是使用方法上還是使用方法上,都與數(shù)值計算中的算符和基都與數(shù)值計算中的算符和基本函數(shù)幾乎完全相同本函數(shù)幾乎完全相同,這給編程帶來極大的方便這給編程帶來極大的方便.(1) 基本運算符基本運算符算符算符 ”+”, ”-”, ”*”, ”, “/”,“” 分別構成矩陣的加分別構成矩陣的加, 減減, 乘乘,左除左除,右除右除,求冪運算求冪運算. 算符算符 ”.*”, “./”, “.”, “.” 分別實現(xiàn)元素對元素的數(shù)組乘分別實現(xiàn)元素對元素的數(shù)組乘,除除,求冪運算求冪運算.算符

13、算符” ”, “ . ” 分別實現(xiàn)矩陣的共軛轉置分別實現(xiàn)矩陣的共軛轉置,非共軛轉置非共軛轉置2.1.2 符號計算中的算符符號計算中的算符(2) 關系運算符關系運算符在符號對象的比較中在符號對象的比較中,沒有大于沒有大于,大于等于大于等于,小于小于,小于等小于等于的概念于的概念,而而只有是否等于的概念只有是否等于的概念。 ”=“ “=“分別分別用來對算符兩邊的對象進行相等和不等的比較用來對算符兩邊的對象進行相等和不等的比較,返回返回為邏輯量。事實為真時,比較結果為為邏輯量。事實為真時,比較結果為1,事實為假時,事實為假時,結果為結果為0.2.1.3 符號計算中的函數(shù)指令符號計算中的函數(shù)指令符號計

14、算中的函數(shù)分成三個層次:符號計算中的函數(shù)分成三個層次: 與數(shù)值類函數(shù)和指令對應的同名符號類函數(shù)和指令。與數(shù)值類函數(shù)和指令對應的同名符號類函數(shù)和指令。 約約50個經(jīng)典特殊函數(shù)(誤差函數(shù)個經(jīng)典特殊函數(shù)(誤差函數(shù)erf、貝塞爾函數(shù)、貝塞爾函數(shù)besselj、橢圓積分、橢圓積分ElliptiK等),借助等),借助mfun調用,調用,用用mfunlist可列出。可列出。1.數(shù)量較大的數(shù)量較大的MuPAD庫函數(shù),借助庫函數(shù),借助evalin和和feval調調用。用。(2) 指數(shù)指數(shù),對數(shù)函數(shù)對數(shù)函數(shù) sqrt, exp, expm在兩者中用法相同符號計算中只在兩者中用法相同符號計算中只有自然對數(shù)有自然對數(shù)

15、log,而沒有數(shù)值計算中的,而沒有數(shù)值計算中的log2, log10(3) 復數(shù)函數(shù)復數(shù)函數(shù) conj, imag, real, abs在兩者中用法相同在兩者中用法相同.但在符號但在符號計算中沒有求相角的指令計算中沒有求相角的指令angle.(1) 三角函數(shù)三角函數(shù),雙曲線函數(shù)以及他們的反函數(shù)雙曲線函數(shù)以及他們的反函數(shù)除除atan只能用于數(shù)值計算外只能用于數(shù)值計算外,另外的在兩種運算中使另外的在兩種運算中使用方法相同用方法相同.與數(shù)值類函數(shù)和指令對應的同名符號類函數(shù)和指令與數(shù)值類函數(shù)和指令對應的同名符號類函數(shù)和指令(4) 矩陣代數(shù)指令矩陣代數(shù)指令在符號計算中在符號計算中, matlab提供的常

16、用矩陣代數(shù)指令有:提供的常用矩陣代數(shù)指令有:diag, tril, inv, det, rank, eig, svd( Singular value decomposition奇異值分解)等奇異值分解)等與數(shù)值類函數(shù)和指令對應的同名符號類函數(shù)和指令與數(shù)值類函數(shù)和指令對應的同名符號類函數(shù)和指令(5) 方程求解指令方程求解指令solve,與數(shù)值類不同。,與數(shù)值類不同。(6) 微積分如微積分如diff,int,與數(shù)值類不完全相同。,與數(shù)值類不完全相同。(7) 積分變換和反變換函數(shù)如積分變換和反變換函數(shù)如laplace, ilaplace,數(shù),數(shù)值類只有值類只有Fourier變換。變換。(8) 繪圖函

17、數(shù)如繪圖函數(shù)如ezplot,ezsurf,數(shù)值類繪圖指令更豐富。,數(shù)值類繪圖指令更豐富。u數(shù)值計算對象數(shù)值計算對象,符號計算對象符號計算對象,字符串是字符串是MATALB中最常用中最常用的數(shù)據(jù)對象的數(shù)據(jù)對象.他們遵循各自不同的運算法則他們遵循各自不同的運算法則,但有時在外形但有時在外形上卻十分相似上卻十分相似.MATLAB提供了一些識別不同數(shù)據(jù)對象的提供了一些識別不同數(shù)據(jù)對象的指令指令,常用的有常用的有class, isa, whos 例例2.1.3-1 數(shù)據(jù)對象及其識別指令的使用數(shù)據(jù)對象及其識別指令的使用(1) 生成三種不同類型的矩陣,給出不同的顯示形式生成三種不同類型的矩陣,給出不同的顯示

18、形式clear, a=1;b=2;c=3;d=4 % 產(chǎn)生四個數(shù)值變量產(chǎn)生四個數(shù)值變量Mn=a,b; c,d % 利用已賦值變量構成數(shù)值矩陣利用已賦值變量構成數(shù)值矩陣Mc=a,b; c,d % 字符串中的字符串中的a,b,c,d與前面輸入的數(shù)值變量無關與前面輸入的數(shù)值變量無關Ms=sym(Mc) % 符號變量,與前面的各變量無關符號變量,與前面的各變量無關2.1.4 符號對象的識別符號對象的識別Mn = 1 2 3 4Mc =a,b;c,dMs = a, b c, dSizeMn=size(Mn), SizeMc=size(Mc), SizeMs=size(Ms)SizeMn = 2 2Siz

19、eMc = 1 9SizeMs = 2 2(3) 用用class獲得每種矩陣的類別獲得每種矩陣的類別CMn=class(Mn), CMc=class(Mc), CMs=class(Ms)CMn = doubleCMc = charCMs = sym(4) 用用isa判斷每種矩陣的類別判斷每種矩陣的類別isa(Mn,double), isa(Mc,char), isa(Ms,sym)ans = 1ans = 1ans = 1Mn = 1 2 3 4 Mc = a,b;c,dMs = a, b c, d(2) 三個矩陣的大小不同三個矩陣的大小不同(5) 利用利用whos觀察內存變量的類別和其他屬性

20、觀察內存變量的類別和其他屬性 Name Size Bytes Class Mc 1x9 18 char array Mn 2x2 32 double array Ms 2x2 312 sym objecta=0:1:6; theta=sym(30*pi/180*a)alfa=sym(30*pi/180)*atheta =30*pi/180*aalfa = 0, 1/6*pi, 1/3*pi, 1/2*pi, 2/3*pi, 5/6*pi, pia與數(shù)組與數(shù)組a無關無關whos P26 Name Size Bytes Class ans 1x1 8 double t 1x201 1608 dou

21、ble y 1x201 1608 double 2.1.5 符號運算機理和變量假設符號運算機理和變量假設1.符號運算的工作機理符號運算的工作機理u Matlab借助借助sym或或syms定義符號變量時,啟動定義符號變量時,啟動MuPAD引擎并啟動一個專供引擎并啟動一個專供MuPAD使用的內存工作使用的內存工作空間執(zhí)行符號運算;空間執(zhí)行符號運算;u matlab內存空間只保存該符號變量和計算結果。內存空間只保存該符號變量和計算結果。u 該定義變量的限定性假設(該定義變量的限定性假設(assumption)被保存在)被保存在MuPAD的內存空間。的內存空間。u 若變量不帶限定性假設,則若變量不帶限

22、定性假設,則MuPAD默認為復數(shù)。默認為復數(shù)。2.1.5 符號運算機理和變量假設符號運算機理和變量假設2. 對符號變量的限定性假設對符號變量的限定性假設i) syms x para=sym(x)ii) syms x flag para=sym(x, flag) syms a positive; a=sym(a, positive)iii) syms a b c syms a b c flagflag為參數(shù)屬性:為參數(shù)屬性:positive-參數(shù)取正實數(shù)參數(shù)取正實數(shù)real-參數(shù)為實數(shù)參數(shù)為實數(shù)unreal-參數(shù)為限定的復數(shù)參數(shù)為限定的復數(shù)2.1.5 符號運算機理和變量假設符號運算機理和變量假設

23、3. 清除變量和撤銷假設清除變量和撤銷假設u符號變量和其假設存放在不同的內存空間,因此刪除符號變量和其假設存放在不同的內存空間,因此刪除符號變量和撤銷關于變量的假設是兩件需要分別處理符號變量和撤銷關于變量的假設是兩件需要分別處理的事情。的事情。 clear all 可同時刪除可同時刪除clear x 刪除刪除matlab內存中的內存中的x變量變量syms x clear 撤銷撤銷MuPAD內存中對變量內存中對變量x的假設的假設evalin(symengine,getprop(x) ) 獲取獲取x的限定性假設的限定性假設 evalin(symengine,anames (Properties)

24、列出列出MuPAD內存中帶限定性假設的符號變量內存中帶限定性假設的符號變量reset(symengine) 重啟重啟MuPAD引擎,清空引擎,清空MuPAD內存內存clear all 刪除刪除matlab及及 MuPAD內存中的所有變量內存中的所有變量2.2 符號數(shù)字及表達式的操作符號數(shù)字及表達式的操作2.2.1雙精度數(shù)字與符號數(shù)字之間的轉換雙精度數(shù)字與符號數(shù)字之間的轉換sym(num, r) % “有理分數(shù)有理分數(shù)”表達的符號數(shù)字表達的符號數(shù)字 : p/q, n(p/q)sym(num) % sym(num, r) 的簡寫形式的簡寫形式1. 雙精度數(shù)字向符號數(shù)字的轉換雙精度數(shù)字向符號數(shù)字的轉

25、換 ( 52)22eeN*2Nesym(num, f) %以數(shù)值以數(shù)值 表示表示“浮點數(shù)浮點數(shù)”,N, e為整為整數(shù)數(shù) sym(1/10,f) is 3602879701896397/36028797018963968 sym(num, e) % “有理分數(shù)有理分數(shù)”表達表達+機器實際浮點表達誤差機器實際浮點表達誤差e sym(3*pi/4,e) is 3*pi/4 - 103*eps/249sym(num, d) %十進制小數(shù)近似表示,有效數(shù)字位數(shù)受十進制小數(shù)近似表示,有效數(shù)字位數(shù)受 digits指令控制。默認為指令控制。默認為digits(32)情況情況.2.2.1雙精度數(shù)字與符號數(shù)字之間

26、的轉換雙精度數(shù)字與符號數(shù)字之間的轉換sym(num) % sym(num, r) 的簡寫形式的簡寫形式sym(num) % num是字符串數(shù)字是字符串數(shù)字 1. 雙精度數(shù)字向符號數(shù)字的轉換雙精度數(shù)字向符號數(shù)字的轉換 sym(num) 中中num 用作符號計算函數(shù)的輸入用作符號計算函數(shù)的輸入時,體現(xiàn)其理論時,體現(xiàn)其理論真值真值,對對sym(num)中的中的num用作符號計算函數(shù)的輸入用作符號計算函數(shù)的輸入時,體現(xiàn)其字面數(shù)子的時,體現(xiàn)其字面數(shù)子的雙精度近似雙精度近似。2.2.1雙精度數(shù)字與符號數(shù)字之間的轉換雙精度數(shù)字與符號數(shù)字之間的轉換double(num_sym) % 把符號數(shù)字轉換為雙精度數(shù)字

27、把符號數(shù)字轉換為雙精度數(shù)字2. 符號數(shù)字向雙精度數(shù)字轉換符號數(shù)字向雙精度數(shù)字轉換 注意:注意:double(num) 把字符串數(shù)字轉換為字符的把字符串數(shù)字轉換為字符的ASCII碼碼double(0.1)ans = 48 46 49f=sym(10/3)Df=double(f)class(Df) Df = 3.3333ans = doubledigits 顯示當前環(huán)境下符號數(shù)字顯示當前環(huán)境下符號數(shù)字“十進制浮點十進制浮點” 表表示的有效數(shù)字位數(shù);示的有效數(shù)字位數(shù);digits(n) 設定設定 “十進制浮點十進制浮點”表示的有效數(shù)字位數(shù);表示的有效數(shù)字位數(shù); xs=vpa(x) 據(jù)表達式據(jù)表達式x

28、得到得到digits指定精度下的符號數(shù)字指定精度下的符號數(shù)字xs xs=vpa(x,n) 據(jù)表達式據(jù)表達式x得到得到n位有效數(shù)字的符號數(shù)字位有效數(shù)字的符號數(shù)字xs2.2.2 符號數(shù)字的任意精度表達形式符號數(shù)字的任意精度表達形式 u數(shù)值計算與符號計算的最重要區(qū)別:數(shù)值計算存在截數(shù)值計算與符號計算的最重要區(qū)別:數(shù)值計算存在截斷誤差,且在計算中不斷傳播,產(chǎn)生累計誤差;符號斷誤差,且在計算中不斷傳播,產(chǎn)生累計誤差;符號計算完全準確,沒有累計誤差,但降低計算速度,增計算完全準確,沒有累計誤差,但降低計算速度,增加內存。為兼顧精度和速度,采用加內存。為兼顧精度和速度,采用“變精度變精度”算法。算法。res

29、et(symengine) sa=sym(1/3+sqrt(2) sa =2(1/2) + 1/3 digits Digits = 32 format longa=1/3+sqrt(2)sa_Plus_a=vpa(sa+a,20)sa_Minus_a=vpa(sa-a,20)a = 1.747546895706428sa_Plus_a =3.4950937914128567869sa_Minus_a =-0.000000000000000022658064826339973669 例例2.2-1 digits, vpa, symengine指令演示指令演示sa32=vpa(sa)digits(

30、48)sa5=vpa(sa,5)sa48=vpa(sa)sa32 =1.747546895706428382135022057543sa5 =1.7475sa48 =1.74754689570642838213502205754303141190300520871 2.2.3 符號表達式的基本操作符號表達式的基本操作collect合并同類項numden獲取最小公分母和相應分子expand展開指定項simplify簡化表達式,消除冗余項factor因式分解simple搜索尋找最簡表達horner轉換為嵌套形式 pretty習慣方式顯示syms x;f=(1/x3+6/x2+12/x+8)(1/3

31、);g1=simple(f)g1 =(2*x + 1)3/x3)(1/3)驗證驗證:f2=g13f2 =(2*x + 1)3/x3expand(f2)ans =12/x + 6/x2 + 1/x3 + 8例例2.2-2 簡化簡化32611238xxxf 2.2.4 表達式中的置換操作表達式中的置換操作1.公共子表達式法簡化表達 RS=subexpr(S); RS=subexpr(S,w); RS,w=subexpr(S,w) 其中,w為MATLAB自動尋找的子表達式syms a b c d W;V,D=eig(a,b;c,d);RVD,W=subexpr(V;D,W)【例【例2.2-3】 對符

32、號矩陣對符號矩陣 進行特征向量分解。進行特征向量分解。abAcdRVD = (a/2 + d/2 - w/2)/c - d/c, (a/2 + d/2 + w/2)/c - d/c 1, 1 a/2 + d/2 - w/2, 0 0, a/2 + d/2 + w/2w =(a2 - 2*a*d + d2 + 4*b*c)(1/2) V =(a/2+d/2-(a2-2*a*d+d2+4*b*c)(1/2)/2)/c-d/c, (a/2+d/2+(a2-2*a*d+ d2+4*b*c)(1/2)/2)/c-d/c 1, 1D =a/2 + d/2 - (a2 - 2*a*d + d2 + 4*b*

33、c)(1/2)/2, 0 0, a/2 + d/2 + (a2 - 2*a*d + d2 + 4*b*c)(1/2)/2 2.2.4 表達式中的置換操作表達式中的置換操作2. 通用置換指令通用置換指令RESsubs(ES,old,new)RESsubs(ES,new)例例2.2-4 subs置換規(guī)則示例置換規(guī)則示例clearsyms a b x;f=a*sin(x)+b f1=subs(f,sin(x),log(y)f2=subs(f,a,3.11)f3=subs(f,a,b,x,2,5,sym(pi/3)class(f3) f1=a* log(y) +b f2 =b + (311*sin(x

34、)/100f3 =3(1/2) + 5ans =sym (5)例例2.2-4 subs置換規(guī)則示例置換規(guī)則示例format %設為默認輸出格式顯示設為默認輸出格式顯示format compactf4=subs(f,a,b,x,2,5,pi/3)class(f4) f4 = 6.7321ans =double f5=subs(f,x,0:pi/2:pi)class(f5)f5 = b, a + b, bans =sym t=0:pi/10:2*pi;f6=subs(f,a,b,x,2,3,t)plot(t,f6)0123456711.522.533.544.55k=(0.5:0.1:1);f6=

35、subs(subs(f,a,b,k,2),x,t);size(f6) plot(t,f6) ans = 6 210123456711.21.41.61.822.22.42.62.83 f6=2*sin(t)+3 f=a*sin(x)+bdfdvn=diff(f,v,n) 求fjac=jacobian(f,v) 求多元向量函數(shù)f(v)的jacobian矩陣r=taylor(f,n,v,a) 把f(v)在v=a處進行泰勒展開2.3 符號微積分符號微積分2.3.1 極限和導數(shù)的符號計算極限和導數(shù)的符號計算limit(f,v,a) 求極限limit(f,v,a,right) 求右極限limit(f,v

36、,a,left) 求左極限)(limvfav)(limvfav)(limvfavnndvvfd)( )10( )()!knkkfaxak【例2.3-1】試求kxxx11limsyms x kf=(1-1/x)(k*x); Lf=limit(f,x,inf) Lf =1/exp(k) Lf1=vpa(subs(Lf,k,sym(-1),48) Lf1=2.7182818284590452353602874713526624977572470937 syms a t x f=a, t3; t*cos(x), log(x); df=diff(f) dfdt2=diff(f,t,2) dfdxdt=d

37、iff( diff(f,x) ,t) xxttaflncos3dxdf22dtfddtdxfd2【例2.3-2】 求df = 0, 0 -t*sin(x), 1/xdfdt2 = 0, 6*t 0, 0dfdxdt = 0, 0 -sin(x), 0 例例2.3-5:設設cos(x+siny)=siny, 求求dy/dx(隱函數(shù)求導隱函數(shù)求導).%將將dy/dx表達式用表達式用x,y表達表達syms xg=sym(cos(x+sin(y(x)=sin(y(x)dgdx=diff(g,x) g =cos(x + sin(y(x) = sin(y(x)dgdx = -sin(x + sin(y(x

38、)*(cos(y(x)*diff(y(x), x) + 1) = cos(y(x)*diff(y(x), x) dgdx1=subs(dgdx,diff(y(x),x),dydx)dgdx1 =-sin(x + sin(y(x)*(dydx*cos(y(x) + 1) = dydx*cos(y(x) dydx=solve(dgdx1, dydx) dydx =-sin(x + sin(y(x)/(cos(y(x) + cos(y(x)*sin(x + sin(y(x)sym xr=taylor(x*exp(x),9,x,0)pretty(r) 例例2.3-6:求求f(x)=xex在在x=0處展

39、開的處展開的8階階Maclaurin級數(shù),即忽略級數(shù),即忽略9階及以上小量的泰勒級數(shù)展開階及以上小量的泰勒級數(shù)展開 。 r =x8/5040 + x7/720 + x6/120 + x5/24 + x4/6 + x3/2 + x2 + x 8 7 6 5 4 3 x x x x x x 2 - + - + - + - + - + - + x + x 5040 720 120 24 6 2 MATLAB求解通式求和求解通式求和 問題的指令為:問題的指令為: s=symsum(f,v,a,b) 求通式求通式f在指定變量在指定變量v取遍取遍 a,b中所有中所有整數(shù)整數(shù)時的和。時的和。 2.3.2 序

40、列序列/級數(shù)的符號求和級數(shù)的符號求和( )bv af v說明:說明: (1)f是矩陣時,求和對逐個元素進行,但自變量定義在是矩陣時,求和對逐個元素進行,但自變量定義在整個矩陣上。整個矩陣上。(2)v省缺時,省缺時,f中的自變量由中的自變量由findsym(symvar)自動辨自動辨認;認;b可以取有限整數(shù)也可以取無窮大??梢匀∮邢拚麛?shù)也可以取無窮大。(3)a,b同時省缺時,默認的自變量求和區(qū)間為同時省缺時,默認的自變量求和區(qū)間為0,v-1syms n kf1=1/(k*(k+1);s1=symsum(f1,k,1,n)s1 =1 - 1/(n + 1) 11(1)nkk k12)1(,)12(

41、1kkkk 【例2.3-8】求 , 。f2=1/(2*k-1)2, (-1)k/k s2=symsum(f2,1,inf) s3 = pi2/8, -log(2) 2.3.3 符號積分【例2.3-9】求 。lnxxdx intf=int(f,v) 給出給出f 對指定變量對指定變量v的不定積分的不定積分 intf=int(f,v,a,b) 給出給出f對指定變量對指定變量v的定積分的定積分syms xf= x*log(x) s=int(f,x)s=simple(s)f = x*log(x)s = (x2*(log(x) - 1/2)/2s = x2*(log(x)/2 - 1/4)2.3.3 符號

42、積分 intf=int(f,v) 給出給出f 對指定變量對指定變量v的不定積分的不定積分 intf=int(f,v,a,b) 給出給出f對指定變量對指定變量v的定積分的定積分syms a b x;f2=a*x, b*x2; 1/x, sin(x)disp(The integral of f is)pretty(int(f2) 【例2.3-10】求 。21sina xb xd xxxThe integral of f is +- -+ | 2 3 | | a x b x | | - , - | | 2 3 | | | | log(x), -cos(x) | +- -+ f2 = a*x, b*x

43、2 1/x, sin(x) 例例2.3-11求積分求積分syms x y z;f=x2+y2+z2;F2=int(int(int(f, z, sqrt(x*y), x2*y), y, sqrt(x), x2), x, 1, 2)第一重積分第一重積分第二重積分第二重積分2222221()xx yxxyxyz dzdydx Warning: Explicit integral could not be found. F2 =(14912*2(1/4)/4641 - (6072064*2(1/2)/348075 + (64*2(3/4)/225 + 1610027357/6563700VF2=vpa

44、(F2) %默認默認32位有效數(shù)字位有效數(shù)字 VF2 =224.92153573331143159790710032805教材中教材中48位有效數(shù)字位有效數(shù)字 22cos,sin,( )( )xryrdlxydsyms a r theta phi r=a*theta; x=r*cos(theta); y=r*sin(theta); dLdth=sqrt(diff(x,theta)2+diff(y,theta)2);L=simple(int(dLdth,theta,0,phi)例例2.3-12 2.3-12 求阿基米德螺線求阿基米德螺線r=ar=a* *(a0)(a0)在在=0=0到到 間的曲線

45、長間的曲線長度函數(shù),并求出度函數(shù),并求出a=1, a=1, 時的曲線長度。時的曲線長度。2220( )( )Lxyd解解:L_2pi=subs(L,a,phi,sym(1,2*pi) L_2pi_vpa=vpa(L_2pi) L =(phi*(a2*phi2 + a2)(1/2) + log(phi + (phi2 + 1)(1/2)*(a2)(1/2)/2 L_2pi_vpa =21.256294148209098800702512272566例例2.3-12 2.3-12 畫阿基米德螺線畫阿基米德螺線r = a*及其曲線長度圖形。及其曲線長度圖形。cos,sinxryrL1=subs(L,

46、a,sym(1);ezplot(L1*cos(phi),L1*sin(phi),0,2*pi)grid on; hold onx1=subs(x,a,sym(1);y1=subs(y,a,sym(1);h1=ezplot(x1,y1,0,2*pi);set(h1,Color,r,LineWidth,5) title( ); legend(螺線長度螺線長度-幅角曲線幅角曲線,阿基米德螺線阿基米德螺線)hold offL =(phi*(a2*phi2 + a2)(1/2) + log(phi + (phi2 + 1)(1/2)*(a2)(1/2)/2 -505101520-16-14-12-10-

47、8-6-4-2024xyx = cos() (log( + (2 + 1)1/2)/2 + ( (2 + 1)1/2)/2), y = sin() (log( + (2 + 1)1/2)/2 + ( (2 + 1)1/2)/2)見見P1982.4 微分方程的符號解法微分方程的符號解法S=dslove(eq1,eq2,eqn, cond1,cond2,condn,v)2.4.1 符號解法和數(shù)值解法有互補作用符號解法和數(shù)值解法有互補作用2.4.2 求微分方程符號解的一般指令求微分方程符號解的一般指令從數(shù)值計算角度看,微分方程邊值問題的求解比初值問題復雜困從數(shù)值計算角度看,微分方程邊值問題的求解比初

48、值問題復雜困難;而對符號計算來說,邊值問題和初值問題的求解微分方程的難;而對符號計算來說,邊值問題和初值問題的求解微分方程的指令形式相同且簡單,不過計算時間較長且未必有封閉形式解。指令形式相同且簡單,不過計算時間較長且未必有封閉形式解。S=dslove(eq1,eq2,eqn,cond1,cond2,condn,v)默認獨立變量默認獨立變量t輸入量為輸入量為字符串字符串必選必選可選可選條件:條件:y(a)=b, Dy(c)=d若應變量為若應變量為y ,用,用“Dny”表示表示“y的的n階導數(shù)階導數(shù)”, Dy為一階導數(shù)。解在為一階導數(shù)。解在S.y中。中。說明:說明:(1 1)輸入量包括三部分:微

49、分方程、初始條件、指)輸入量包括三部分:微分方程、初始條件、指定獨立變量(不指定時,定獨立變量(不指定時,默認為默認為t t)。輸入量)。輸入量必須必須以字符串的形式給出以字符串的形式給出。(2 2)微分方程的記述規(guī)定:當)微分方程的記述規(guī)定:當y y是應變量時,是應變量時, 用用“Dny”Dny”表示表示“y y的的n n階導數(shù)階導數(shù)”。(3 3)關于初始條件或邊界條件的規(guī)定:應寫成)關于初始條件或邊界條件的規(guī)定:應寫成y(a)=b, Dy(c)=dy(a)=b, Dy(c)=d等。等。(4 4)如果)如果y y是應變量,則它的解在是應變量,則它的解在S.yS.y中。中。【例2.4-1】求

50、的解。dxdtydydtx ,2.4.3 微分方程符號解示例微分方程符號解示例clearS=dsolve(Dx=y,Dy=-x) disp(微分方程的解, blanks(2),x,blanks(22),y)disp(S.x,S.y) S = x: 1x1 sym y: 1x1 sym微分方程的解 x y C2*cos(t) + C1*sin(t), C1*cos(t) - C2*sin(t)寫微分方程遵循原則:寫微分方程遵循原則:導數(shù)在前函數(shù)在后,導數(shù)階數(shù)降階導數(shù)在前函數(shù)在后,導數(shù)階數(shù)降階x, y= dsolve(Dx=y,Dy=-x) %按字母表輸出順序不變按字母表輸出順序不變例例2.4-2

51、.2.4-2.圖示微分方程圖示微分方程y=xyy=xy-(y-(y) )2 2通解和奇解的關系通解和奇解的關系clear ally=dsolve(Dy)2-x*Dy+y=0,x)y = x2/4 C3*x - C32 clf, hold onhy1=ezplot(y(1),-6,6,-4,8,1);set(hy1,Color,r,LineWidth,5)for k=-2:0.5:2 y2=subs(y(2),C3,k); ezplot(y2,-6,6,-4,8,1)endhold off;box onlegend(奇解奇解,通解通解,Location,Best)ylabel(y)title(f

52、ontsize14微分方程微分方程, (y )2 xy + y = 0 ,的解的解) 見見P199例例2.4-3.求解兩點邊值問題求解兩點邊值問題: xy-3y=x2,y(1)=0,y(5)=0y=dsolve(x*D2y-3*Dy=x2,y(1)=0,y(5)=0,x) y =(31*x4)/468 - x3/3 + 125/468 ezplot(y,-1,6)hold onplot(1,5,0,0,. .r,MarkerSize,20)text(1,1,y(1)=0)text(4,1,y(5)=0)title(x*D2y-3*Dy=x2, y(1)=0,y(5)=0)hold off2.5

53、 符號變換和符號卷積符號變換和符號卷積2.5.1 Fourier變換及其反變換變換及其反變換 Fw=fourier(ft,t,w) 求求“時域時域”函數(shù)函數(shù)ft的的Fourier變變換換 ft=ifourier(Fw,w,t) 求求“頻域頻域”函數(shù)函數(shù)Fw的的Fourier 反變換反變換2.5.2 Laplace變換及其反變換變換及其反變換 Fs=laplace(ft,t,s) 求求“時域時域”函數(shù)函數(shù)ft的的Laplace變變換換 ft=ilaplace(Fs,s,t) 求求“頻域頻域”函數(shù)函數(shù)Fs的的Laplace 反變換反變換2.5.3 Z變換及其反變換變換及其反變換 FZ=ztrans

54、(ft,n,z) 求求“時域時域”序列序列ft的的Z變換變換 fn=itrans(FZ,z,n) 求求“頻域頻域”序列序列FZ的的Z反變換反變換2.5.4 符號卷積符號卷積 利用拉氏變換求取。利用拉氏變換求取?!纠?2.5-1】求 的Fourier變換。0001)(tttf(1)求Fourier變換syms t wut=heaviside(t);UT=fourier(ut) UT = pi*dirac(w)-i/w (2)求Fourier反變換Ut=ifourier(UT,w,t) Ut =heaviside(t)plot(t(kk),ut(kk),.r,MarkerSize,30)ut(kk

55、)=NaN; hold onplot(t,ut,-r,LineWidth,3)plot(t(kk),t(kk),ut(kk-1), ut(kk+1),or,MarkerSize,10)hold offgrid onaxis(-2,2,-0.2,1.2)xlabel(fontsize14t),ylabel(fontsize14ut)title(fontsize14Heaviside(t) (3)單位階躍曲線t=-2:0.01:2;ut=heaviside(t);kk=find(t=0);-2-1.5-1-0.500.511.52-0.200.20.40.60.81tutHeaviside(t)【

56、例2.5-4】求 的Laplace變換。 syms t s; syms a b positive; %不限定無結果不限定無結果 Dt=dirac(t-a); Ut=heaviside(t-b); Mt=Dt,Ut;exp(-a*t)*sin(b*t),t2*exp(-t); MS=laplace(Mt,t,s) MS = exp(-s*a), exp(-s*b)/s 1/b/(s+a)2/b2+1), 2/(s+1)3 tatetbtebtuat2sin)()(dfdvn=diff(f,v,n) 求r=taylor(f,n,v,a) 把f(v)在v=a處進行泰勒展開review2.3.1 極限

57、和導數(shù)的符號計算極限和導數(shù)的符號計算limit(f,v,a) 求極限limit(f,v,a,right) 求右極限limit(f,v,a,left) 求左極限)(limvfav)(limvfav)(limvfavnndvvfd)(2.3.2 序列序列/級數(shù)的符號求和級數(shù)的符號求和( )bv af vs=symsum(f,v,a,b)S=dslove(eq1,eq2,eqn, cond1,cond2,condn,v)2.4.2 求微分方程符號解的一般指令求微分方程符號解的一般指令S=dslove(eq1,eq2,eqn,cond1,cond2,condn,v)默認獨立變量默認獨立變量t輸入量為輸

58、入量為字符串字符串必選必選可選可選條件:條件:y(a)=b, Dy(c)=d若應變量為若應變量為y ,用,用“Dny”表示表示“y的的n階導數(shù)階導數(shù)”, Dy為一階導數(shù)。解在為一階導數(shù)。解在S.y中。中。review intf=int(f,v) 給出給出f 對指定變量對指定變量v的不定積分的不定積分 intf=int(f,v,a,b) 給出給出f對指定變量對指定變量v的定積分的定積分2.3.3 符號積分例例2.4-2.2.4-2.圖示微分方程圖示微分方程y=xyy=xy-(y-(y) )2 2通解和奇解的關系通解和奇解的關系clear ally=dsolve(Dy)2-x*Dy+y=0,x)c

59、lf, hold onhy1=ezplot(y(1),-6,6,-4,8,1);set(hy1,Color,r,LineWidth,5)for k=-2:0.5:2 y2=subs(y(2),C3,k); ezplot(y2,-6,6,-4,8,1)endhold off;box onlegend(奇解奇解,通解通解,Location,Best) %參數(shù)的設置有多參數(shù)的設置有多種種ylabel(y)title(fontsize14微分方程微分方程, (y )2 xy + y = 0 ,的解的解)legend(奇解奇解,通解通解,Location,northwest)legend(奇解奇解,通解

60、通解,Location, 0.4,0.6,0.3,0.1)legend(.,Location,location) location can be either a 1-by-4 position vector (left bottom width height) or one of the following strings. 見見P199docsearch legend Location %通過幫助指令獲取參數(shù)通過幫助指令獲取參數(shù)SpecifierLocation in AxesNorthInside plot box near topSouthInside bottomEastInside

溫馨提示

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

評論

0/150

提交評論