实施Simpson规则math.net数字

时间:2014-10-17 06:31:03

标签: c# numerical-integration mathnet

我正在尝试使用math.net数字库来实现Simpson的规则。我想使用的方法有四个参数,一个是Func(函数指针),intervalBegin,intervalEnd和partitionNumbers。目前我正在使用Math.Sin测试该方法,但是有人可以帮助我理解如何实现这个Func吗?

var test = MathNet.Numerics.Integration.SimpsonRule.IntegrateComposite(Math.Sin, 1, 4, 20);

1 个答案:

答案 0 :(得分:2)

其他材料: 图片来自math is fun。 你可以拥有绝对任何数学函数,如下面的一个char代表。

enter image description here

积分计算函数绘制的线与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);