4 c# c++ math lambda integrate
我最近一直在努力学习更多有关lambda表达的知识,并想到了一个有趣的练习......
有没有办法简化这样的c ++集成函数:
// Integral Function
double integrate(double a, double b, double (*f)(double))
{
double sum = 0.0;
// Evaluate integral{a,b} f(x) dx
for(int n = 0 ; n <= 100; ++n)
{
double x = a + n*(b-a)/100.0;
sum += (*f)(x) * (b-a)/101.0;
}
return sum;
}
Run Code Online (Sandbox Code Playgroud)
通过使用c#和lambda表达式?
那这个呢:
public double Integrate(double a,double b, Func<double, double> f)
{
double sum = 0.0;
for (int n = 0; n <= 100; ++n)
{
double x = a + n * (b - a) / 100.0;
sum += f(x) * (b - a) / 101.0;
}
return sum;
}
Run Code Online (Sandbox Code Playgroud)
测试:
Func<double, double> fun = x => Math.Pow(x,2);
double result = Integrate(0, 10, fun);
Run Code Online (Sandbox Code Playgroud)