第三章Matlab符號(hào)運(yùn)算dai_第1頁(yè)
第三章Matlab符號(hào)運(yùn)算dai_第2頁(yè)
第三章Matlab符號(hào)運(yùn)算dai_第3頁(yè)
第三章Matlab符號(hào)運(yùn)算dai_第4頁(yè)
第三章Matlab符號(hào)運(yùn)算dai_第5頁(yè)
已閱讀5頁(yè),還剩60頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1MATLAB的符號(hào)運(yùn)算——Matlab不僅具有數(shù)值運(yùn)算功能,還開發(fā)了在matlab環(huán)境下實(shí)現(xiàn)符號(hào)計(jì)算的工具包SymbolicMathToolbox符號(hào)運(yùn)算的功能符號(hào)表達(dá)式、符號(hào)矩陣的創(chuàng)建因式分解、展開和簡(jiǎn)化符號(hào)代數(shù)方程求解符號(hào)微積分符號(hào)微分方程3符號(hào)運(yùn)算的基本操作什么是符號(hào)運(yùn)算

與數(shù)值運(yùn)算的區(qū)別

數(shù)值運(yùn)算中必須先對(duì)變量賦值,然后才能參與運(yùn)算。

符號(hào)運(yùn)算無(wú)須事先對(duì)變量賦值,運(yùn)算結(jié)果以標(biāo)準(zhǔn)的符號(hào)形式表達(dá)。 4特點(diǎn):運(yùn)算對(duì)象可以是沒(méi)賦值的符號(hào)變量,以推理解析的方式進(jìn)行,因此不受計(jì)算誤差累積所帶來(lái)的困擾。可以給出完全正確的封閉解或任意精度的數(shù)值解(當(dāng)封閉解不存在時(shí))。③符號(hào)計(jì)算指令的調(diào)用簡(jiǎn)單,和經(jīng)典教科書公式相近。④計(jì)算所需的時(shí)間較長(zhǎng)。

5SymbolicMathToolboxforMATLAB較早版本的符號(hào)引擎為Maple,在MatlabR2008b(7.7)以后,默認(rèn)符號(hào)計(jì)算引擎為“MuPAD”,但是如果用戶安裝了與matlab版本相配套的Maple和MapleToolboxforMatlab,用戶可以選擇使用“MuPAD”或“Maple”作為默認(rèn)的符號(hào)引擎。

符號(hào)對(duì)象符號(hào)數(shù)學(xué)工具箱中定義了一種新的數(shù)據(jù)類型:符號(hào)對(duì)象,符號(hào)對(duì)象可以表示符號(hào)變量、符號(hào)常量、符號(hào)矩陣符號(hào)對(duì)象創(chuàng)建相關(guān)指令為:sym()和syms()

(symbolic的縮寫)符號(hào)對(duì)象sym()調(diào)用格式:S=sym(A,flag),A是一個(gè)數(shù)字、數(shù)值矩陣或數(shù)值表達(dá)式,輸出將數(shù)值對(duì)象轉(zhuǎn)換為符號(hào)對(duì)象。S=sym(‘A’,flag),A是一個(gè)字符串,輸出將字符串轉(zhuǎn)換為符號(hào)對(duì)象。如果被轉(zhuǎn)換對(duì)象為數(shù)值對(duì)象,flag表示轉(zhuǎn)換的符號(hào)對(duì)象應(yīng)該符合的格式:‘d’---十進(jìn)制表示,有效位數(shù)由digits確定‘e’---帶估計(jì)誤差的有理表示‘f’---浮點(diǎn)表示‘r’---為缺省設(shè)置,最接近有理表示的形式符號(hào)對(duì)象>>digits(10);>>sym(1/3+1/2,'d')ans=0.8333333333>>sym(1/3+1/2,'e')

ans=

5/6-eps/3eps,正的極小值2.2204e-016>>sym(1/3+1/2,'f')

ans=3752999689475413/4503599627370496

N*2^eforintegersNande.>>sym(1/3+1/2,'r')

ans=

