MATLAB的符號(hào)運(yùn)算課件_第1頁
MATLAB的符號(hào)運(yùn)算課件_第2頁
MATLAB的符號(hào)運(yùn)算課件_第3頁
MATLAB的符號(hào)運(yùn)算課件_第4頁
MATLAB的符號(hào)運(yùn)算課件_第5頁
已閱讀5頁,還剩63頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第三章:MATLAB的符號(hào)運(yùn)算符號(hào)對(duì)象和符號(hào)表達(dá)式符號(hào)運(yùn)算:利用推理規(guī)則進(jìn)行的運(yùn)算。

特點(diǎn):精確、表達(dá)簡潔

缺點(diǎn):計(jì)算是邏輯推理,計(jì)算量大,且大量的問題無法利用符號(hào)運(yùn)算得到結(jié)果。數(shù)值計(jì)算:利用計(jì)算機(jī)中的加法器和乘法器進(jìn)行的計(jì)算。計(jì)算是近似計(jì)算,計(jì)算結(jié)果是一組數(shù)據(jù)而不是公式。

特點(diǎn):計(jì)算速度快,可以勝任絕大多數(shù)科學(xué)計(jì)算。

缺點(diǎn):不能進(jìn)行含參數(shù)的計(jì)算和精確推理。在MATLAB的算術(shù)表達(dá)式中,如果有符號(hào)對(duì)象出現(xiàn),則執(zhí)行符號(hào)運(yùn)算,否則執(zhí)行數(shù)值運(yùn)算。符號(hào)對(duì)象的生成:1、利用sym函數(shù),可生成符號(hào)常數(shù)、符號(hào)變量和符號(hào)表達(dá)式。例:>>a=sym(‘1/3’);>>b=sym(‘x’);>>c=sym(‘2*x^3-3*x’);2、利用syms語句語句格式:

symsabc%變量之間用空格分割,不能用逗號(hào)

數(shù)值計(jì)算和符號(hào)運(yùn)算的比較例3:>>x=sym('1/3')x=1/3>>y=x+1/2y=5/6計(jì)算結(jié)果來自一個(gè)精確的推導(dǎo)過程。如果利用如下數(shù)值計(jì)算(算術(shù)表達(dá)式中不含有符號(hào)變量),則得到一個(gè)近似的計(jì)算結(jié)果>>x=sym(‘1/3’);y=x+1/2y=5/6>>y=1/2+1/3y=0.8333

例4:分別利用符號(hào)運(yùn)算和數(shù)值運(yùn)算計(jì)算下面的和式

并比較其計(jì)算速度。s=sym('0');ticfork=1:1000s=s+1/k;endtocs符號(hào)運(yùn)算程序注:Matlab語言中利用tic和toc計(jì)算時(shí)間,語言格式為

tic

程序塊

toc顯示器顯示tic和toc之間的程序塊運(yùn)行時(shí)間運(yùn)行結(jié)果:elapsedtimeis17.471170seconds.s=53362913282294785045591045624042980409652472280384260097101349248456268889497101757506097901985035691409088731550468098378442172117885009464302344326566022502100278425632852081405544941210442510142672770294774712708917963967779610453224692426866468888281582071984897105110796873249319155529397017508931564519976085734473014183284011724412280649074307703736683170055800293659235088589360235285852808160759574737836655413175508131522517/7128865274665093053166384155714272920668358861885893040452001991154324087581111499476444151913871586911717817019575256512980264067621009251465871004305131072686268143200196609974862745937188343705015434452523739745298963145674982128236956232823794011068809262317708861979540791247754558049326475737829923352751796735248042463638051137034331214781746850878453485678021888075373249921995672056932029099390891687487672697950931603520000這個(gè)例子也說明,在實(shí)際計(jì)算中,并不一定精度越高越好。s=0;ticfork=1:1000s=s+1/k;endtocs

運(yùn)行結(jié)果:Elapsedtimeis0.000015seconds.

s=

