一个小问题,希望您能对我有所帮助。 (使我的生活更简单)

LSODA是最受人尊敬的微分方程数值求解器之一,但是它是用Fortran ...(http://www.netlib.org/odepack/index.html)编写的。

似乎没有一个像样的C#求解器,并且用C#编写我自己的代码非常耗时,特别是因为我有一些非常僵硬的方程需要求解。

net的NAG库不包含ODE求解器(它们缺少D02例程)。就“大学方面”的库而言。
但是NAG支持建议调用它们的dll,这对简单变量很合适,但是让我感到困惑的是它的外部函数和伪参数,这使我放弃了。

这使LSODA仍然是fortran,但在调用顺序上却要简单得多-所以我想知道如何将Odepack(包含lsoda例程的求解器)转换为几乎不需要工作的dll,以便将其调用来自C#?
(这会让我担心雅可比矩阵,即矩阵,即2D数组。)
具体来说,我希望有一个与Fortran NAG库类似的情况,但是可以让我访问lsoda:http://www.nag.co.uk/numeric/csharpinfo.asp

请记住,我是一名数学家-因此,如果您的回答令我失望,请耐心等待我。以及为什么我如此专注于C#-很好,这很简单,尤其是当有人使用VisualStudio 2010时。

非常感谢您的任何提前答复。

最佳答案

SmartMathLibrary看起来已经死了,但是它声称具有ODEPACK绑定。您也可以查看Wikipedia的List of .NET Numerical Packages

如果您愿意使用其他语言,则Python的SciPy库包含与LSODA的绑定:enter link description here。它在Windows上可用,易于使用,免费且受到科学界的广泛欢迎。

07-27 13:22