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

下載本文檔

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

文檔簡(jiǎn)介

MATLAB的符號(hào)運(yùn)算前面介紹的內(nèi)容基本上是MATLAB的數(shù)值計(jì)算功能,參與運(yùn)算過程的變量都是被賦了值的數(shù)值變量.在MATLAB環(huán)境下,符號(hào)運(yùn)算是指參與運(yùn)算的變量都是符號(hào)變量,即使是數(shù)字也認(rèn)為是符號(hào)變量. 數(shù)值變量和符號(hào)變量是不同的.1 符號(hào)微積分下面著重介紹一些與微積分有關(guān)的指令,這些指令都需要符號(hào)表達(dá)式作為輸入宗量.求和symsum(S) 對(duì)通項(xiàng)S求和,其中k為變量且從0變到k-1.symsum(S,v) 對(duì)通項(xiàng)S求和,指定其中v為變量且v從0變到v-1.symsum(S,a,b) 對(duì)通項(xiàng)S求和,其中k為變量且從a變到b.symsum(S,v,a,b) 對(duì)通項(xiàng)S求和,指定其中v為變量且v從a變到b.例:求,鍵入k=sym(k) % k是一個(gè)符號(hào)變量;symsum(k) 得 ans = 1/2*k2-1/2*k 例:求,鍵入:symsum(k2,0,10)得 ans = 385 例:求鍵入symsum(xk/sym(k!),k,0,inf),得 ans = exp(x) 這最后的一個(gè)例子是無窮項(xiàng)求和.求極限limit(P) 表達(dá)式P中自變量趨于零時(shí)的極限limit(P,a) 表達(dá)式P中自變量趨于a時(shí)的極限limit(P,x,a,left) 表達(dá)式P中自變量x趨于a時(shí)的左極限limit(P,x,a,right) 表達(dá)式P中自變量x趨于a時(shí)的右極限例:求,鍵入 P=sym(sin(x)/x); limit(P) 得 ans = 1 例:求 鍵入P=sym(1/x);limit(P,x,0,right) 得 ans = inf 例:求,鍵入:P=sym(sin(x+h)-sin(x)/h);h=sym(h);limit(P,h,0) 得ans = cos(x) 例:求, 鍵入 v=sym(1+a/x)x,exp(-x); limit(v,x,inf,left) 得 ans = exp(a), 0 求導(dǎo)數(shù) diff(S,v) 求表達(dá)式S對(duì)變量v的一階導(dǎo)數(shù). diff(S,v,n) 求表達(dá)式S對(duì)變量v的n階導(dǎo)數(shù).例如:設(shè)A=,求鍵入命令:syms a b x;A= 1/(1+a),(b+x)/cos(x);1,exp(x2); diff(A,x) 得 ans = 0, 1/cos(x)+(b+x)/cos(x)2*sin(x) 0, 2*x*exp(x2) 例:求y=sinx+ex的三階導(dǎo)數(shù),鍵入命令: diff(sin(x)+x*exp(x),3) 得 ans = -cos(x)+3*exp(x)+x*exp(x) 例:設(shè),求A的先對(duì)x再對(duì)y的混合偏導(dǎo)數(shù).可鍵入命令: S=sym(x*sin(y),xn+y;1/x/y,exp(i*x*y); dsdxdy=diff(diff(S,x),y) 得: dsdxdy = cos(y), 0 1/x2/y2, i*exp(i*x*y)-y*x*exp(i*x*y) 例:求y=(lnx)x的導(dǎo)數(shù).可鍵入命令:p=(log(x)x;p1=diff(p,x)得:p1 = log(x)x*(log(log(x)+1/log(x)例:求y=xf(x2)的導(dǎo)數(shù).可鍵入命令:p=x*f(x2);p1=diff(p,x)得:p1 = f(x2)+2*x2*D(f)(x2)例:求xy=ex+y的導(dǎo)數(shù).可鍵入命令:p=x*y(x)-exp(x+y(x);p1=diff(p,x)得:p1 = y(x)+x*diff(y(x),x)-(1+diff(y(x),x)*exp(x+y(x)再鍵入 p2=y+x*dy-(1+dy)*exp(x+y)=0;dy=solve(p2,dy)%把dy作為變量解方程得 dy= -(y-exp(x+y)/(x-exp(x+y) 求Taylor展開式 taylor(f,v) f對(duì)v的五階Maclaurin展開. taylor(f,v,n) f對(duì)v的n-1階Maclaurin展開.例:求sinxe-x 的7階Maclaurin展開.可鍵入 f=sym(sin(x)*exp(-x);F=taylor(f,8) 得 F = x-x2+1/3*x3-1/30*x5+1/90*x6-1/630*x7 例:求sinxe-x 在x=1 處的7階Taylor展開.可鍵入 f=sym(sin(x)*exp(-x);F=taylor(f,8,1) 得 F = sin(1)*exp(-1)+(-sin(1)*exp(-1)+cos(1)*exp(-1)*(x-1) -cos(1)*exp(-1)*(x-1)2 +(1/3*sin(1)*exp(-1)+1/3*cos(1)*exp(-1)*(x-1)3 -1/6*sin(1)*exp(-1)*(x-1)4 +(1/30*sin(1)*exp(-1)-1/30*cos(1)*exp(-1)*(x-1)5 +1/90*cos(1)*exp(-1)*(x-1)6 +(-1/630*cos(1)*exp(-1)-1/630*sin(1)*exp(-1)*(x-1)7 多元函數(shù)的Taylor展開MATLAB不能直接進(jìn)行多元函數(shù)的Taylor展開.必須先調(diào)用MAPLE函數(shù)庫(kù)中的mtaylor命令.方法為:在MATLAB的工作窗口中鍵入maple(readlib(mtaylor)mtaylor的格式為mtaylor(f,v,n)f為欲展開的函數(shù)式v為變量名.寫成向量的形式:var1=p1,var2=p2,varn=pn,展開式將在(p1,p2,pn)處進(jìn)行.如只有變量名,將在0點(diǎn)處展開.n為展開式的階數(shù)(n-1階).要完成Taylor展開,只需鍵入maple(mtaylor(f,v,n))即可.例:在(x0,y0,z0)處將F=sinxyz進(jìn)行2階Taylor展開.鍵入syms x0 y0 z0maple(readlib(mtaylor);maple(mtaylor(sin(x*y*z),x=x0,y=y0,z=z0,2) 得:ans = sin(x0*y0*z0)+cos(x0*y0*z0)*y0*z0*(x-x0)+cos(x0*y0*z0)*x0*z0*(y-y0)+cos(x0*y0*z0)*x0*y0*(z-z0)求積分 int(P) 對(duì)表達(dá)式P進(jìn)行不定積分. int(P,v) 以v為積分變量對(duì)P進(jìn)行不定積分. int(P,v,a,b) 以v為積分變量,以a為下限,b為上限對(duì)P進(jìn)行定積分.例:求,可鍵入int(-2*x/(1+x2)2) 得 ans = 1/(1+x2) 例:求,可鍵入鍵入int(x/(1+z2),z) 得 ans = atan(z)*x 例:求,可鍵入int(x*log(1+x),0,1) 得ans = 1/4 例:求可鍵入:int(2*x,sin(t),log(t) 得:ans = log(t)2-sin(t)2 對(duì)(符號(hào))矩陣積分例:求,輸入int(exp(t),exp(a*t),得: ans = exp(t), 1/a*exp(a*t) 求符號(hào)方程的解線性方程組的求解線性方程組的形式為A*X=B;其中A至少行滿秩.X=linsolve(A,B) 輸出方程的特解X.例:解方程組.鍵入A=sym(cos(t),sin(t);sin(t),cos(t);B=sym(1;1);c=linsolve(A,B) c = 1/(sin(t)+cos(t) 1/(sin(t)+cos(t) 代數(shù)方程的求解 solve(P,v)對(duì)方程P中的指定變量v求解.v可省略. solve(p1,P2,Pn,v1,v2,vn) 對(duì)方程P1,P2,Pn中的指定變量v1, v2vn求解.例:解,可輸入solve(p+sin(x)=r) 得:ans =-asin(p-r) 例:解,可輸入:P1=x2+x*y+y=3;P2=x2-4*x+3=0; x,y=solve(P1,P2) 得:x = 1 3y = 1 -3/2 解,可輸入:P1=a+u2+v2=0;P2=u-v=1;u,v=solve(P1,P2,u,v) 得:u = 1/2+1/2*(-1-2*a)(1/2) 1/2-1/2*(-1-2*a)(1/2)v = -1/2+1/2*(-1-2*a)(1/2) -1/2-1/2*(-1-2*a)(1/2) 對(duì)于有些無法求出解析解的非線性方程組,MATLAB只給出一個(gè)數(shù)值解.這一點(diǎn)可以從表示解的數(shù)字不被方括號(hào)括住而確定.例:解鍵入:x,y=solve(sin(x+y)-exp(x)*y=0,x2-y=2) 得: x = -6.0173272500593065641097297117905 y = 34.208227234306296508646214438330 由于這兩個(gè)數(shù)字沒有被 括住,所以它們是數(shù)值解.另外,可利用solve來解線性方程組的通解.例:解鍵入 P1=2*x1+7*x2+3*x3+x4=6; P2=3*x1+5*x2+2*x3+2*x4=4;P3=9*x1+4*x2+x3+7*x4=2; u=solve(P1,P2,P3,x1,x2,x3,x4) Warning: 3 equations in 4 variables. u = x1: 1x1 sym x2: 1x1 sym x3: 1x1 sym x4: 1x1 sym 可以看到:屏幕提示“有3個(gè)方程4個(gè)變量”,意為解不唯一(有時(shí)會(huì)提示解不唯一).且輸出的是解的結(jié)構(gòu)形式.為進(jìn)一步得到解,可輸入: u.x1,u.x2,u.x3,u.x4, 得: ans = x1 ans = -5*x1-4*x4 ans = 11*x1+9*x4+2 ans = x4 這樣就得到了原方程組的通解. 解符號(hào)微分方程解符號(hào)微分方程的命令格式為: dsolve(eq1,eq2,).其中eq表示相互獨(dú)立的常微分方程、初始條件或指定的自變量.默認(rèn)的自變量為t.如果輸入的初始條件少于方程的個(gè)數(shù),則在輸出結(jié)果中出現(xiàn)常數(shù)c1,c2等字符.關(guān)于微分方程的表達(dá)式有如下的約定:字母y表式函數(shù),Dy表示y對(duì)t的一階導(dǎo)數(shù);Dny表示y對(duì)t的n階導(dǎo)數(shù).例如:求的解可鍵入:x,y=dsolve(Dx=y,Dy=-x) 得x =cos(t)*C1+sin(t)*C2y =-sin(t)*C1+cos(t)*C2 dsolve中的輸入宗量最多只能有12個(gè),但這并不妨礙解具有多個(gè)方程的方程組,因?yàn)榭梢园讯鄠€(gè)方程或初始條件定義為一個(gè)符號(hào)變量進(jìn)行輸入.例如求 , , f(0)=0 , g(0)=1 的解.可輸入指令:P=Df=3*f+4*g,Dg=-4*f+3*g;v=f(0)=0,g(0)=1;f,g=dsolve(P,v) f = exp(3*t)*sin(4*t)g = exp(3*t)*cos(4*t) 注意:微分方程表達(dá)式中字母D必須大寫.例如求解微分方程可輸入 y=dsolve(D3y=-y,y(0)=1,Dy(0)=0,D2y(0)=0,x) 得: y = (1/3+2/3*exp(1/2*x)*cos(1/2*3(1/2)*x)*exp(x)/exp(x) 最后看一個(gè)解非線性微分方程的例子: dsolve(Dy)2+y2=1,y(0)=0,x) ans = sin(x) -sin(x) 對(duì)于無法求出解析解的非線性微分方程,屏幕將提示出錯(cuò)信息. 微分方程的數(shù)值解及其它問題的數(shù)值解 常微分方程的數(shù)值解MATLAB提供了求微分方程數(shù)值解的指令:t,x=ode23(fname,t0,tf,x0,tol,trace)t,x=ode45(fname,t0,tf,x0,tol,trace)這兩個(gè)格式中的輸入?yún)?shù)意義完全一樣.下面介紹這兩個(gè)格式的有關(guān)內(nèi)容及各參數(shù)的意義.這兩個(gè)格式都采用Runge-Kutta法求解微分方程的數(shù)值解.它們是針對(duì)一階微分方程組設(shè)計(jì)的.因此,如果待解的是高階微分方程,那么首先要化成形式為x=f(t,x)的一階微分方程組.稱為“狀態(tài)方程”.fname是f(t,x)的函數(shù)名.該函數(shù)以x為輸出,以t,x為輸入變量,注意次序不能顛倒.t0和tf分別是積分的起始值和終止值.x0是初始值,以向量的形式輸入.tol是用來控制精度的參數(shù),可缺省.缺省時(shí)ode23默認(rèn)tol=1.e-3;ode45默認(rèn)tol=1.e-6.trace用來控制是否顯示中間結(jié)果,可缺省.缺省時(shí),默認(rèn)trace=0,不顯示.輸出結(jié)果t和x分別是時(shí)間向量和相應(yīng)的狀態(tài)向量.雖然ode45比ode23的精度高,但它的運(yùn)算速度更快.例:求著名的Van der pol方程,并繪出其解的圖形.第一步:在編輯器中編寫名為fname的M文件.function X=fname(t,x)X=zeros(2,1);X(1)=(1-x(2)2)*x(1)-x(2);X(2)=x(1);第二步:將此文件存放于自己的文件夾中聽候調(diào)用.第三步:在MATLAB的命令窗口調(diào)用這個(gè)函數(shù),即鍵入如下命令:t,x=ode45(fname,0,20,0,0.5); plot(t,x) 數(shù)值積分quad(fname,a,b,tol,trace) Simpson法求數(shù)值積分.quad8(fname,a

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論