7.4855數(shù)值運(yùn)算程序注:在符號(hào)運(yùn)算中的數(shù)據(jù)不要用帶小數(shù)點(diǎn)的實(shí)數(shù)和科學(xué)計(jì)數(shù)法表示的數(shù)。這些數(shù)在計(jì)算機(jī)上是以有限位小數(shù)存儲(chǔ)的,在推理過程中不能精確表示。>>s=sym('sin(3/10)')

s=

sin(3/10)

>>s1=sym('sin(0.3)')

s1=

0.29552020666133957510532074568503

例:符號(hào)變量和符號(hào)常數(shù)在符號(hào)運(yùn)算中,常量(參數(shù))和變量都是由符號(hào)表示的。如積分在積分過程中,x是變量,a,b,y是參數(shù)。如果再對(duì)y求導(dǎo)數(shù),則y是變量,a,b是參數(shù)在MATLAB中,在運(yùn)算中變化的符號(hào)變量稱為自由變量。自由變量可以在運(yùn)算過程中指明。如果不指明,則計(jì)算機(jī)默認(rèn)距離x最近的參數(shù)為自由變量。例:符號(hào)方程組的求解符號(hào)運(yùn)算和數(shù)值運(yùn)算的語句描述基本相同。當(dāng)表達(dá)式中有符號(hào)變量時(shí)執(zhí)行符號(hào)運(yùn)算,否則執(zhí)行數(shù)值運(yùn)算。例:解線性方程組

symsa

b

cA=[a212b313c];u=[1;2;1];x=A\u參考程序

x=

(b+4*c-b*c-3)/(9*a+b+4*c-a*b*c-12)(3*a+2*c-2*a*c-3)/(9*a+b+4*c-a*b*c-12)-((a-1)*(b-6))/(9*a+b+4*c-a*b*c-12)

運(yùn)行結(jié)果符號(hào)運(yùn)算可以進(jìn)行含參數(shù)運(yùn)算對(duì)非線性方程(組),可以采用solve函數(shù)求解,函數(shù)調(diào)用格式:y=solve(Eqs,vars)其中,Eqs是方程的集合,vars是所解變量的集合。>>symsabcx>>f=a*x^2+b*x+cf=a*x^2+b*x+c

>>y=solve(f)y=-(b+(b^2-4*a*c)^(1/2))/(2*a)-(b-(b^2-4*a*c)^(1/2))/(2*a)

>>y=solve(f,a)y=-(c+b*x)/x^2

例:求解方程

符號(hào)表達(dá)式符號(hào)表達(dá)式有兩種不同的生成方式:1、直接由sym函數(shù)生成

如:f=sym(‘2*sin(x)+5*cos(x)’)這樣的表達(dá)式稱為串型表達(dá)式。2、利用符號(hào)變量經(jīng)符號(hào)運(yùn)算生成

如:symsxyf=sin(x)+2*cos(y)由于后一種生成方式應(yīng)用更廣,我們推薦使用。符號(hào)對(duì)象的限定

在我們求解數(shù)學(xué)問題時(shí),常常需要限定變量的范圍,如求解一個(gè)方程組時(shí),要求在實(shí)數(shù)域上求解或者求整數(shù)解等。在符號(hào)運(yùn)算中,如果不限定變量的取值,系統(tǒng)默認(rèn)在復(fù)數(shù)域上求解。當(dāng)需要限定變量的取值范圍時(shí),可以利用函數(shù)assume(expr)%expr是關(guān)系表達(dá)式assume(expr,set)%set是數(shù)集如’real’,’integer’,’rational’assumeAlso(expr)assumeAlso(expr,set)還可以直接利用符號(hào)變量定義函數(shù)sym和命令syms直接在定義中限定x=sym(‘x’,set)symsyset符號(hào)對(duì)象的限定的撤銷如果要撤銷對(duì)符號(hào)對(duì)象的限定,可以使用以下的命令或函數(shù):symsxclear%撤銷MuPAD內(nèi)存中對(duì)變量x的限定,恢復(fù)復(fù)數(shù)變量sym(‘x’,’clear’)注1:即使利用clear語句刪除x,并不能改變MuPAD內(nèi)存中對(duì)x的限制設(shè)定,再引入變量x是,仍然帶有這一設(shè)定。注2:symxclear只改變x的限定,并沒有刪除和改變x的值。例:求的解>>clear>>symsx>>solve(3*x^2+5*x+1)

