MATLAB符號運算功能PPT課件_第1頁
MATLAB符號運算功能PPT課件_第2頁
MATLAB符號運算功能PPT課件_第3頁
MATLAB符號運算功能PPT課件_第4頁
MATLAB符號運算功能PPT課件_第5頁
已閱讀5頁,還剩34頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、1,第四次課,第三章 符號運算功能,2,上次課內(nèi)容回顧:,矩陣及其運算 主要介紹了特殊矩陣的生成如空陣、全零陣、全1陣等的生成,矩陣的一些特殊操作如變維、變向、抽取、擴(kuò)展. 數(shù)組及其運算 主要介紹了基本數(shù)組運算數(shù)、組函數(shù)運算和數(shù)組邏輯運算. 多項式運算 主要介紹了多項式的表示方法、多項式運算.,3, 3.1 符號表達(dá)式的生成,目 錄, 3.2 符號和數(shù)值之間的轉(zhuǎn)換, 3.3 符號函數(shù)的運算, 3.5 符號矩陣的運算, 3.4 符號矩陣的創(chuàng)立, 3.6 符號微積分, 3.7 符號代數(shù)、微分方程求解, 3.8 符號函數(shù)的二維圖,4,概 述,MATLAB自產(chǎn)生之日起就在數(shù)值計算功能上獨占鰲頭,廣受各

2、專業(yè)人員的歡迎。但是在數(shù)學(xué)、物理、力學(xué)等各種科研、工程應(yīng)用中還經(jīng)常遇到符號運算的問題,因此一部分MATLAB用戶不得不掌握另一種符號計算語言,如Maple、Mathematic、MathCAD等等,這就帶來了一些不便。為了解決這個問題,Mathworks公司于1993年從加拿大滑鐵盧大學(xué)購入了Maple的使用權(quán),并在此基礎(chǔ)上,利用Maple的函數(shù)庫,開發(fā)了MATLAB語言的又一重要工具箱符號計算工具箱(Symbolic Toolbox)。從此MATLAB便集數(shù)值計算、符號計算和圖形處理三大基本功能于一體,成為數(shù)學(xué)計算各語言中功能最強、操作最簡單和最受用戶喜愛的語言。,5, 3.1 符號表達(dá)式的

3、生成, 符號運算的特點: 在符號運算過程中,變量都是以字符形式保存和運算,即使是數(shù)字也被當(dāng)做字符來處理。 符號表達(dá)式的形式: 符號函數(shù) 不包括等號 符號方程 必須帶等號 創(chuàng)建方法: 符號函數(shù)和符號方程 創(chuàng)建方法相同,最簡單的方法和MATLAB中字符串變量的生成方法相同。 創(chuàng)建符號函數(shù) f=log(x) f=log(x),6, 創(chuàng)建符號方程 equation=a*x2+b*x+c=0 equation=a*x2+b*x+c=0 創(chuàng)建符號微分方程 diffeq=Dy-y=x diffeq =Dy-y=x 注意:1)由這種方法創(chuàng)建的符號表達(dá)式對空格是很敏感的。因此,不要在字符間亂加空格符,否則在其它

4、地方調(diào)用此表達(dá)式的時候會出錯。 2)由于符號表達(dá)式在MATLAB中被看成是1*1階的符號矩陣,因此,它也可用sym和syms命令來創(chuàng)建。 如: f=sym( sin(x) ) f=sin(x) f=sym( sin(x)2=0 ) f=sin(x)2=0,7,syms x t; f=sin(x)+cos(t) f=sin(x)+cos(t) 此方法不能用來創(chuàng)建符號方程,syms x; f=sin(x)+cos(x) f=sin(x)+cos(x),8, 3.2 符號和數(shù)值之間的轉(zhuǎn)換,目的:有時符號運算的目的是得到精確的數(shù)值解,這樣就需要對得 到的解析解進(jìn)行數(shù)值轉(zhuǎn)換。在MATLAB中轉(zhuǎn)換主要由兩

