梯形積分和3點Gauss積分2_第1頁
梯形積分和3點Gauss積分2_第2頁
梯形積分和3點Gauss積分2_第3頁
梯形積分和3點Gauss積分2_第4頁
梯形積分和3點Gauss積分2_第5頁
已閱讀5頁,還剩6頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、實驗六一、實驗名稱 復(fù)合梯形積分和復(fù)化3點Gauss積分計算數(shù)值積分二、實驗?zāi)康呐c要求:實驗?zāi)康? 掌握復(fù)合梯形積分和復(fù)化3點Gauss積分算法。實驗要求:1.給出復(fù)合梯形積分和復(fù)化3點Gauss積分算法思路,2.用C語言實現(xiàn)算法,運行環(huán)境為Microsoft Visual C+。三、算法思路:1復(fù)合梯形積分我們把整個積分區(qū)間a,b分成n個子區(qū)間xi,xi+1,i=0,1,2,n,其中x0=a,xn+1=b。這樣求定積分問題就分解為求和問題: 當(dāng)這n+1個結(jié)點為等距結(jié)點時,即,i=0,1,2,n,復(fù)化梯形公式的形式是算法:input nfor i=1 to n do end do output

2、 S2復(fù)化3點Gauss積分根據(jù)書上6.8節(jié)定理5,可以用遞推法求正交多項式如下:,求的根,得到,則積分可近似表示為如下形式,將帶入其中得到,帶入上式得到復(fù)化3點Gauss積分公式。分別在每個小區(qū)間上應(yīng)用三點Gauss積分并求和,便得到復(fù)合三點Gauss積分法數(shù)值積分值。算法:input n,a,bh=(a+b)/2for i=1 to ndo ,end dooutput S四、實驗題目:為了方便起見,我們采取復(fù)合梯形積分的方法取N充分大時(這里取N等于2的20次方)得到的積分值近似看作積分的真實值,因為題中的積分函數(shù)在積分閉區(qū)域上是一致連續(xù)的,所以由黎曼積分的定義知在N充分大的情況下,復(fù)化梯

3、形積分的值充分接近原積分值,故我們這樣做是合理的。五、問題的解:編寫程序(程序見后面附錄),輸出結(jié)果如下:為了便于看清數(shù)值積分結(jié)果與原函數(shù)積分實際結(jié)果的差異。我在運行程序時故意計算了一下原函數(shù)積分的近似真實結(jié)果。分析并比較得到的數(shù)據(jù)可以看出,當(dāng)k越來越大時,error1和error2越來越接近于零,數(shù)值積分的結(jié)果越來越靠近原函數(shù)積分實際結(jié)果,并且error2 比error1 更快地接近于零。誤差比率總是大于零的,當(dāng)誤差比率越大,誤差減小得越快。復(fù)合梯形積分的誤差項是.,當(dāng)h趨于零時,顯然積分的誤差項更快地趨于零,實驗結(jié)果復(fù)符合這一結(jié)論。觀察復(fù)化3點Gauss積分結(jié)果,發(fā)現(xiàn)每個結(jié)果的誤差已經(jīng)早早

4、地為零了,而三個復(fù)合梯形積分的誤差還是大于零的,所以我們可以得到結(jié)論,使用復(fù)化3點Gauss積分能夠更精確地得到積分值。六、附錄:實驗編程,運行環(huán)境為Microsoft Visual C+第一個積分的程序:#include <math.h>#include <stdio.h>#include <stdlib.h>double f(double x) /定義函數(shù)f(x)/double y;y=exp(-x*x);return(y);double R(int N,double a,double b) /建立復(fù)合梯形積分/double s,h;int i;h=(b