ans=

-13^(1/2)/6-5/613^(1/2)/6-5/6>>assume(x>=-5/6)>>solve(3*x^2+5*x+1)

ans=

13^(1/2)/6-5/6例:求方程的根求復(fù)數(shù)根ans=

-1/21/4-(79^(1/2)*i)/4(79^(1/2)*i)/4+1/4symsxf=x^3+475*x/100+5/2;solve(f)求實(shí)數(shù)根>>symsx'real'>>solve(x^3+475*x/100+5/2)

ans=

-1/2求第一象限的根>>symsx'clear'>>assume(real(x)>=0)>>assumeAlso(imag(x)>=0)>>solve(x^3+475*x/100+5/2)

ans=

(79^(1/2)*i)/4+1/4符號(hào)數(shù)字和表達(dá)式的操作符號(hào)數(shù)字轉(zhuǎn)換為雙精度數(shù)字N=double(sym_num)符號(hào)數(shù)字的任意精度表達(dá)形式在科學(xué)計(jì)算中,由于符號(hào)計(jì)算的結(jié)果表達(dá)經(jīng)常過于繁瑣,經(jīng)常需要作近似表達(dá)來簡化公式。Matlab中可以把精確的符號(hào)運(yùn)算結(jié)果轉(zhuǎn)換為“任意精度的符號(hào)數(shù)”。轉(zhuǎn)換命令為digits(n)xs=vpa(x,n)在科學(xué)計(jì)算中,由于符號(hào)計(jì)算的結(jié)果表達(dá)經(jīng)常過于繁瑣,經(jīng)常需要作近似表達(dá)來簡化公式。Matlab中可以把精確的符號(hào)運(yùn)算結(jié)果轉(zhuǎn)換為“任意精度的符號(hào)數(shù)”。轉(zhuǎn)換命令為digits(n)xs=vpa(x,n)注1:如果digits,機(jī)器默認(rèn)為32位。注2:命令vpa受它之前的命令digits控制。注3:x可以是符號(hào)變量、字符串和雙精度數(shù)值變量。例:計(jì)算reset(symengine)a=sym('2');sa=sqrt(a)+1/3sa=

2^(1/2)+1/3formatlongsa=sym('sqrt(2)+1/3')a1=sqrt(2)+1/3;sa_1=vpa(sa+a1,20)sa=

2^(1/2)+1/3

sa_1=

3.4950937914128567869例:計(jì)算

>>aa=sym('acos(-1)')aa=pi

>>vpa(aa,200)ans=3.141592653589793238462643383279502884197169399375105820974944592307816406286208998628034825342117067982148086513282306647093844609550582231725359408128481117450284102701938521105559644622948954930382例:計(jì)算的位數(shù)>>digits(50)>>vpa(aa)ans=3.1415926535897932384626433832795028841971693993751>>vpa(aa,7)ans=3.141593

>>vpa(aa)ans=

3.1415926535897932384626433832795028841971693993751符號(hào)表達(dá)式:

符號(hào)表達(dá)式和數(shù)值表達(dá)式形式相同,只是表達(dá)式中含有符號(hào)變量或符號(hào)常數(shù)。符號(hào)表達(dá)式的操作函數(shù):g=collect(f)%合并同類項(xiàng)g1=collect(f,var)h=expand(f)%多項(xiàng)式展開h1=expand(f,name,value)y=simplify(f)%公式化簡y=simplify(f,name,value)yy=factor(f)%因子分解或因式分解>>symsx>>expand((x+1)^6)

ans=

x^6+6*x^5+15*x^4+20*x^3+15*x^2+6*x+1>>expand(sin(6*x))

ans=

6*cos(x)*sin(x)-32*cos(x)^3*sin(x)+32*cos(x)^5*sin(x)expand的用法>>symsxcollect((exp(x)+x)*(x+2))

ans=

