复化辛卜生公式.cpp

来自「包含二分法、复化辛卜生公式、改进欧拉法、拉格朗日插值多项式、龙贝格算法、牛顿迭代」· C++ 代码 · 共 39 行

CPP
39
字号
#include<iostream.h>
#include<math.h>
void main()
{
	int i,n=2;
	float s;
	float f(float);
	float Simpson(float (*)(float),float,float,int );
	for( i=0;i<=2;i++ )
	{
		s=Simpson(f,0,1,n);
		cout<<"s("<<n<<")="<<s<<endl;
		n*=2;
	}
}
float Simpson(float (*f)(float),float a,float b,int n)
{
	int k;
	float s,s1,s2=0.0;
	float h=(b-a)/n;
	s1=f(a+h/2);
	for(k=1;k<=n-1;k++)
	{
		s1+=f(a+k*h+h/2);
		s2+=f(a+k*h);
	}
	s=h/6*(f(a)+4*s1+2*s2+f(b));
	return s;
}
float f(float x)
{
	return 1/(1+x*x);
/*	if(x==0)
		return 1;
	else
		return sin(x)/x;*/
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?