以函数f(x)=sin(x)/x为例,求解其在[0,1]区间的定积分。
<span style="font-family:SimSun;font-size:12px;">#include<stdio.h>
#include<algorithm>
#include<iostream>
#include<iomanip>
#include<cmath>
using namespace std;
const int inf=0x3f3f3f3f;
double f(double x)//定义和修改函数f(x)
{
if(x==0)
return 1;//sin(x)/x在x=0时无意义,所以这里单独设置if语句,求x->0时,f(x)的极限为1.
return sin(x)/x;
}
double Calculate(double(*FunCallBack)(double x),double a,double b,double dx)//求定积分准确值
{
double doui;
double total = 0; //保存最后的计算结果
for (doui = a; doui <= b; doui += dx)
{
total+= FunCallBack(doui)*dx;
}
return total;
}
double Tixing(double a,double b)//梯形公式
{
return (b-a)/2*(f(a)+f(b));
}
double Simpson(double a,double