x^2+(exp(x)+2)*x+2*exp(x)symsxycollect(x^2*y+y*x-x^2-2*x,x)collect(x^2*y+y*x-x^2-2*x,y)ans=

(y-1)*x^2+(y-2)*x

ans=

(x^2+x)*y-x^2-2*xcollect的用法>>y=expand((x-1)*(x+2)^4)

y=

x^5+7*x^4+16*x^3+8*x^2-16*x-16

>>z=simplify(y)

z=

(x-1)*(x+2)^4>>yy=expand(sin(5*x))

yy=

sin(x)-12*cos(x)^2*sin(x)+16*cos(x)^4*sin(x)

>>simplify(yy)

ans=

sin(5*x)simplify的用法舉例例:化簡公式>>symsxf=(1/x^3+6/x^2+12/x+8)^(1/3)g1=simplify(f)f=(12/x+6/x^2+1/x^3+8)^(1/3)g1=((2*x+1)^3/x^3)^(1/3)

>>g1=simplify(f)g1=((2*x+1)^3/x^3)^(1/3)

>>g1=simplify(f,'IgnoreAnalyticConstraints',true)

g1=

(2*x+1)/x矩陣和數(shù)組的其他數(shù)學(xué)符號(hào)運(yùn)算矩陣運(yùn)算:inv,eig,det等矩陣函數(shù)可以進(jìn)行符號(hào)運(yùn)算>>a=sym('1');

>>A=[a,1/2;1/3,4];>>D=det(A)

D=

23/6>>E=inv(A)

E=

[24/23,-3/23][-2/23,6/23]>>F=eig(A)

F=

5/2-(3^(1/2)*29^(1/2))/6(3^(1/2)*29^(1/2))/6+5/2數(shù)組的符號(hào)運(yùn)算符號(hào)運(yùn)算的許多函數(shù)可以應(yīng)用于數(shù)組運(yùn)算。例如>>symsx>>A=[(x-1)^5;(x+1)^4]A=

(x-1)^5(x+1)^4

>>B=expand(A)B=

x^5-5*x^4+10*x^3-10*x^2+5*x-1x^4+4*x^3+6*x^2+4*x+1符號(hào)表達(dá)式的置換操作符號(hào)運(yùn)算導(dǎo)出的符號(hào)表達(dá)式常常是很復(fù)雜的。一個(gè)重要原因是同樣的式子在表達(dá)式不同位置的重復(fù)出現(xiàn)。為了簡化表示,MATLAB給出了把同樣的式子簡化表示的命令:RS=subexpr(S)%從公式中提取公因式sigma,并把sigma代替公式中的S。RS=subexpr(S,’w’)%從公式中提取公因式sigma,并把sigma代替公式中的S。>>A=sym([1,2;3,4])

A=

[1,2][3,4]

>>S=eig(A)

S=

5/2-33^(1/2)/233^(1/2)/2+5/2

>>subexpr(S)

sigma=

33^(1/2)

ans=

5/2-sigma/2sigma/2+5/2>>subexpr(S,'w')

w=

33^(1/2)

ans=

5/2-w/2w/2+5/2通用置換命令RES=subs(ES,old,new)%用new置換ES中的old后產(chǎn)生的符號(hào)結(jié)果RES=subs(ES,new)%用new置換ES中的自由變量后產(chǎn)生的符號(hào)結(jié)果>>symsabx>>f=a+b*sin(x)

f=

a+b*sin(x)

>>g1=subs(f,sin(x),log(x))

g1=

a+b*log(x)>>g=subs(f,sin(x),'log(x)')

g=

a+b*log(x)symsa

b

xf=a+b*sin(x);t=0:pi/20:2*pi;y=subs(f,{a,b,x},{2,3,t});plot(t,y)符號(hào)微積分極限運(yùn)算語句格式

G=limit(F);%表達(dá)式F中變量趨向于0的極限

G=limit(F,a);%表達(dá)式F中變量趨向于a的極限

G=limit(F,v,a);%表達(dá)式F中變量v趨向于a的極限