5、-a)/N; s=0.0;for(i=1;i<=N;i+)s=s+h*(f(a+(i-1)*h)+f(a+i*h)/2.0;return(s);double T(int N,double a,double b) /建立復(fù)化3點Gauss積分/double s,h,A1,A2,A3,x1,x2,x3;int i;h=(b-a)/N; s=0.0;for(i=1;i<=N;i+) A1=A3=5.0*h/18.0;A2=4.0*h/9.0;x1=a+(i-1/2.0)*h-sqrt(3.0/5.0)*h/2.0;x2=a+(i-1/2.0)*h;x3=a+(i-1/2.0)*h+sqr

6、t(3.0/5.0)*h/2.0;s=s+A1*f(x1)+A2*f(x2)+A3*f(x3);return(s);void main() /main函數(shù)進行最終運算并輸出結(jié)果/int k,N;double s18,s28,s,error18,error28;printf("對第一個積分n"); s=R(pow(2,20),0.0,1.0);printf(" s1代表復(fù)合梯形積分n");error10=0.0;for(k=1;k<=7;k+) N=pow(2,k);s1k=R(N,0.0,1.0);error1k=fabs(s1k-s);print

7、f("N=%d, s1=%.12f, error1=%.12f, 比率=%.12fn",N,s1k,error1k,error1k-1/error1k);printf("n s2代表復(fù)化3點Gauss積分n");error20=0.0; for(k=1;k<=7;k+) N=pow(2,k);s2k=T(N,0.0,1.0);error2k=fabs(s2k-s);printf("N=%d, s2=%.12f, error2=%.12f, 比率=%.12fn",N,s2k,error2k,error2k-1/error2k);第

8、二個積分的程序:#include <math.h>#include <stdio.h>#include <stdlib.h>double f(double x) /定義函數(shù)f(x)/double y;y=1.0/(1.0+x*x);return(y);double R(int N,double a,double b) /建立復(fù)合梯形積分/double s,h;int i;h=(b-a)/N; s=0.0;for(i=1;i<=N;i+)s=s+h*(f(a+(i-1)*h)+f(a+i*h)/2.0;return(s);double T(int N,d

9、ouble a,double b) /建立復(fù)化3點Gauss積分/double s,h,A1,A2,A3,x1,x2,x3;int i;h=(b-a)/N; s=0.0;for(i=1;i<=N;i+) A1=A3=5.0*h/18.0;A2=4.0*h/9.0;x1=a+(i-1/2.0)*h-sqrt(3.0/5.0)*h/2.0;x2=a+(i-1/2.0)*h;x3=a+(i-1/2.0)*h+sqrt(3.0/5.0)*h/2.0;s=s+A1*f(x1)+A2*f(x2)+A3*f(x3);return(s);void main() /main函數(shù)進行最終運算并輸出結(jié)果/in

10、t k,N;double s18,s28,s,error18,error28;printf("對第二個積分n"); s=R(pow(2,20),0.0,4.0);printf(" s1代表復(fù)合梯形積分n");error10=0.0;for(k=1;k<=7;k+) N=pow(2,k);s1k=R(N,0.0,4.0);error1k=fabs(s1k-s);printf("N=%d, s1=%.12f, error1=%.12f, 比率=%.12fn",N,s1k,error1k,error1k-1/error1k);prin

11、tf("n s2代表復(fù)化3點Gauss積分n");error20=0.0; for(k=1;k<=7;k+) N=pow(2,k);s2k=T(N,0.0,4.0);error2k=fabs(s2k-s);printf("N=%d, s2=%.12f, error2=%.12f, 比率=%.12fn",N,s2k,error2k,error2k-1/error2k);第三個積分的程序:#include <math.h>#include <stdio.h>#include <stdlib.h>#define PI

12、3.1415926double f(double x) /定義函數(shù)f(x)/double y;y=1.0/(2.0+cos(x);return(y);double R(int N,double a,double b) /建立復(fù)合梯形積分/double s,h;int i;h=(b-a)/N; s=0.0;for(i=1;i<=N;i+)s=s+h*(f(a+(i-1)*h)+f(a+i*h)/2.0;return(s);double T(int N,double a,double b) /建立復(fù)化3點Gauss積分/double s,h,A1,A2,A3,x1,x2,x3;int i;h

13、=(b-a)/N; s=0.0;for(i=1;i<=N;i+) A1=A3=5.0*h/18.0;A2=4.0*h/9.0;x1=a+(i-1/2.0)*h-sqrt(3.0/5.0)*h/2.0;x2=a+(i-1/2.0)*h;x3=a+(i-1/2.0)*h+sqrt(3.0/5.0)*h/2.0;s=s+A1*f(x1)+A2*f(x2)+A3*f(x3);return(s);void main() /main函數(shù)進行最終運算并輸出結(jié)果/int k,N;double s18,s28,s,error18,error28;printf("對第三個積分n"); s=R(pow(2,20),0.0,2*PI);printf(" s1代表復(fù)合梯形積分n");error10=0.0;for(k=1;k<=7;k+) N=pow(2,k);s1k=R(N,0.0,2*PI);error1k=fabs(s1k-s);printf("N=%d, s1=%.12f, error1=%.12f, 比率=%.12fn",N,s1k,error1k,error1k-1/error

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論