5/6符號(hào)對(duì)象如果被轉(zhuǎn)換對(duì)象為字符串,flag:‘positive’---限定S為正的實(shí)型符號(hào)變量‘real’---限定S為實(shí)型符號(hào)變量‘unreal’---限定S為非實(shí)型符號(hào)變量syms()調(diào)用格式:symsabcd符號(hào)常量當(dāng)數(shù)值常量作為sym()的輸入?yún)⒘繒r(shí),就建立了一個(gè)符號(hào)對(duì)象——符號(hào)常量。雖然看上去是一個(gè)數(shù)值量,但已經(jīng)是一個(gè)符號(hào)對(duì)象了。例:a=3/4;b='3/4';c=sym(3/4);d=sym('3/4');whos查看變量類型a為實(shí)雙精度浮點(diǎn)數(shù)值類型;b為字符類型;c和d都是符號(hào)對(duì)象類型。符號(hào)變量符號(hào)變量是內(nèi)容可變的符號(hào)對(duì)象。符號(hào)變量通常是指一個(gè)或幾個(gè)特定的字符,不是指符號(hào)表達(dá)式,可以將一個(gè)符號(hào)表達(dá)式賦值給一個(gè)符號(hào)變量。符號(hào)變量有時(shí)也稱自由變量,它的命名規(guī)則和數(shù)值變量的命名規(guī)則相同。例:用函數(shù)命令sym()和syms()來(lái)創(chuàng)建符號(hào)變量,并檢測(cè)數(shù)據(jù)類型。a=sym('a')b=sym('c')classa=class(a)classb=class(b)注意兩個(gè)a的區(qū)別,可看出a,b兩個(gè)變量均為符號(hào)對(duì)象symsabcdefghwhos也可以查看所有變量類型從上述比較來(lái)看:當(dāng)需要同時(shí)定義多個(gè)符號(hào)變量時(shí),使用syms()更簡(jiǎn)潔一些。sym和syms區(qū)別syms可以同時(shí)定義多個(gè)符號(hào)變量,sym一次定義一個(gè)符號(hào)變量;sym可以在定義時(shí),同時(shí)把變量賦給另外一個(gè)符號(hào)變量,如p=sym('q')syms是定義符號(hào)變量,sym將數(shù)字、字符或者表達(dá)式轉(zhuǎn)換為符號(hào)對(duì)象比如:symsxy%定義了符號(hào)變量x,y,以后x,y就可以直接使用了,由x,y參與運(yùn)算的結(jié)果也是符號(hào)變量sym('a+b')%將a+b轉(zhuǎn)化為符號(hào)表達(dá)式13由符號(hào)變量構(gòu)成的符號(hào)函數(shù)和符號(hào)方程符號(hào)表達(dá)式是由符號(hào)常量、符號(hào)變量、符號(hào)函數(shù)運(yùn)算符以及專用函數(shù)連接起來(lái)的符號(hào)對(duì)象。包括:符號(hào)函數(shù)和符號(hào)方程。判斷看帶不帶等號(hào)。符號(hào)函數(shù)不帶等號(hào),符號(hào)方程帶等號(hào)采用sym()和syms()來(lái)建立符號(hào)表達(dá)式例:symsxyz;f1=x*y/z;f2=x^2+y^2+z^2;f3=f1/f2;%符號(hào)函數(shù)

e1=sym('sin(x)^2+2*cos(x)=1')

e2=sym(‘Dy-y=x’)%符號(hào)方程符號(hào)矩陣的創(chuàng)建元素是符號(hào)對(duì)象(符號(hào)變量、符號(hào)常量、符號(hào)表達(dá)式、)的矩陣數(shù)值矩陣A=[1,2;3,4]A=[a,b;c,d]——不識(shí)別用Matlab函數(shù)sym創(chuàng)建矩陣,矩陣含有字符命令格式:A=sym('[]')※符號(hào)矩陣內(nèi)容同數(shù)值矩陣

※需用sym指令定義,需用''標(biāo)識(shí)

※注意與'[a,b;c,d]'的區(qū)別例如:A=sym('[a,2*b;3*a,0]')A=[a,2*b][3*a,0]