G=limit(F,v,a,’right’);%表達(dá)式F中變量趨向于a的右極限。例:計(jì)算>>symsx>>f=((1-x)/(1+x))^(2/x)f=(-(x-1)/(x+1))^(2/x)>>g=limit(f,0)ans=1/exp(4)vpa(g,40)ans=

0.01831563888873418029371802127324124221191例:計(jì)算

>>symsxyz>>f=sin(x*y)/sin(x*z)f=sin(x*y)/sin(x*z)>>limit(f,x,0)ans=y/z注:如果不在語句中指明對(duì)哪一個(gè)變量求極限,則matlab規(guī)定對(duì)距離x最近的變量求極限。例如,上例中的求極限語句也可以寫為>>limit(f)ans=y/z導(dǎo)數(shù)的符號(hào)運(yùn)算求導(dǎo)數(shù)的語句為

df=diff(F)%求表達(dá)式F的一階導(dǎo)數(shù)

df=diff(F,n)%求表達(dá)式F的n階導(dǎo)數(shù)

df=diff(F,u,n)%求表達(dá)式F的關(guān)于變量u的n階導(dǎo)數(shù)例:求函數(shù)的二階導(dǎo)數(shù)。

>>f=sin(x)/xf=sin(x)/x>>diff(f,2)ans=(2*sin(x))/x^3-sin(x)/x-(2*cos(x))/x^2例:求函數(shù)關(guān)于x和y的二階偏導(dǎo)數(shù)。>>f=(x-y)/(x+y)f=(x-y)/(x+y)>>d2fx=diff(f,x,2)d2fx=(2*(x-y))/(x+y)^3-2/(x+y)^2>>d2fy=diff(f,y,2)d2fy=2/(x+y)^2+(2*(x-y))/(x+y)^3>>dfxy=diff(diff(f,y),x)dfxy=(2*(x-y))/(x+y)^3例3.7:求

>>f=[x^2*sin(x)exp(x)*cos(x)log(1+x^2)atan(x)];>>diff(f)ans=[x^2*cos(x)+2*x*sin(x),exp(x)*cos(x)-exp(x)*sin(x)][(2*x)/(x^2+1),a/(x^2+1)]函數(shù)的積分

I=int(F);%求函數(shù)表達(dá)式F的不定積分

I=int(F,v);%求函數(shù)表達(dá)式F關(guān)于變量v的不定積分

I=int(F,a,b);%求函數(shù)表達(dá)式F在區(qū)間[a,b]上的定積分

I=int(F,v,a,b);%求函數(shù)表達(dá)式F在區(qū)間[a,b]上的關(guān)于變量v的定積分例:求不定積分

>>symsabx>>I=int(exp(a*x)*cos(b*x),x)I=(exp(a*x)*(a*cos(b*x)+b*sin(b*x)))/(a^2+b^2)例3.9:求定積分>>symsx>>I=int(sin(x)^15,x,0,pi/2)I=2048/6435級(jí)數(shù)的符號(hào)計(jì)算級(jí)數(shù)符號(hào)計(jì)算的基本語句S=symsum(g);%求通項(xiàng)g的無窮和S=symsum(g,n)%求通項(xiàng)g的對(duì)整變量n的無窮和S=symsum(g,a,b)%求通項(xiàng)g的下標(biāo)在a和b之間的項(xiàng)的和S=symsum(g,n,a,b)%求通項(xiàng)g的下標(biāo)變量n在a和b之間的項(xiàng)的和符號(hào)運(yùn)算小結(jié)基本內(nèi)容符號(hào)對(duì)象的建立sym函數(shù)syms語句符號(hào)表達(dá)式自由變量的設(shè)定符號(hào)表達(dá)式的創(chuàng)建符號(hào)對(duì)象的識(shí)別U=class(var)V=isa(var,‘obj’)whos符號(hào)變量的限定assumeassume(關(guān)系表達(dá)式)assume(expr,set)assumeAlso在建立符號(hào)對(duì)象時(shí)限定symsaseta=sym(‘a(chǎn)’,set)清除變量clearabcclear清除符號(hào)對(duì)象的限定symsxclearx=sym(‘x’,’clear’)顯示符號(hào)變量的限定假設(shè)assumptions(x)assumptions重啟MuPad引擎reset(symengine)方程組的求解y=solve(expr,u)y=solve(expr)符號(hào)數(shù)字的操作轉(zhuǎn)換成數(shù)值數(shù)據(jù)a=float(‘s’)a=double(b)顯示有限位小數(shù)digit(n)Xs=vpa(x,n)Xs=vpa(x)>>symsabc>>x=12.34x=12.3400>>s=class(a)s=sym>>s1=class(x)s1=double>>s2=isa(a,'sym')s2=1>>symsabcx>>g(a,b,c)=a*x^2+b*x+c

