0

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

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

1 回答 1

3

附加材料:直接取自数学的图片很有趣。您绝对可以拥有任何数学函数,如下面的一个字符表示。

在此处输入图像描述

积分计算函数绘制的线与 X 轴之间的面积。

我之所以说传递给辛普森一家集成的函数并不重要,是因为任何函数都可以使用,只要它符合“1 个数字输入,1 个数字输出”格式。

补充材料结束l.

辛普森公式是一个积分,这意味着它需要一个数学函数来计算。以下是辛普森积分的粗略公式(使用作为参数传递的数字和随机函数),如果您感兴趣,请跳过这部分。

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);

辛普森积分中的函数是任何接受 1 个数字参数并返回 1 的函数。(它可能是特定类型的,例如 float 或 double)

public double anyFunction(double number){ 
   double result = [calculations];
   return calculations;

}

您的电话可能如下所示:

MathNet.Numerics.Integration.SimpsonRule.IntegrateComposite(anyFunction, 1, 4, 20);
于 2014-10-17T06:50:19.833 回答