資源描述:
《數(shù)值積分的matlab實現(xiàn)》由會員上傳分享,免費在線閱讀,更多相關內(nèi)容在工程資料-天天文庫。
1、《數(shù)值分析》實驗報告實驗名稱使用matlab編寫數(shù)值計算程序?qū)嶒灂r間**姓名**班級**學號**成績實驗報告內(nèi)容要求:一、實驗目的與內(nèi)容;二、算法描述(數(shù)學原理或設計思路、計算公式、計算步驟);三、程序代碼;四、數(shù)值結(jié)果;五、計算結(jié)果分析(如初值對結(jié)果的影響;不同方法的比較;該方法的特點和改進等);六、實驗中出現(xiàn)的問題,解決方法及體會(整個實驗過程中(包括程序編寫,上機調(diào)試等)出現(xiàn)的問題及其處理等廣泛的問題).實驗四數(shù)值積分的Matlab實現(xiàn)一、實驗目的與要求1.熟練梯形公式、Simpson公式、復化梯形
2、公式、復化Simpson公式、Romberg求積公式;2.熟悉符號積分,能數(shù)值積分的值與精確值的比較;3.培養(yǎng)編程與上機調(diào)試能力。二、實驗原理設將積分區(qū)間[a,b]劃分為n等份,步長h=,選取等距節(jié)點x=a+kh構(gòu)造出的插值型求積公式I=(b-a)稱為牛頓-科特斯公式,式中C稱為科特斯系數(shù).當n=1時,C=C=,即為梯形公式T=[f(a)+f(b)]當n=2時,同理可求Simpson公式:S=.對應的復合公式分別為T,S,運用理查德外推加速方法可得龍貝格求積算法:T,k=1,2,….三、實驗內(nèi)容與步驟分別
3、用梯形公式、Simpson公式、復化梯形公式、復化Simpson公式、Romberg求積公式求下列定積分,觀察所得結(jié)果,并與精確值進行比較.(4)(5)1、依照實驗原理編寫各種公式的的程序.2、首先在電腦上安裝matlab,然后啟動matlab,分別建立不同公式的M文件,實驗程序如下;梯形公式程序代碼程序代碼說明functionT=chen_trap(fun,a,b);T=(b-a)*(feval(fun,a)+feval(fun,b))/2;%遞推梯形公式主程序%fun:被積函數(shù)%a,b分別為積分區(qū)間的
4、左右端點Simpson公式程序代碼程序代碼說明functiony=chen_simpson(fun,a,b);c=(a+b)/2;y=(b-a)/6*(feval(fun,a)+4*feval(fun,c)+feval(fun,b));%simpson公式主程序%fun表示被積函數(shù)句柄%a,b分別為積分區(qū)間的左右端點復合梯形公式程序代碼程序代碼說明functiony=comtrap(fun,a,b,n);z1=feval(fun,a)+feval(fun,b);h=(b-a)/n;z2=0;x=a;for
5、k=1:n-1x1=x+k*h;z2=z2+2*feval(fun,x1);endy=(z1+z2)*h/2;%復化simpson公式主程序%fun表示被積函數(shù)句柄%a,b分別為積分區(qū)間的左右端點%n為等分積分區(qū)間的個數(shù)%y為積分近似值Sn復合Simpson公式程序代碼程序代碼說明functiony=comsimpson(fun,a,b,n);z1=feval(fun,a)+feval(fun,b);m=n/2;h=(b-a)/(2*m);x=a;z2=0;z3=0;x2=0;x3=0;fork=1:m-
6、1x2=x+2*k*h;z2=z2+2*feval(fun,x2);endfork=1:mx3=x+(2*k-1)*h;z3=z3+4*feval(fun,x3);endy=(z1+z2+z3)*h/3;%復化simpson公式主程序%fun表示被積函數(shù)句柄%a,b分別為積分區(qū)間的左右端點%n=2m,m為等分積分區(qū)間的個數(shù)%y為積分近似值SmRomberg求積公式程序代碼程序代碼說明function[quad,R]=Romberg(f,a,b,eps);h=b-a;R(1,1)=h*(feval(f,a)
7、+feval(f,b))/2;M=1;J=0;err=1;whileJ<=3
8、err>epsJ=J+1;h=h/2;S=0;forp=1:Mx=a+h*(2*p-1);S=S+feval(f,x);endR(J+1,1)=R(J,1)/2+h*S;M=2*M;fork=1:J%f表示被積函數(shù)句柄%a,b表示被積區(qū)間[a,b]的端點%eps表示精度%quad是用Romberg加速算法求得的積分值%R為Romberg表R(J+1,k+1)=R(J+1,k)+(R(J+1,k)-R(J,k))/(4^k-1);
9、enderr=abs(R(J+1,J)-R(J+1,J+1));endquad=R(J+1,J+1);%err表示誤差的估計1、具體函數(shù)編程如下:(1);首先編寫被積函數(shù)的M文件f1.mfunctiony=f1(x)然后編寫如下程序,并保存為t1.m%t1.mclear;a=0;b=1;T=chen_trap(@f1,a,b);S=chen_simpson(@f1,a,b);FT8=comtrap(@f1,a,b,8);FS4