g(a,b,c)=

a*x^2+b*x+c

>>solve(g(2,5,3))

ans=

-3/2-1

>>符號(hào)表達(dá)式的含參數(shù)表示符號(hào)變量的限制舉例例:計(jì)算函數(shù)y=sin|x|在x=0處的左右導(dǎo)數(shù)。clearclcreset(symengine)symsd

positivesymsxf=sin(abs(x));

dp_r=limit((subs(f,x,d)-subs(f,x,0))/d,d,0)

dp_l=limit((subs(f,x,-d)-subs(f,x,0))/-d,d,0)dp_r=1

dp_l=-1由于在x=0處不可導(dǎo),直接利用diff函數(shù)會(huì)得到錯(cuò)誤結(jié)果>>symsabcx>>f=3*x^6-2*x^3+1f=3*x^6-2*x^3+1

>>g=solve(f)g=

(1/3-(2^(1/2)*i)/3)^(1/3)((2^(1/2)*i)/3+1/3)^(1/3)((3^(1/2)*i)/2-1/2)*(1/3-(2^(1/2)*i)/3)^(1/3)((3^(1/2)*i)/2-1/2)*((2^(1/2)*i)/3+1/3)^(1/3)-((3^(1/2)*i)/2+1/2)*(1/3-(2^(1/2)*i)/3)^(1/3)-((3^(1/2)*i)/2+1/2)*((2^(1/2)*i)/3+1/3)^(1/3)

>>g1=vpa(g)

g1=

0.79082031370025840073956202522563-0.26070003028319655345898965670408*i0.79082031370025840073956202522563+0.26070003028319655345898965670408*i-0.16963730785750852206563609650233+0.81522049663480099614640327649282*i-0.6211830058427498786739259287233+0.55452046635160444268741361978875*i-0.6211830058427498786739259287233-0.55452046635160444268741361978875*i-0.16963730785750852206563609650233-0.81522049663480099614640327649282*i求解方程3x^6-2x^3+1=0>>u=isa(g1,'sym')u=1>>g1=vpa(g)g1=0.79082031370025840073956202522563-0.26070003028319655345898965670408*i0.79082031370025840073956202522563+0.26070003028319655345898965670408*i-0.16963730785750852206563609650233+0.81522049663480099614640327649282*i-0.6211830058427498786739259287233+0.55452046635160444268741361978875*i-0.6211830058427498786739259287233-0.55452046635160444268741361978875*i-0.16963730785750852206563609650233-0.81522049663480099614640327649282*i>>v=double(g)v=0.7908-0.2607i0.7908+0.2607i-0.1696+0.8152i-0.6212+0.5545i-0.6212-0.5545i-0.1696-0.8152i>>class(v)ans=double注:vpa顯示的有限位小數(shù)仍然是符號(hào)常數(shù)表達(dá)式中的置換操作公因子簡化表達(dá)通用置換命令rs=subexpr(s)rs=subexpr(s,’w’)Re=subs(f,old,new)Re=subs(f,{參數(shù)集},{data})>>symsabcx>>f=a*x^4+b*x^3-c

f=

a*x^4+b*x^3-c

>>s=1:20;>>fs=subs(f,{a,b,c,x},{5,3,6,s});>>plot(s,fs)subs語句使用的例子symsa

b

c

xf(a,b,c)=a*x^4+b*x^3-c

