我正在尝试使用math.net数字库来实现Simpson的规则。我想使用的方法有四个参数,一个是Func(函数指针),intervalBegin,intervalEnd和partitionNumbers。目前我正在使用Math.Sin测试该方法,但是有人可以帮助我理解如何实现这个Func吗?
var test = MathNet.Numerics.Integration.SimpsonRule.IntegrateComposite(Math.Sin, 1, 4, 20);
答案 0 :(得分:2)
其他材料: 图片来自math is fun。 你可以拥有绝对任何数学函数,如下面的一个char代表。
积分计算函数绘制的线与X轴之间的区域。
我说你进入Simpsons集成的功能的原因并不重要,因为任何功能都可以使用,只要它适合" 1数字输入,1数字输出"格式。
其他材料的终止 l。
辛普森的公式是一个整合,这意味着它需要一个数学函数来计算。下面是simpson整合的粗略公式(使用你作为参数和随机函数传递的数字),如果你有兴趣,如果没有跳过这一部分。
intervalBegin = 1;
intervalEnd = 4;
partitionNumbers = 20;
f(x) = 3x^2;
deltaX = (intervalEnd - intervalBegin) / partitionNumbers;
SimpsonsIntegration = deltaX/3 * (f(intervalBegin) + 4*f(intervalBegin + deltaX*1)+ 2*f(intervalBegin + deltaX*2)+ 4*f(intervalBegin + deltaX*3)+ 2*f(intervalBegin + deltaX*4).....+4*f(intervalBegin + deltaX*19) +f(intervalEnd);
Simpsons集成中的函数是ANY函数,它接受1个数字参数并返回1。 (它可能是类型特定的,如float或double)
public double anyFunction(double number){
double result = [calculations];
return calculations;
}
您的电话可能如下所示:
MathNet.Numerics.Integration.SimpsonRule.IntegrateComposite(anyFunction, 1, 4, 20);