Gauss-Legendre积分公式

  • 格式:doc
  • 大小:278.50 KB
  • 文档页数:7

数值逼近实习

题 目 二重积分的复化梯形公式

专 业 信息与计算科学

班 级 计算092

学 号 3090811072

学 生 薛藏朋

指导教师 秦新强

2011 年

一、实验目的

1.利用Gauss-Legendre公式计算积分

2.比较计算误差与实际误差

二、数学模型

),(),(12)(][)]()(2)([2)(''211bafhabfRbfxfafhdxxfnbankk

三、算法

Step 1:输入等分数n

Step2:输入积分上下限;

Step3: 求出步长及对应个点;

Step4: 由),(),(12)(][)]()(2)([2)(''211bafhabfRbfxfafhdxxfnbankk计算积分结果

Step5:将积分结果输出;

四、程序

#include

using namespace std;

#include"math.h"

#define N 10 double f(double x)

{double z;

z=cos(x);

return(z);

}

int main()

{

int i, n,m;

double X[N],A[N],F=0;

cout<<"请输入代数精度n"<

cin>>n;

m=(n+1)/2;

switch(m)

{

case 1:X[1]=0;A[1]=2; break;

case

2:X[1]=0.5773502692;X[2]=-X[1];A[1]=A[2]=1;break; case

3:X[1]=0.77459666920;X[2]=-X[1];X[3]=0;A[1]=A[2]=0.5555555556;A[3]=0.8888888889;break;

case

4:X[1]=0.8611363116;X[2]=-X[1];X[3]=0.3399810436;X[4]=-X[3];A[1]=A[2]=0.3478548451;

A[3]=A[4]=0.6521451549; break;

case

5:X[1]=0.9061798459;X[2]=-X[1];X[3]=0.53846931010;X[4]=-X[3];X[5]=0;A[1]=A[2]=0.2369268851;

A[3]=A[4]=0.4786286705;A[5]=0.5688888889;

break;

case

6:X[1]=0.9324695142;X[2]=-X[1];X[3]=0.6612093865;X[4]=-X[3];X[5]=0.12386191816;X[6]=-X[5];

A[1]=A[2]=0.1713244924;A[3]=A[4]=0.3607615730;A[5]=A[6]=0.4679139346; break; case

7:X[1]=0.9491079123;X[2]=-X[1];X[3]=0.7415311856;X[4]=-X[3];X[5]=0.40584515140;X[6]=-X[5];X[7]=0;

A[1]=A[2]=0.1294849662;A[3]=A[4]=0.2797053915;A[5]=A[6]=0.3818300505;A[7]=0.4179591834; break;

case

8:X[1]=0.9602898565;X[2]=-X[1];X[3]=0.7966664774;X[4]=-X[3];X[5]=0.5255324099;X[6]=-X[5];X[7]=0.1834346425;

X[8]=-X[7];A[1]=A[2]=0.1012285363;A[3]=A[4]=0.2223810345;A[5]=A[6]=0.3137066459;A[7]=A[8]=0.3626837834; break;

default:printf("error\n");

}

for(i=1;i<=m;i++)

{

F=F+f(X[i])*A[i]; }

cout<<"具有"<

return 0;

}

五、数值算例

六、参考文献

[1]秦新强,数值逼近,西安:西安理工大学印刷厂,2010.

[2]秦新强,数值逼近学习指导,西安:西安理工大学印刷厂,2010.