s=0:0.1:10;f1=subs(f(5,3,6),x,s);plot(s,f1)上面的程序也可以改寫為:>>symsxy>>f=x*yf=

x*y

>>[x1,y1]=meshgrid(-5:0.2:5,-5:0.2:5);>>f1=subs(f,{x,y},{x1,y1});>>mesh(x1,y1,f1)符號(hào)微積分極限運(yùn)算導(dǎo)數(shù)運(yùn)算積分運(yùn)算不定積分定積分求和(無窮級(jí)數(shù))一般級(jí)數(shù)求和Taylor展式Jacobian矩陣G=limit(F,v,a,’right’);df=diff(F,u,n)I=int(F,v,a,b)I=int(F,v)S=symsum(g,n,a,b)參數(shù)的省略規(guī)則taylor(f,v,a,Name,Value)上述函數(shù)適合于數(shù)組運(yùn)算>>symsxa>>f=sin(a*abs(x))

f=

sin(a*abs(x))

>>t=-10:0.1:10;>>f1=subs(f,{a,x},{2,t});>>plot(t,f1)計(jì)算:f=sin(a|x|)>>symsxy>>f=exp(-y^2)

f=

exp(-y^2)

>>g=int(f,0,x)

g=

(pi^(1/2)*erf(x))/2

>>t=-5:0.2:5;>>g1=subs(g,x,t);>>plot(t,g1)例:繪制的圖形

例:計(jì)算三重積分

symsx

y

zf=x^2+y^2+z^2;g=int(int(int(f,z,sqrt(x*y),x^2*y),y,sqrt(x),x^2),1,2)g=

(14912*2^(1/4))/4641-(6072064*2^(1/2))/348075+(64*2^(3/4))/225+1610027357/6563700>>vpa(g)

ans=

224.92153573331143159790710032805例:繪制函數(shù)sin(x)/x的各階馬克勞林展式symsxf=sin(x)/x;f6=taylor(f)f8=taylor(f,'Order',8)f10=taylor(f,'Order',10)ezplot(f6,[-4,4])holdonezplot(f8,[-4,4])ezplot(f10,[-4,4])ezplot(f,[-4,4])legend('approximationofsin(x)/xuptoO(x^6)',...'approximationofsin(x)/xuptoO(x^8)',...'approximationofsin(x)/xuptoO(x^1^0)',’sin(x)/x','Location','South')title('TaylorSeriesExpansion')holdoff例:設(shè)求隱函數(shù)

clearclcsymsx

yf(x,y)=sym('cos(x+sin(y(x)))==sin(y(x))')dfdx=diff(f,x)f(x,y)=cos(x+sin(y(x)))==sin(y(x))

dfdx(x,y)=-sin(x+sin(y(x)))*(D(y)(x)*cos(y(x))+1)==D(y)(x)*cos(y(x))用新變量名dfdx代換D(y)(x):dfdx1(x,y)=

-sin(x+sin(y(x)))*(dydx*cos(y(x))+1)==dydx*cos(y(x))dfdx1=subs(dfdx,'D(y)(x)','dydx')解出dydx:dydx=

-sin(x+sin(y(x)))/(cos(y(x))*(sin(x+sin(y(x)))+1))dydx=simplify(solve(dfdx1,'dydx'))微分方程的符號(hào)求解常微分方程(組)的符號(hào)運(yùn)算函數(shù)為dsolve,調(diào)用格式為

變量=dsolve(eq1,eq2,…);其中equ1,equ2等是字符串,描述微分方程。方程形式與solve語句中類似,其中的導(dǎo)數(shù)項(xiàng)利用D表示,Dy,D2y分別描述y的一階和二階導(dǎo)數(shù)。初值和邊值條件也利用方程描述。dsolve函數(shù)可以得到一般解和奇解。例:求解方程并畫出解曲線。

clearally=dsolve('(Dy)^2-t*Dy+y=0','t')clfhy1=ezplot(y(1),[-6,6,-4,8],1)holdonset(hy1,'Color',[100],'LineWidth',3)Sv=symvar(y(2));fork=-2:0.2:2y2=subs(y(2),Sv(1),k);ezplot(y2

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論