一个小问题,我希望你能帮助我。 (为了使我的生活更简单)LSODA到DLL - Fortran(F77)从dll调用C#
一个最受尊敬的数值求解的微分方程是LSODA,但它是Fortran语言编写的...(http://www.netlib.org/odepack/index.html)
似乎没有成为一个体面的求解C#编写我自己的代码在C#中太耗时了,特别是因为我有非常僵硬的方程需要解决。
网络的NAG库不包含ODE解算器(它们缺少D02例程)。这就是“大学方”图书馆。 但是NAG支持建议调用他们的dll,这对于简单变量来说很好,但是让我感到困惑的是它的外部函数和伪参数让我放弃了。
这使得LSODA仍然是Fortran,但它的调用顺序更简单 - 所以我想知道,Odepack(包括lsoda例程在内的解算器)怎么会变成一个没有多少工作的dll,所以它可能是从C#调用的? (这将让我担心的雅可比,是一个矩阵,即二维数组) 具体来说,我想类似与Fortran的NAG库的情况,而是为我提供访问lsoda:http://www.nag.co.uk/numeric/csharpinfo.asp
请记住,我是一名数学家 - 所以如果你的回答让我失望,请耐心等待我。我为什么如此专注于C# - 嗯,这很简单,特别是当你有VisualStudio 2010时。
非常感谢任何回复提前。
我的建议是只使用Fortran,但这当然不是解决您的问题的方法。奇怪的是,您使用VisualStudio,我在Linux上开发的一个重要原因是:没有成本,优秀的编程环境以及访问英特尔非商业编译器许可证。 – steabert 2012-01-27 15:19:50
但我不想要Fortran--它似乎不想死。它意味着学习一门对数学毫无用处的编程语言...... Visual Studio - 不,并不奇怪。 Linux:如果有更好的选择,请不要(Windows) - (我并不关心Linux,因为如果我能避免它,我无意使用它,我有更好的事情要做,而不是花几个星期去学习真正从中受益)。你说的对,它不是一个解决方案,只是一个临时补丁。 – DetlevCM 2012-01-27 15:27:58
具有讽刺意味的是,你抱怨Fortran不会死亡,而另一方面你不打算编写一个C#求解器:)另外,最终不会有什么好处,这不是你花在编程上的几天时间fortran等等(它基本上只是另一种语法),它会缺少学习新的东西的意愿(实际上并没有那么不同); – steabert 2012-01-27 17:40:43