Matlab筆記——數(shù)值計算—高數(shù)篇015.docx_第1頁
Matlab筆記——數(shù)值計算—高數(shù)篇015.docx_第2頁
Matlab筆記——數(shù)值計算—高數(shù)篇015.docx_第3頁
Matlab筆記——數(shù)值計算—高數(shù)篇015.docx_第4頁
Matlab筆記——數(shù)值計算—高數(shù)篇015.docx_第5頁
已閱讀5頁,還剩7頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

15. 數(shù)值計算高數(shù)篇一、求極限limit(f,x,a)求極限 limit(f,x,a,right)求右極限limit(f,x,a,left)求左極限例1求代碼:syms x;y=(3*x2+5)/(5*x+3)*sin(2/x);limit(y,x,inf)運行結(jié)果:ans =6/5注:Matlab求二元函數(shù)的極限,是用嵌套limit函數(shù)實現(xiàn)的,相當(dāng)于求的是累次極限,需要注意:有時候累次極限并不等于極限。例2求代碼:syms x a b;y=(ax+bx)/2)(3/x);limit(y,x,0,right)運行結(jié)果:ans =a(3/2)*b(3/2)二、求導(dǎo) diff(f,x,n)求函數(shù)f關(guān)于x的n階導(dǎo)數(shù),默認(rèn)n=1例3 求的1階導(dǎo)數(shù),并繪圖代碼:syms x a b;y=(ax+bx)/2)(3/x);limit(y,x,0,right)運行結(jié)果:y1 =cos(x)/(cos(x) + 1) + (sin(x)*(sin(x) + 1)/(cos(x) + 1)2例4設(shè),求代碼:syms x y;z=exp(sin(x*y);zx=diff(z,x)zy=diff(z,y)zxy=diff(zx,y) % 也等于diff(zy,x)運行結(jié)果:zx =y*exp(sin(x*y)*cos(x*y)zy =x*exp(sin(x*y)*cos(x*y)zxy =x*y*exp(sin(x*y)*cos(x*y)2 + exp(sin(x*y)*cos(x*y)x*y*exp(sin(x*y)*sin(x*y)三、求極值1. 一元函數(shù)極值 x0,min=fminbnd(f, a, b)返回函數(shù)f(x)在區(qū)間(a,b)上的極小值點和極小值例5求函數(shù)在區(qū)間(-2,4)上的極值代碼:f=(x) 2*x3-6*x2-18*x+7;g=(x) -2*x3+6*x2+18*x-7;x0,min=fminbnd(f,-2,4)x1,max=fminbnd(g,-2,4)fplot(f,-2,4);運行結(jié)果:x0 = 3.0000min =-47.0000x1 = -1.0000max = -17.00002. 多元函數(shù)極值X1,f1=fminunc(f,X0)處理連續(xù)情形X1,f1=fminsearch(f,X0)可以處理不連續(xù)情形二者用法相同,返回極小值點和極小值,其中X為初始點。例6 求的極小值代碼:f=(x) (1-x(1)2+100*(x(2)-x(1)2)2;x0=-5 -2;x1,f1=fminsearch(f,x0)運行結(jié)果:x1 = 1.0000 1.0000f1 = 2.7969e-010四、求不定積分與定積分1. 符號積分int(f,x)求f(x)關(guān)于x的不定積分int(f,x,a,b)求f(x)關(guān)于x的從a到b的定積分例7求積分和代碼:syms x a;int(log(x)-a)/x2,x)int(log(x)-a)/x2,x,1,inf)運行結(jié)果:ans =-(log(x) - a + 1)/xans =1 a注:不定積分的結(jié)果是忽略任意常數(shù)C的。2. 二重積分可以化為累次積分,再用兩次int函數(shù)實現(xiàn)。例8求二重積分, 先化為累次積分:原式=代碼:syms x y;int(int(1+x+y,y,-sqrt(1-x2),sqrt(1-x2),x,-1,1)運行結(jié)果:ans =pi3. 數(shù)值積分quad(f,a,b)辛普森法定積分,默認(rèn)誤差為10-6,低精度的非光滑曲線計算中是最有效;quadl(f, a, b)Lobatto法定積分,在高精度的光滑曲線計算中更為高效;quad2d(f, a, b, c, d)二重積分,其中f(x,y)為二元函數(shù),a, b為x的范圍,c(x), d(x)為y的范圍;例9求代碼:f=(x) (log(x)-1)./x.2; % 注意.不能忽略y=quad(f,1,10)運行結(jié)果:y = -0.2303例10用數(shù)值積分法求解例8.代碼:quad2d(x,y) 1+x+y, -1, 1, (x) -sqrt(1-x.2), (x) sqrt(1-x.2), AbsTol, 1e-12) % 注意點運算運行結(jié)果:ans = 3.1416或者用兩次quad函數(shù),中間需要用arrayfun函數(shù)做向量值化處理,該方法可以推廣到三重積分。quad(x) arrayfun(xx) quad(y) 1+xx+y, -sqrt(1-xx.2),sqrt(1-xx.2),x), -1,1)程序說明:先對f(x,y)關(guān)于y從-sqrt(1-x.2)到sqrt(1-x.2)做一次積分,為了后面使用變量名x,這里先用xx,得到一個關(guān)于xx的函數(shù)(只能接受自變量為標(biāo)量xx):quad(y) 1+xx+y, -sqrt(1-xx.2),sqrt(1-xx.2)然后用arrayfun函數(shù)把上一步得到的xx的函數(shù),處理成能接受向量值x(是個x的函數(shù)):(x) arrayfun(xx) quad(y) 1+xx+y, -sqrt(1-xx.2),sqrt(1-xx.2),x)最后,再關(guān)于x做一次積分。五、泰勒級數(shù)、傅里葉級數(shù)展開taylor(f,n,x,a)將函數(shù)f(x)在x=a點處展開為n-1階泰勒級數(shù)fseries(f,x,n,a,b)將函數(shù)f(x)在區(qū)間(a,b)展開n項傅里葉級數(shù)注:Matlab未提供傅里葉級數(shù)展開函數(shù),fseries函數(shù)來自論壇。例11求在x=4處展開到2階泰勒式,在的傅里葉展開。代碼:syms a x;f=a/(x-10);y1=taylor(f,3,x,4)g=x2+x;an,bn,f=fseries(g,x,3,-pi,pi)運行結(jié)果:y1 =- a/6 - (a*(x - 4)/36 - (a*(x - 4)2)/216an = (2*pi2)/3, -4, 1, -4/9bn = 2, -1, 2/3 f =cos(2*x) - (4*cos(3*x)/9 - sin(2*x) + (2*sin(3*x)/3 - 4*cos(x) + 2*sin(x) + pi2/3六、求級數(shù)symsum(f, k, m,n)例12求級數(shù)syms n;symsum(-1)(n+1)/(n+1)2,n,1,inf)運行結(jié)果:ans =1 - pi2/12七、代數(shù)方程1. 求代數(shù)方程的解析解solve(eq1,eq2,var1,var2,)例13解方程的x和b,以及方程組代碼:syms a b c x;solve(a*x2+b*x+c,x)solve(a*x2+b*x+c,b)x,y=solve(x+y=1,x-11*y=5,x,y)運行結(jié)果:ans = -(b + (b2 - 4*a*c)(1/2)/(2*a)-(b - (b2 - 4*a*c)(1/2)/(2*a)ans =-(a*x2 + c)/xx =4/3 y =-1/32. 非線性方程(組)數(shù)值解fsolve(f,x0)求方程f(x)=0在x0附近的近似解,也可以解方程組注:一元連續(xù)函數(shù)的根,可以用fzero(f,x0)例14求解方程。代碼:f=(x) x-exp(-x);x1=fsolve(f,0)運行結(jié)果:x1 = 0.5671例15求解方程組代碼:F=(x) 2*x(1)-x(2)-exp(-x(1); -x(1)+2*x(2)-exp(-x(2);x,fval=fsolve(F,-5;-5)運行結(jié)果:x = 0.5671 0.5671fval = 1.0e-006 * -0.4059 -0.4059八、常微分方程(組)1. 求解析解dsolve(eq1,eq2,cond1,cond2,t)默認(rèn)自變量為t,cond1,2為初值條件,若有足夠初值條件,則得到特解;否則得到通解。若解不出解析解,只能用ode23或ode45求數(shù)值解。用Dy, D2y,表示;用D2y(e)=a表示.例16求解微分方程代碼:y1=dsolve(y*D2y-Dy2=0,x)運行結(jié)果:y1 = C4exp(C3 - C2*x)(注:兩個解)例17求解微分方程組代碼:X,Y=dsolve(Dx+2*x-Dy=10*cos(t),Dx+Dy+2*y=4*exp(-2*t),x(0)=2,y(0)=0)運行結(jié)果:X =4*cos(t) - 2/exp(2*t) + 3*sin(t) - (2*sin(t)/exp(t)Y =sin(t) - 2*cos(t) + (2*cos(t)/exp(t)2. 求數(shù)值集(利用求解器)實際問題中,許多常微分方程(組)是求不出解析解的,Matlab提供了多個求數(shù)值集的求解器solver.求解器ODE類型特點說明ode45非剛性一步算法,4,5階Runge-Kutta方法累積截斷誤差大部分場合的首選算法ode23非剛性一步算法,2,3階Runge-Kutta方法累積截斷誤差使用于精度較低的情形ode113非剛性多步法,Adams算法,高低精度均可達(dá)到計算時間比ode45短ode23t適度剛性采用梯形算法適度剛性情形ode15s剛性多步法,Gears反向數(shù)值積分,精度中等若ode45失效時,可嘗試使用ode23s剛性一步法,2階Rosebrock算法,低精度。當(dāng)精度較低時,計算時間比ode15s短調(diào)用格式:T,X=solver(odefun, tspan, X0)其中,tspan為求解區(qū)間;X0為初值條件向量;先改寫高階微分方程做變量代換處理:令,得到,例18求解描述振蕩器的經(jīng)典Ver der Pol微分方程(?。?,做變量代換處理

溫馨提示

  • 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

提交評論