matlab定積分的近似計算 實驗報告二_第1頁
matlab定積分的近似計算 實驗報告二_第2頁
matlab定積分的近似計算 實驗報告二_第3頁
matlab定積分的近似計算 實驗報告二_第4頁
matlab定積分的近似計算 實驗報告二_第5頁
已閱讀5頁,還剩4頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

《matlab與數(shù)學實驗》實驗報告實驗序號:實驗二日期:2015年05月09日班級132132002姓名高馨學號1321320041實驗名稱定積分的近似計算問題背景描述定積分的很多應用問題中,被積函數(shù)甚至沒有解析表達式,可能只是一條實驗記錄曲線,或者是一組離散的采樣值,這時只能應用近似方法去計算相應的定積分.實驗目的本實驗將主要研究定積分的三種近似計算算法:矩形法、梯形法、拋物線法.對于定積分的近似數(shù)值計算實驗原理與數(shù)學模型MATLAB7.11.0主要內容(要點)實現(xiàn)實驗內容中的例子,即分別采用矩形法、梯形法、拋物線法計算,取,并比較三種方法的精確程度.分別用梯形法與拋物線法,計算,?。L試直接使用函數(shù)trapz()、quad()進行計算求解,比較結果的差異.將的近似計算結果與Matlab中各命令的計算結果相比較,試猜測Matlab中的數(shù)值積分命令最可能采用了哪一種近似計算方法?并找出其他例子支持你的觀點.學習fulu2sum.m的程序設計方法,嘗試用函數(shù)sum改寫附錄1和附錄3的程序,避免for循環(huán)。實驗過程記錄(含基本步驟、主要程序清單及異常情況記錄等)實現(xiàn)實驗內容中的例子,即分別采用矩形法、梯形法、拋物線法計算,取,并比較三種方法的精確程度.矩形法(中點法)程序:clearformatlong;a=0;b=1;n=258;h=(b-a)/n;C=0;fori=1:n;xi=(i-1)*h;xj=i*h;xz=(xi+xj)/2;C=C+h*(1/(1+xz*xz));enddisp(C)E=abs((C-pi/4)/(pi/4));fprintf('TherelativeerrorbetweenCandreal-valueisabout:%d\n',E)答案:0.785398476379441TherelativeerrorbetweenCandreal-valueisabout:3.985010e-007(二)梯形法程序:clearformatlong;a=0;b=1;n=258;h=(b-a)/n;B=0;x1=0;y1=1/(1+x1*x1);B=h*y1/2;fori=1:n-1xi=i*h;fxi=1/(1+xi*xi);B=B+h*fxi;endxn=1;yn=1/(1+xn*xn);B=B+h*yn/2;disp(B)E=abs((B-pi/4)/(pi/4));fprintf('TherelativeerrorbetweenBandreal-valueisabout:%d\n',E)答案:0.785397537433464TherelativeerrorbetweenBandreal-valueisabout:7.970021e-007(三)拋物線法程序:clearformatlonga=0;b=1;n=258;h=(b-a)/n;A=0;fori=1:nxj=(i-1)*h;xi=i*h;xk=(xi+xj)/2;fxi=1/(1+xi*xi);fxj=1/(1+xj*xj);fxk=1/(1+xk*xk);A=A+(h/6)*(fxj+4*fxk+fxi);enddisp(A)E=abs((B-pi/4)/(pi/4));fprintf('TherelativeerrorbetweenAandreal-valueisabout:%d\n',E)答案:0.785398163397449TherelativeerrorbetweenAandreal-valueisabout:2.827160e-016從他們的相對誤差值,我們可以看出,拋物線法精確程度最高,其次是矩形法,最后是梯形法。二、分別用梯形法與拋物線法,計算,?。L試直接使用函數(shù)trapz()、quad()進行計算求解,比較結果的差異.梯形法:程序clearformatlong;a=1;b=2;n=120;h=(b-a)/n;B=0;x1=1;y1=1/x1;B=h*y1/2;fori=1:n-1xi=1+i*h;fxi=1/xi;B=B+h*fxi;endxn=2;yn=1/xn;B=B+h*yn/2;disp(B)答案0.684887057990131(2)trapzx=1:1/120:2;y=1./x;trapz(x,y)答案:ans=0.693151520800048(二)拋物線法:(1)程序clearformatlonga=1;b=2;n=120;h=(b-a)/n;A=0;fori=1:nxj=1+(i-1)*h;xi=1+i*h;xk=(xi+xj)/2;fxi=1/xi;fxj=1/xj;fxk=1/xk;A=A+(h/6)*(fxj+4*fxk+fxi);enddisp(A)答案:0.684848377754341quadf=inline('1./x');I=quad(f,1,2)答案:I=0.693147199862970從他們的最終結果可以看出,用梯形法與拋物線法求解的結果比直接使用函數(shù)trapz()、quad()進行計算求解的結果都要來得小。使用函數(shù)trapz()與梯形法命令的結果接近,說明函數(shù)trapz()后臺計算時用的是梯形法的算法。。。。。。同理)三、將的近似計算結果與Matlab中各命令的計算結果相比較,試猜測Matlab中的數(shù)值積分命令最可能采用了哪一種近似計算方法?并找出其他例子支持你的觀點.Matlab中的數(shù)值積分命令最可能采用了中點法近似計算。如下的梯形法中的左點法、中點法與右點法中中點法更接近Matlab中各命令的計算結果。(1)clearformatlong;a=0;b=1;n=258;h=(b-a)/n;A=0;B=0;C=0;fori=1:n;xi=(i-1)*h;xj=i*h;xz=(xi+xj)/2;A=A+h*(1/(1+xi*xi));B=B+h*(1/(1+xj*xj));C=C+h*(1/(1+xz*xz));enddisp(A)disp(B)disp(C)答案:0.7863665296815260.7844285451854020.785398476379441(2)x=0:1/100:1;y=1./(1+x.^2);trapz(x,y)答案:ans=0.785393996730782可以看出中點法與答案更接近。(算出誤差)4、學習fulu2sum.m的程序設計方法,嘗試用函數(shù)sum改寫附錄1和附錄3的程序,避免for循環(huán).附錄1formatlongn=100;a=0;b=1;inum1=0;inum2=0;inum3=0;symsxfxfx=1/(1+x^2);i=1:n;(不然會把結果直接輸出來)xj=a+(i-1)*(b-a)/n;%左點xi=a+i*(b-a)/n;%右點fxj=subs(fx,'x',xj);%左點值fxi=subs(fx,'x',xi);%右點值fxij=subs(fx,'x',(xi+xj)/2);%中點值e=fxj*(b-a)/n;f=fxi*(b-a)/n;g=fxij*(b-a)/n;inum1=sum(e);inum2=sum(f);inum3=sum(g);integrate=int(fx,0,1)integrate=double(integrate)fprintf('Therelativeerrorbetweeninum1andreal-valueisabout:%d\n\n',...abs((inum1-integrate)/integrate))fprintf('Therelativeerrorbetweeninum2andreal-valueisabout:%d\n\n',...abs((inum2-integrate)/integrate))fprintf('Therelativeerrorbetweeninum3andreal-valueisabout:%d\n\n',...abs((inum3-integrate)/integrate))答案:integrate=pi/4integrate=0.785398163397448Therelativeerrorbetweeninum1andreal-valueisabout:3.177794e-003Therelativeerrorbetweeninum2andreal-valueisabout:3.188404e-003Therelativeerrorbetweeninum3andreal-valueisabout:2.652582e-006附錄3clearformatlongn=100;a=0;b=1;inum=0;ie=0symsxfxfx=1/(1+x^2);fori=1:nxj=a+(i-1)*(b-a)/n;%左點xi=a+i*(b-a)/n;%右點xk=(xi+xj)/2;%中點fxj=subs(fx,'x',xj);fxi=subs(fx,'x',xi);fxk=subs(fx,'x',xk);ie=ie+(fxj+4*fxk+fxi)*(b-a)/(6*n);endinum=sum(ie);integrate=int(fx,0,1)integrate=double(integrate)fprintf('Therelativeerrorbetweeninumandreal-valueisabout:%d\n\n',...abs((inum-integrate)/integrate))答案:ie=0integrate=pi/4integrate=0.785398163397448Therelativeerrorbetweeninumandreal-valueisabout:2.827160e-016實驗結果報告與實驗總結其實最重要的就是弄清楚第一題

溫馨提示

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

評論

0/150

提交評論