在C#中实现差异化

Tri*_*ele 6 c# math

我有以下区别,我需要在C#中实现它:

W(t)=d/dt(log(A(t)))
Run Code Online (Sandbox Code Playgroud)

哪里A(t)是双数据数组.

如何W(t)从上面的导数中获得结果数组?

谢谢

编辑:

public double[,] derivative()
{
    dvdt = new double[envelope.GetLength(0), envelope.GetLength(1)];
    int h = 1;

    for (int j = 0; j < envelope.GetLength(0); j++)
    {
        for (int i = 0; i < envelope.GetLength(1)-1 ; i++)
        {
            dvdt[j, i] = (envelope[j, i + h] - envelope[j, i]) / (h);
        }
    }
    return dvdt;
}
Run Code Online (Sandbox Code Playgroud)

我发现这个库http://autodiff.codeplex.com/但我无法理解示例代码如何工作以及如何将其应用于我的问题呃

3Da*_*ave 3

这些都不能直接解决您的问题,但可能会帮助您重新开始行动。在论文中陷入琐碎的问题可能是一种极大的痛苦。

您可以访问 Mathematica 吗?最后我检查了他们的核心引擎周围有一个名为 .NET/Link 的 .NET 包装器。

Mathematica 的性能非常出色。此外,它现在支持 GPU 和集群等资源,如果您的任何应用程序适合并行化,这些资源可以提供巨大的性能提升。

这可以让您专注于应用程序的其余部分,而不必重新发明轮子。此外,由于您可以直接在 Mathematica 笔记本编辑器中输入公式,因此您可以从 C# 端采用更通用的数据驱动方法。

这里有一些通常难以理解的 Wolfram 文档

另请参阅有关在 C# 中解析 Mathematica 的线程

(我只推荐 Mathematica,因为您提到您可能需要一个求解器来处理多个公式/方程/等。除非实现求解器是您论文主题的核心部分,否则我建议使用现成的组件,例如并专注于您的原创研究。)