這就完成了一個(gè)符號(hào)矩陣的創(chuàng)建。注意:符號(hào)矩陣的每一行的兩端都有方括號(hào),這是與Matlab數(shù)值矩陣的一個(gè)重要區(qū)別。將數(shù)值矩陣轉(zhuǎn)化為符號(hào)矩陣函數(shù)調(diào)用格式:sym(A)A=[1/3,2.5;1/0.7,2/5]A=0.33332.50001.42860.4000sym(A)ans=[1/3,5/2][10/7,2/5]符號(hào)矩陣與數(shù)值矩陣的轉(zhuǎn)換18將符號(hào)矩陣轉(zhuǎn)化為數(shù)值矩陣函數(shù)調(diào)用格式:double(A)A=[1/3,5/2][10/7,2/5]double(A)ans=0.33332.50001.42860.4000由于Matlab7.0采用了重載技術(shù),使得符號(hào)計(jì)算表達(dá)式的運(yùn)算符和基本函數(shù),無(wú)論在形狀、名稱上,還是在使用方法上,都與數(shù)值計(jì)算中的運(yùn)算符和基本函數(shù)幾乎完全相同。這無(wú)疑給用戶帶來(lái)了極大的方便。例外:在符號(hào)對(duì)象的比較中,沒(méi)有”大于”、”大于等于”、”小于”、”小于等于”的概念,而只有是否“等于”的概念。符號(hào)運(yùn)算任意精度的數(shù)學(xué)運(yùn)算在symbolic中有三種不同的算術(shù)運(yùn)算:數(shù)值類型matlab的浮點(diǎn)算術(shù)運(yùn)算有理數(shù)類型精確符號(hào)運(yùn)算vpa類型任意精度算術(shù)運(yùn)算任意精度的數(shù)學(xué)運(yùn)算數(shù)值類型:浮點(diǎn)運(yùn)算是最快的運(yùn)算,需要的計(jì)算機(jī)內(nèi)存最小,但結(jié)果不精確,存在舍入誤差。有理數(shù)類型:計(jì)算時(shí)間和內(nèi)存最大,結(jié)果精確。vpa類型從精確解中獲得任意精度的解。浮點(diǎn)算術(shù)運(yùn)算formatlong--(定義輸出格式,顯示15位十進(jìn)制數(shù))

1/2+1/3ans=0.833333333333333符號(hào)運(yùn)算sym(1/2+1/3)ans=5/6--精確解任意精度算術(shù)運(yùn)算digits(n)——設(shè)置近似解的精度為n位有效數(shù)字,默認(rèn)32位有效數(shù)字。vpa(x,n)——求符號(hào)解的近似解,該近似解的有效位數(shù)由n來(lái)決定。digits(25)vpa(1/2+1/3)ans=.8333333333333333333333333vpa(5/6,40)ans=.8333333333333333333333333333333333333333

a=sym('[1/4,exp(1);log(3),3/7]')a=[1/4,exp(1)][log(3),3/7]vpa(a,10)ans=[.2500000000,2.718281828][1.098612289,.4285714286]符號(hào)表達(dá)式的化簡(jiǎn)可以對(duì)符號(hào)計(jì)算結(jié)果進(jìn)行簡(jiǎn)化,諸如因式分解、同類項(xiàng)合并、符號(hào)表達(dá)式的展開、符號(hào)表達(dá)式的化簡(jiǎn)等等。合并同類項(xiàng)collect(v)----將表達(dá)式v的相同次冪的項(xiàng)合并。例:symsxt%定義基本變量

f=(x-1)*(x-2)*(x-3)%定義符號(hào)表達(dá)式

collect(f)%合并f中x的同類項(xiàng)ans=x^3-6*x^2+11*x-6expand(s)將s中的各項(xiàng)進(jìn)行展開,用于多項(xiàng)式,三角函數(shù)、指數(shù)函數(shù)、對(duì)數(shù)函數(shù)。例:symsxy;f=(x+y)^3;f1=expand(f)f1=x^3+3*x^2*y+3*x*y^2+y^3例:h=cos(x-y)expand(h)ans=cos(x)*cos(y)+sin(x)*sin(y)factor(S)將系數(shù)為有理數(shù)的多項(xiàng)式(矩陣)S,表示成低階多項(xiàng)式相乘的形式,如果不能分解,則返回S本身。例:symsxyfactor(x^3-y^3)ans=(x-y)*(x^2+x*y+y^2)simplify()該函數(shù)是一個(gè)強(qiáng)有力的具有普遍意義的工具,它利用化簡(jiǎn)規(guī)則對(duì)表達(dá)式進(jìn)行簡(jiǎn)化。例:S=sym('[(x^2+5*x+6)/(x+2);sqrt(16)]')simplify(S)ans=x+34simple()用幾種不同的算術(shù)簡(jiǎn)化規(guī)則對(duì)符號(hào)表達(dá)式進(jìn)行簡(jiǎn)化,使其用最少的字符來(lái)表示。雖然并非表達(dá)式中的字符越少,表達(dá)式就越簡(jiǎn)單,但采用這個(gè)標(biāo)準(zhǔn)往往能夠得到滿意的結(jié)果,尤其是對(duì)于包含三角函數(shù)的表達(dá)式。例:symsxsimple(cos(x)^2+sin(x)^2)ans=130simplify:1

