// test_2.cpp : Defines the entry point for the console application.
//自动选步长的梯形算法计算定积分
#include "stdafx.h"
#include <iostream>
#include <math.h>
double TR(double a, double b, double err);
//给定区间端点a和b,误差界err和计算被积函数f(x)的子程序,算法TR用自动选步长的梯形算法计算定积分I,函数返回值即为I
double f(double x);
//计算被积函数f(x)的子程序
int _tmain(int argc, _TCHAR* argv[])
{
using namespace std;
cout.precision(8);
cout << "I = " << TR(0, 3.1415926/2, 0.00001) << endl;
return 0;
}
double TR(double a, double b, double err)
{
double h1 = 0.0, h2 = 0.0, S = 0.0, x = 0.0, Tn =0.0, T2n = 0.0;
h1 = b - a;
Tn = h1 * (f(a) + f(b)) / 2;
//先执行一遍
h2 = h1 / 2;
S = 0.0;
x