【问题标题】:Implementing Simpson's Rule math.net numerics实现辛普森法则 math.net 数字
【发布时间】:2014-10-17 06:31:03
【问题描述】:

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

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

【问题讨论】:

    标签: c# numerical-integration mathnet-numerics


    【解决方案1】:

    其他材料: 图片直接取自math is fun。 您绝对可以拥有任何数学函数,如下面的一个字符表示。

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

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

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

    您的电话可能如下所示:

    MathNet.Numerics.Integration.SimpsonRule.IntegrateComposite(anyFunction, 1, 4, 20);
    

    【讨论】:

    • 我还不明白 Func 应该做什么。能不能说的具体点?
    • Func 应该是任何数学函数。它可以是函数,可以是“x^2”,也可以是“Math.Pi*r^2”。我会在几秒钟内编辑我的帖子,它可能会给你一些背景信息。
    • 这意味着我可以使用 Math.Sin 和 Math.Pi?
    • Math.Pi 不起作用,因为我相信它是一个简单的变量或属性,而不是方法。您可以使用自己的函数:MathNet.Numerics.Integration.SimpsonRule.IntegrateComposite(anyFunction, 1, 4, 20);查看一些修改
    • 任何提示如何创建anyFunction?
    猜你喜欢
    • 2018-08-18
    • 2016-01-12
    • 2021-04-19
    • 1970-01-01
    • 1970-01-01
    • 2018-11-01
    • 2020-02-26
    • 2016-05-05
    • 2012-10-19
    相关资源
    最近更新 更多