radsimp:cos(x)^2+sin(x)^2

simplify(100):1

combine(sincos):1

combine(sinhcosh):cos(x)^2+sin(x)^2combine(ln):cos(x)^2+sin(x)^2

Factor:cos(x)^2+sin(x)^2

Expand:

cos(x)^2+sin(x)^2

Combine:cos(x)^2+sin(x)^2

rewrite(exp):((1/exp(x*i))/2+exp(x*i)/2)^2+(((1/exp(x*i))*i)/2-(exp(x*i)*i)/2)^2

rewrite(sincos):cos(x)^2+sin(x)^2rewrite(sinhcosh):cosh(-x*i)^2-sinh(-i*x)^2

rewrite(tan):(tan(x/2)^2-1)^2/(tan(x/2)^2+1)^2+(4*tan(x/2)^2)/(tan(x/2)^2+1)^2mwcos2sin:1

collect(x):cos(x)^2+sin(x)^2ans=1diff(f)—對(duì)默認(rèn)變量求f的微分,默認(rèn)變量由symvar或findsym函數(shù)確定。diff(f,v)—對(duì)指定變量v求微分diff(f,n)—對(duì)默認(rèn)變量求n階微分diff(f,v,n)—對(duì)指定變量v求f的n階微分例:symsaxf=sin(a*x)df=diff(f)dfa=diff(f,a,2)符號(hào)微分與積分變換符號(hào)變量查詢symvar(S)或findsym(S)返回S中包含的所有符號(hào)變量,按字母排序,大寫在小寫前面symvar(S,N)返回N個(gè)最靠近‘x’的符號(hào)變量。pi,i,j不返回symvar(alpha+a+b)返回a,alpha,bsymvar(cos(alpha)*b*x1+14*y,2)返回x1,ysymvar(y*(4+3*i)+6*j)返回y32默認(rèn)(缺?。┓?hào)變量確定x是首選的默認(rèn)變量,其后的次序排列規(guī)則:與x的ASCII碼值之差的絕對(duì)值小的字母優(yōu)先,差絕對(duì)值相同時(shí),ASCII碼值大的字母優(yōu)先大寫字母離小寫x的距離總大于所有小寫字母離x的距離。自動(dòng)識(shí)別默認(rèn)變量時(shí),字母的優(yōu)先次序?yàn)閤,y,w,z,v3334符號(hào)表達(dá)式的極限limit(F,x,a)求當(dāng)x→a時(shí),表達(dá)式F的極限limit(F,a)默認(rèn)自變量趨于a的極限limit(F)默認(rèn)自變量趨于0的極限值limit(F,x,a,'left')取F的左極限limit(F,x,a,'right')取F的右極限例:symshnxdc=limit((sin(x+h)-sin(x))/h,h,0)

%使用極限函數(shù),按照導(dǎo)數(shù)的定義求sin的導(dǎo)數(shù)。注意:對(duì)于極限不存在,返回NaN例:limit(1/x,x,0)limit(1/x,x,0,'left')limit(1/x,x,0,'right')結(jié)果分別為:ans=NaNans=-Infans=Infint(f)—對(duì)f表達(dá)式的默認(rèn)變量求不定積分int(f,v)—對(duì)f表達(dá)式的v變量求不定積分int(f,v,a,b)—對(duì)f表達(dá)式的v變量在(a,b)區(qū)間求定積分

