变步长梯形.cpp

来自「数值分析程序。。。。。好多程序下载 喜欢的朋友可以下 随时欢迎」· C++ 代码 · 共 40 行

CPP
40
字号
#include <iostream.h>
#include <math.h>
double f(double x)
{
	double t;
	if(x==0)
		t=1;
	else
		t=sin(x)/x;
	return t;
}
void main()
{
    double a,b,e,h,x,T1,T2,s;
	int k;
	cout<<"请输入积分区间[a,b],误差限e"<<endl;
    cin>>a>>b>>e;
    h=b-a;
    T1=h*(f(a)+f(b))/2;
	for(k=1;k<=20;k++)
	{
	    s=0;
		x=a+h/2;
		for(;x<b;)
		{
			s+=f(x);
			x+=h;
		}
		T2=T1/2+h*s/2;
		if(fabs(T2-T1)>=e)
		{
			h=h/2;
		    T1=T2;
		}
		else
		 break;
	}
	cout<<T2<<endl;
}

⌨️ 快捷键说明

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