class Program
{
static void Main(string[] args)
{
MyFunction myf = new MyFunction();
Integral integral = new Integral();
double result = integral.Quadrature(myf, 2, 1);
Console.WriteLine(result);//4 == (2*2+2)-(1*1+1)
Console.ReadLine();
}
}
interface Funciton
{
double Fun(double x);
}
class MyFunction : Funciton
{
public double Fun(double x)
{
return 2 * x + 1;//不定积分x*x+x
}
}
class Integral
{
private double dx = 0.000001d;
public double Quadrature(Funciton func, double up, double down)
{
double sum = 0d;
for (double x = down; x < up; x += dx)
{
sum += func.Fun(x);
}
return sum * dx;
}
}