注意:當(dāng)函數(shù)的積分不存在時(shí),Matlab7.0將簡(jiǎn)單地返回原來(lái)的積分表達(dá)式。符號(hào)表達(dá)式的積分int(‘被積表達(dá)式’,‘積分變量’,‘積分下限’,

‘積分上限')——定積分——缺省時(shí)為不定積分例:int(-2*x/(1+x^2)^2)ans=1/(1+x^2)int(log(x))int(log10(x))int(sin(x),x,-pi,pi)taylor(f,n,v,a)——v=a處的n-1階泰勒級(jí)數(shù)展開例:symsxf=1/(2+cos(x))r=taylor(f,8)%默認(rèn)變量x=0處7階泰勒級(jí)數(shù)展開symsum(f,v,a,b)—表達(dá)式f中變量v從a變到b時(shí)的有限和例:symsxks1=symsum(1/k^2,1,inf)s2=symsum(x^k,k,0,inf)

上述都是求無(wú)窮級(jí)數(shù)的和符號(hào)積分變換ztrans(f)——Z變換iztrans(f)——Z反變換laplace(f)——拉氏變換ilaplace(f)——拉氏反變換fourier(f)——付氏變換ifourier(f)——付氏反變換

注意:上述函數(shù)均缺省了部分參數(shù)

例1.計(jì)算二重不定積分symsxy;F=int(int(x*exp(-x*y),x),y)F=1/(y*exp(x*y))符號(hào)積分的例子

例2.計(jì)算f=x*exp(-x*10)的Z變換

symsx;f=x*exp(-x*10)

F=ztrans(f)F=(z*exp(10))/(z*exp(10)-1)^2符號(hào)積分的例子符號(hào)代數(shù)方程求解

Matlab符號(hào)運(yùn)算能夠解一般的線性方程、非線性方程、超越方程(指數(shù)方程、對(duì)數(shù)方程、三角方程、反三角方程等)。當(dāng)方程組不存在符號(hào)解時(shí),則給出數(shù)值解。命令格式:solve(f,v)——求一個(gè)方程f=0的解,f可以是符號(hào)表達(dá)式,或帶單引號(hào)的字符串。Solve(f1,f2,…fn)——求n個(gè)方程的解

例1.f=ax2+bx+c求解symsabxc;f=a*x^2+b*x+c;solve(f)——對(duì)缺省變量x求解ans=-(b+(b^2-4*a*d)^(1/2))/(2*a)-(b-(b^2-4*a*d)^(1/2))/(2*a)計(jì)算機(jī)格式一般格式例2.符號(hào)方程cos(x)=sin(x)tan(2*x)=sin(x)求解

f1=solve(‘cos(x)=sin(x)’) f1=

1/4*pisolve(f,b)——對(duì)指定變量b求解solve('tan(2*x)=sin(x)')ans=

acos(1/2-3^(1/2)/2)acos(3^(1/2)/2+1/2)0-acos(1/2-3^(1/2)/2)-acos(3^(1/2)/2+1/2)例3.解方程組x+y+z=1x-y+z=22x-y-z=1g1='x+y+z=1',g2='x-y+z=2',g3='2*x-y-z=1'f=solve(g1,g2,g3)f=solve('x+y+z=1','x-y+z=2','2*x-y-z=1')f=solve('x+y+z=1','x-y+z=2','2*x-y-z=1')f=x:[1x1sym] f.x ans=2/3 y:[1x1sym] f.y ans=-1/2z:[1x1sym] f.z ans=5/6

[x,y,z]=solve('x+y+z=1','x-y+z=2','2*x-y-z=1')x=2/3y=-1/2z=5/6符號(hào)微分方程求解

——用一個(gè)函數(shù)可以方便地得到微分方程的符號(hào)解符號(hào)微分方程求解指令:dsolve命令格式:dsolve(f,g,v)f——微分方程,可多至12個(gè)微分方程的求解;g為初始條件或邊界條件。默認(rèn)自變量為‘t’,可任意指定自變量v微分方程的各階導(dǎo)數(shù)項(xiàng)以大寫字母D表示或或或y的一階導(dǎo)數(shù)——Dyy的二階導(dǎo)數(shù)——D2yy的n階導(dǎo)數(shù)——Dny[y1,y2…]=dsolve(f,g,v)——返回微分方程的解一階微分方程dsolve('Dx=y','Dy=x','x(0)=0','y(0)=1')ans=x(t)=exp(t)/2-1/(2*exp(t))---sinh(t)y(t)=1/(2*exp(t))+exp(t)/2----cosh(t)二階微分方程dsolve('D2y=-a^2*y','y(0)=1','Dy(pi/a)=0')ans=(1/exp(a*t*i))/2+exp(a*t*i)/2---cos(a*t)例.y=dsolve('D2y+2*Dy+2*y=0','y(0)=1','Dy(0)=0','x')ans=cos(x)/exp(x)+sin(x)/exp(x)ezplot(y)——方程解y(t)的時(shí)間曲線圖求該方程的解53symsy;X=dsolve('D4y-4*D3y+8*D2y-8*Dy+4*y=2')X=

1/2+C1*exp(t)*cos(t)+C2*exp(t)*sin(t)+C3*exp(t)*cos(t)*t+C4*exp(t)*sin(t)*t54線性常微分方程的解析求解symstyy=dsolve('D4y+11*D3y+41*D2y+61*Dy+30*y=exp(-6*t)*cos(5*t)');>>pretty(simple(y))55兩個(gè)數(shù)學(xué)分析

溫馨提示

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

評(píng)論

0/150

提交評(píng)論