MATLAB中的數值計算與符號計算_第1頁
MATLAB中的數值計算與符號計算_第2頁
MATLAB中的數值計算與符號計算_第3頁
MATLAB中的數值計算與符號計算_第4頁
MATLAB中的數值計算與符號計算_第5頁
已閱讀5頁,還剩14頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、微積分實驗(2) MATLAB中的數值計算與符號計算,函數復合 命令格式: compose(f,g,x), 即求f(g(x); 例子: syms f, x; f=sin(x);compose(f,f,x) ans = sin(sin(x) syms f, x; f=sin(x); g=1+x2; compose(f,g,x) ans = sin(1+x2,設f(sin(x/2) = cos(x) + 1, 求f(x)與f(cos(x/2). syms x, f; old=cos(x); new=1-2*sin(x/2)2; subs(f(sin(x/2)=cos(x)+1,old,new) a

2、ns = f(sin(x/2)=(1-2*sin(x/2)2)+1 syms u; subs(ans,sin(x/2),u) ans = f(u) = 2-2*u2,Syms x,f,g; f=x/sqrt(1+x2);g=x; g=simple(compose(f,f,x) f =x/(1+x2)(1/2) g =x/(2*x2+1)(1/2) g=simple(compose(g,f,x) g =x/(3*x2+1)(1/2) g=simple(compose(g,f,x) g =x/(4*x2+1)(1/2) g=simple(compose(g,f,x) g =x/(5*x2+1)(1

3、/2,syms x,f; f=sin(x)2/(1+cot(x)+cos(x)2/(1+tan(x); diff(f,x) Ans= 2*sin(x)/(1+cot(x)*cos(x)-sin(x)2/(1+cot(x)2*(-1-cot(x)2)-2*cos(x)/(1+tan(x)*sin(x)-cos(x)2/(1+tan(x)2*(1+tan(x)2) simple(ans) ans =-2*cos(x)2+1 diff(f,x,2) ans=2*cos(x)2/(1+cot(x)-4*sin(x)/(1+cot(x)2*cos(x)*(-1-cot(x)2)-2*sin(x)2/(1

4、+cot(x)+2*sin(x)2/(1+cot(x)3*(-1-cot(x)2)2+2*sin(x)2/(1+cot(x)2*cot(x)*(-1-cot(x)2)+2*sin(x)2/(1+tan(x)+4*cos(x)/(1+tan(x)2*sin(x)*(1+tan(x)2)-2*cos(x)2/(1+tan(x)+2*cos(x)2/(1+tan(x)3*(1+tan(x)2)2-2*cos(x)2/(1+tan(x)2*tan(x)*(1+tan(x)2) simple(ans) ans =4*sin(x)*cos(x,syms x y z f g; f=exp(z)-z+x*y-

5、3; g=jacobian(f,x, y, z) g= y, x, exp(z)-1 g(1) ans = y g(2) ans = x g(3) ans = exp(z)-1 g(1)/g(3) ans = y/(exp(z)-1,syms x y t a; x=a*cos(t)3; y=a*sin(t)3; y=simple(diff(y,t)/diff(x,t) y = -tan(t) simple(diff(y,t)/diff(x,t) ans = 1/3/cos(t)4/a/sin(t,syms x; int(1-sin(x)+cos(x)/(1+sin(x)-cos(x) ans

6、= 2*log(tan(1/2*x)-2*log(tan(1/2*x)+1)-2*atan(tan(1/2*x,simple(ans) ans=2*log(tan(1/2*x)-2*log(tan(1/2*x)+1)-2*atan(tan(1/2*x,MATLAB做不到這一點,但這個積分在Mathematica中的計算結果為,先畫出圖形,syms x y; y=2*x3-6*x2-18*x+7; ezplot(y,-5,5,再求出駐點(有2個,分別為-1及3) solve(diff(y,x),x) ans = -1 3 求函數的2階導數 y=diff(y,x,2) y = 12*x-12,計算

7、2階導數在駐點處的函數值 x=-1; eval(y) ans = -24 x=3; eval(y) ans = 24 由高等數學定理知,在-1處取得極大值, 在3處取得極小值,這個積分無法計算出理論解,只能計算數值解 syms x; int(sin(sin(x),1,10) ans = int(sin(sin(x),x = 1 . 10,第一種方法,用梯形法計算,其命令為trapz(x,y), 其中x, y是具有相同長度的向量,表示用梯形法分割時,數據點上的值. 此積分的實際值為0.199(精確到20位) x=1:0.1:10; y=sin(sin(x); trapz(x,y) ans = 1

8、.1981,第二種方法,用Simpson(辛普森法)計算,其命令是quad(f,a,b,tol), 其中a,b為積分的上下限,tol為迭代誤差,其默認值為10(-3) quad(sin(sin(x),1,10,10(-7) ans = 1.1990 第三種方法,用Newton-cotes法(牛頓-科特茨法),其命令是quad8(f,a,b,tol),其用法與Simpson法一樣 quad8(sin(sin(x),1,10,10(-3) ans = 1.1990 Newton-cotes法的計算精度比其它2種要高,例如,在相同的計算量下,比較 quad(sin(sin(x),1,10,10(-3

9、) ans = 1.1976,命令: dblquad(f, xmin, xmax, ymin, ymax) 先畫出區(qū)域的圖形 syms x y; ezplot(y2-x,0,5,-3,3); hold on; ezplot(x-2,0,5,-3,3); hold off,再求2條曲線的2個交點 syms x y; x,y=solve(y2-x=0,x-2=y) x = 1 4 y = -1 2 因此,求出的2個交點是(1,-1)及(4,2),這是一個左右型區(qū)域, 應該先對x積分,再對y積分比較簡單,因此有 syms x y; dblquad(x*y,y2,y+2,-1,2) 結果,MATLAB

10、會提示出現錯誤,是語法錯誤嗎? 將上面改成,syms x y; dblquad(x*y,0,1,-1,2) ans = 0.7500 這說明,不是語法錯誤. 實際上,這個命令只能計算矩形區(qū)域的積分,如果積分區(qū)域不上矩形區(qū)域,那么,你就得定義一個二元函數,讓這個函數在積分區(qū)域外為0,比如,對此積分,定義,而且,它也只能計算二重積分的數值解,關于微分方程的求解,命令格式: dsolve(eqn1, eqn2, .); 如果不額外說明, 默認的變量是t dsolve(Dy=y2*(1-y) Warning: Explicit solution could not be found; implicit solution returned. In C:MATLABR12toolboxsymbolicdsolve.m at line 292 ans = t+1/y-log(y)+log(-1+y)+C1=0 dsolve(D2y = -a2*y, y(0) = 1, Dy(pi/a) = 0) ans =cos(a*t) x,y=dsolve(Dx = y, Dy = -x, x(0)=0, y(0)=1) x =sin(t) y =cos(t,關于數項級數求和問題,命令格式: symsum(f, a, b), 計算表達式f從

溫馨提示

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

評論

0/150

提交評論