5、個函 數(shù)digits和vpa完成。而這兩個函數(shù)在實際中經(jīng)常同變量替換 函數(shù)subs配合使用,其調(diào)用格式為: digits(D) 函數(shù)設(shè)置有效數(shù)字個數(shù)為D的近似解精度; R=vpa(S) 符號表達(dá)式S在digits函數(shù)設(shè)置下的精確的數(shù)值解; vpa(S,D) 符號表達(dá)式S在digits(D)精度下的數(shù)值解; 例題:求方程 3x2-ex=0 的精確解和各種精度的近似解。 s=solve( 3*x2-exp(x)=0 ),s = -2*lambertw(-1/6*3(1/2) -2*lambertw(-1,-1/6*3(1/2) -2*lambertw(1/6*3(1/2),9,vpa(s) ans

6、 = .91000757248870906065733829575944 3.7330790286328142006199540298434 -.45896226753694851459857243243408 vpa(s,6) ans = .910008 3.73308 -.458962,例題:設(shè)函數(shù)為 f(x)=x-cos(x),求此函數(shù)在 x =點的值。 x=sym(x),f=x-cos(x),f1=subs(f, pi,x) f1=pi+1,10,numeric(f1) ans = 4.1416 double(f1) ans = 4.1416,digits(25); vpa(f1),a

7、ns =4.141592653589793238462643,11, 3.3 符號函數(shù)的運算,一、復(fù)合函數(shù)運算 若函數(shù) z=z(y) 的自變量y 又是x 的函數(shù)y=y(x),則求z對x的函數(shù)的過程稱為復(fù)合函數(shù)運算。在MATLAB中,此過程可由功能函數(shù)compose來實現(xiàn)。 調(diào)用格式: compose(f,g) 返回當(dāng)f=f(x)和g=g(y)時的復(fù)合函數(shù)f(g(y),這里x為findsym定義的f的符號變量, y為findsym定義的g的符號變量. compose(f,g,z) 返回的復(fù)合函數(shù)以z為自變量。 compose(f,g,x,z) 返回復(fù)合函數(shù)f(g(z),且使得x為f的獨立變量,即

8、如果f=cos(x/t),則compose(f,g,x,z) 返回cos(g(z)/t),而compose(f,g,t,z) 返回cos(x/g(z)。,12,compose(f,g,x,y,z) 返回的復(fù)合函數(shù)f(g(z),并使得x為f的獨立變量,y為g的獨立變量。,復(fù)合函數(shù)運算示例: syms x y z t u; f=1/(1+x2); g=sin(y); h=xt; p=exp(-y/u); compose(f,g);,ans =1/(1+sin(y)2),compose(f,g,t);,ans =1/(1+sin(t)2),compose(h,g,x,z);,13, compose(

9、h,g,t,z); ans =xsin(z) compose(h,p,x,y,z); ans =exp(-z/u)t compose(h,p,t,u,z); ans =xexp(-y/z),ans =sin(z)t,14, 3.4 符號矩陣的創(chuàng)立,在MATLAB中創(chuàng)建符號矩陣的方法和創(chuàng)建數(shù)值矩陣的形式很相似,只不過要用到符號定義函數(shù)sym。 一、使用sym函數(shù)直接創(chuàng)建符號矩陣 矩陣元素是任何不帶等號的符號表達(dá)式,各符號表達(dá)式的長度可以不同 如:a=sym(1/s+x,sin(x) cos(x)2/(b+x);9,exp(x2+y2),log(tanh(y) ),a = 1/s+x, sin(x

10、), cos(x)2/(b+x) 9, exp(x2+y2), log(tanh(y),15,二、用創(chuàng)建子陣的方法創(chuàng)建符號矩陣 ms=1/s,sin(x) ; 1 ,exp(x) ms =1/s,sin(x) 1 ,exp(x) 注意:要保證同一列的各元素字符串具有相同的長度,為此 在較短字符串的前后可用空格符補充。 b=a; exp(-i), 3 ,x3+y9 ,b = 1/s+x, sin(x), cos(x)2/(b+x) 9, exp(x2+y2), log(tanh(y) exp(-i), 3, x3+y9 ,三、將數(shù)值矩陣轉(zhuǎn)化為符號矩陣 在MATLAB中,數(shù)值矩陣不能直接參與符號運

11、算,必須先轉(zhuǎn)化為符號矩陣。,16,如:a=2/3,sqrt(2),0.222;1.4,1/0.23,log(3) b=sym(a) 四、符號矩陣的索引和修改 用矩陣的坐標(biāo)括號表達(dá)式實現(xiàn)。 如:對上例中的矩陣b的索引和修改。 b(2,3) %矩陣的索引 b(2,3)=log(3) %矩陣的修改,b = 2/3, sqrt(2), 111/500 7/5, 100/23, 4947709893870346*2(-52),b = 2/3, sqrt(2), 111/500 7/5, 100/23, log(3),17, 3.5 符號矩陣的運算,一、基本運算 1. 符號矩陣的四則運算 矩陣的加(+)、

12、減(-)法 例如:a=sym(1/x,1/(x+1);1/(x+2),1/(x+3) ); b=sym(x,1;x+2,0); b+a 矩陣的乘(*)、除(/、)法 如: ab,ans = 1/x+x, 1/(x+1)+1 1/(x+2)+x+2, 1/(x+3),18, 矩陣的轉(zhuǎn)置() 如:a,ans = -6*x-2*x3-7*x2, 3/2*x2+x+1/2*x3 6+2*x3+10*x2+14*x, -1/2*x3-2*x2-3/2*x,simple(ans),ans = -x*(x+2)*(2*x+3), 1/2*x*(x+2)*(x+1) 2*(x+3)*(x+1)2, -1/2*

13、x*(x+3)*(x+1),ans = 1/conj(x), 1/(2+conj(x) 1/(1+conj(x), 1/(3+conj(x),19,2. 符號矩陣的行列式運算 如:det(a) ans=2/x/(x+3)/(x+1)/(x+2) 3. 符號矩陣的逆 如:inv(b) 4. 符號矩陣的秩 如; rank(a) ans=2 5. 符號矩陣的冪運算 如:a2,ans = 0, 1/(x+2) 1, -x/(x+2),ans = 1/x2+1/(x+1)/(x+2), 1/x/(x+1)+1/(x+1)/(x+3) 1/(x+2)/x+1/(x+3)/(x+2), 1/(x+1)/(x

14、+2)+1/(x+3)2,20,6. 符號矩陣的指數(shù)運算 符號矩陣的“數(shù)組指數(shù)”運算由函數(shù)exp實現(xiàn), 如:exp(b); 符號矩陣的“矩陣指數(shù)”運算由函數(shù)expm實現(xiàn); 如:expm(b), exp(b) ans = exp(x), exp(1) exp(x+2), 1,expm(b) a=0 1;3 2 syms t expm(a*t),ans = 1/4*exp(3*t)+3/4*exp(-t), -1/4*exp(-t)+1/4*exp(3*t) -3/4*exp(-t)+3/4*exp(3*t), 3/4*exp(3*t)+1/4*exp(-t),21,二、矩陣分解 1. 符號矩陣的

15、特征值分解 函數(shù)eig 如: x,y=eig(b); x=simple(x),x = 1, 1 -1/2*x+1/2*(x2+8+4*x)(1/2), -1/2*x-1/2*(x2+8+4*x)(1/2),y = 1/2*x+1/2*(x2+8+4*x)(1/2), 0 0, 1/2*x-1/2*(x2+8+4*x)(1/2),2. 符號矩陣的約當(dāng)標(biāo)準(zhǔn)形函數(shù) jordan 如:a=sym(1 1 2;0 1 3;0 0 2 ) x,y=jordan(a),22,3.符號矩陣的三角抽取 函數(shù)diag tril triu 如: z=sym(x*y xa sin(y);ta log(y) b;y e

16、xp(t) x ),x = 5, -5, -5 3, 0, -5 1, 0, 0,y = 2, 0, 0 0, 1, 1 0, 0, 1,z = x*y, xa, sin(y) ta, log(y), b y, exp(t), x,triu(z); diag(z); tril(z),ans = x*y, xa, sin(y) 0, log(y), b 0, 0, x ,ans = x*y log(y) x,ans = x*y, 0, 0 ta, log(y), 0 y, exp(t), x,23,四、符號矩陣的簡化 1. 因式分解函數(shù) factor 調(diào)用格式: factor(S) 輸入變量為一

17、符號矩陣,此函數(shù)將分解矩陣的各個元素; S包含的所有元素為整數(shù),則計算最佳因式分解式。 如: 符號表達(dá)式的分解 syms x factor(x9-1) 分解大整數(shù)(factor(sym( N ) factor(sym( 12345678901234567890 ),ans = (x-1)*(x2+x+1)*(x6+x3+1),ans = (2)*(3)2*(5)*(101)*(3803)*(3607)*(27961)*(3541),24,2. 符號矩陣的展開函數(shù) expand 調(diào)用格式: expand(s) 對符號矩陣的各元素的符號表達(dá)式進(jìn)行展開,也常用 于三角函數(shù)、指數(shù)函數(shù)和對數(shù)函數(shù)的展開中

18、。,如: syms x y expand(x+1)3) 多項式展開 expand(sin(x+y) 三角函數(shù)展開,ans = x3+3*x2+3*x+1,ans = sin(x)*cos(y)+cos(x)*sin(y),3. 同類式合并 函數(shù) collect 調(diào)用格式: collect(S,v) 將符號矩陣S中的各元素的v的同冪項系數(shù)合并; collect(S) 對由findsym函數(shù)返回的默認(rèn)變量進(jìn)行同類項合并。,25,如:syms x y collect(x2*y+y*x-x2-2*x) ans =(y-1)*x2+(y-2)*x collect(x2*y+y*x-x2-2*x,y) a

19、ns =(x2+x)*y-x2-2*x 4. 符號簡化 函數(shù) simple和 simplify simple 用于尋找符號矩陣或符號表達(dá)式的最簡型。調(diào)用格式: simple(S) 對表達(dá)式S 嘗試多種不同的算法簡化,以顯示S的長度最 短的簡化形式,若S為一矩陣,則結(jié)果是全矩陣的最短 形,而非每個元素的最短形。,simplify 符號簡化函數(shù) 調(diào)用格式: simplify(S) 簡化符號矩陣的每一個元素。,26,如:syms x c alpha beta simplify(sin(x)2+cos(x)2) ans=1 simplify(exp(c*log(sqrt(alpha+beta) ans

20、 =(alpha+beta)(1/2*c) 5. 分式通分 numden 求解符號表達(dá)式的分子和分母。 調(diào)用格式: N,D=numden(A) 把A的各元素轉(zhuǎn)換為分子和分母都是整系數(shù)的 最佳多項式型。 如: n,d=numden(x/y+y/x),n = x2+y2,d = x*y,27, 3.6 符號微積分,一、符號極限 極限的求解可由limit函數(shù)來實現(xiàn),調(diào)用格式: limit(F,x,a) 計算符號表達(dá)式F在xa條件下的極限值; limit(F,a) 計算符號表達(dá)式中由findsym(F)返回的獨立變量 趨向于a的極限值; limit(F) 計算a=0時的極限; limit(F,x,a,

21、 right)或limit(F,x,a, left) rigft,left用來指定取極限 的方向。 如: syms x a t h; limit(sin(x)/x) ans=1 limit(1+2*t/x)(3*x),x,inf) ans=exp(6*t) limit(1/x,x,0,right) ans=inf,28,二、符號積分 1. 符號積分函數(shù) int ,調(diào)用格式: int(S) 計算符號表達(dá)式S對由findsym返回的符號自變量的不定積分, S為符號矩陣或符號數(shù)量,若S為常數(shù),則積分針對x。 int(S,v) 計算符號表達(dá)式S對符號自變量v的不定積分,v是一數(shù)量 符號量。 int(S

22、,a,b) 計算符號表達(dá)式S對默認(rèn)符號變量從a到b的定積分,a和 b為雙精度或符號數(shù)量。 int(S,v,a,b) 計算符號表達(dá)式對變量v從a到b的定積分。 如:syms x x1 alpha u t; A=cos(x*t),sin(x*t);-sin(x*t),cos(x*t),A = cos(x*t), sin(x*t) -sin(x*t), cos(x*t),29,int(A,t),ans = 1/x*sin(x*t), -cos(x*t)/x cos(x*t)/x, 1/x*sin(x*t),int(x1*log(1+x1),0,1) ans=1/4,30,三、符號微分和差分 微分和差

23、分函數(shù) diff 調(diào)用格式: diff(S) 對由findsym返回的自變量,求符號表達(dá)式S的微分。 diff(S, v)或diff(S,sym(v) 對自變量v,求表達(dá)式S的微分 diff(S,n) 對于正整數(shù)n,對表達(dá)式S微分n次。 如: x=sym(x); t=sym(t); diff(sin(x2) ans=2*cos(x2)*x diff(t6,6) ans=720,31, 3.7 符號代數(shù)、微分方程求解,一、線性方程組的符號解法 線性方程的符號求解函數(shù) linsolve solve 此方法可得到方程組的精確解,所得的解析解可由函數(shù)vpa轉(zhuǎn)換在浮點近似數(shù)值。 例:試對數(shù)值方程組用符號

24、求解函數(shù)來求解。 a=sym(10, 1, 0;-1 ,10 ,2;0 ,2 ,10 ) b=(9;7;6 ) linsolve(a,b) vpa(ans,5),ans = 473/475 91/95 376/475,ans = .99579 .95789 .79158,32,二、非線性方程的符號解法 非線性方程的符號求解由函數(shù)fsolve實現(xiàn),調(diào)用格式為: X=fsolve(fun,x0) fun為所要求解的函數(shù)名,通常以M文件的形 式給出,返回函數(shù)值F=fun(x),x0為求解方程的初始值。,例:用fsolve函數(shù)求解下面非線性方程。,解:首先編制函數(shù)文件fc.m 如下 fc.m func

25、tion y=fc(x) y(1)=x(1)-0.7*sin(x(1)-0.2*cos(x(2) y(2)=x(2)-0.7*cos(x(1)+0.2*sin(x(2) y=y(1) y(2);,33,在MATLAB命令窗口輸入: x0=0.5,0.5 fsolve(fc,x0),ans = 0.5265 0.5079,三、常微分方程的符號解 常微分方程的符號解由函數(shù) dsolve來計算,主要調(diào)用格式為: dsolve(equ1, equ2,),以代表微分方程及初始條件的符號方程為輸入?yún)?shù),多個方程或初始條件可在一個輸入變量內(nèi)聯(lián)立輸入,且以逗號分隔。默認(rèn)的獨立變量為t ,也可把t變?yōu)槠渌姆?/p>

26、變量。字符D代表對獨立變量的微分,通常指d/dt。緊跟D的數(shù)字代表高階微分如D2為d2/dt2。緊跟此操作符的任何符號都可作被微變量,如D3y代表對y(t)的3階微分。,34,例: dsolve(Dx=-a*x) ans =C1*exp(-a*t) S=dsolve(Du=v,Dv=w,Dw=-u, u(0)=0,v(0)=0,w(0)=1) S = u: 1x1 sym v: 1x1 sym w: 1x1 sym S.u ans =1/3*3(1/2)*exp(1/2*t)*sin(1/2*t*3(1/2)- 1/3*exp(1/2*t)*cos(1/2*t*3(1/2)+1/3*exp(-t) 注意:用戶定義的符號變量不能再

溫馨提示

  • 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

提交評論