13

.NET(C#)中用于计算的最佳工具(最有效)是什么:

  • 积分
  • 偏导数
  • 其他重要的数学

人们可以评论 Mathematica 和 Matlab 以及它们与C#的集成吗?

4

7 回答 7

13

Math.NET是一个用 C# 为 Microsoft .NET 平台编写的数学开源工具包,旨在为数值科学和符号代数计算提供一个自包含的干净框架。特别是,Math.NET NumericsdnAnalytics与Math.NET Iridium合并的结果,包括以下功能:

  • 实数和复数、稠密和稀疏线性代数(使用LUQReigenvalues、 ... 分解)
  • 数值函数积分(正交)例程
  • 积分变换
于 2009-08-29T21:53:43.740 回答
1

我不能保证它是最好的或更高效的,但几天前我了解到Luca Bolognese为 .NET 开发了一个财务函数库

你可以在这里找到它:http: //code.msdn.microsoft.com/FinancialFunctions

也许它对你有用。

于 2009-08-29T21:29:37.063 回答
1

我没有使用 Mathematica/.NET 桥接器的经验,但我使用过 Mathematica/Java 桥接器,从文档来看,它非常相似。当然,我无法回答的一个问题是接口的实现在稳定性和性能方面有多好。

从概念上讲,我发现调用 Mathematica 的 Java 接口非常好。您有一组对象和方法,可让您启动 Mathematica 会话并将 Mathematica 表达式发送给它们以进行评估。您可以发送文本(这在简单的情况下很容易,但如果您想要一些重要的东西则很棘手)或更多Expr反映语法树结构的结构化对象。这些表达式将允许您做任何事情:以数值或符号方式计算积分、求导数、求解 ODE 等。

它失败的一个领域是错误处理。Mathematica 本身没有例外。相反,当它遇到麻烦并继续尝试评估它正在处理的表达式时,它会产生“消息”。鉴于 Mathematica 相当不寻常的语义(它对具有重复规则重写的表达式进行操作),这是有道理的,但是与 Mathematica 通信的默认方法集不允许您轻松地从 Java 中监视这些消息(或者,看起来, .NET),尽管可以编写自己的方法来更好地完成此工作。

于 2009-08-31T14:06:36.900 回答
1

Microsoft 的Visual F#编程语言专为此类工作而设计,因此您可能只想从 C# 代码中调用现有的 F# 解决方案。例如,在安装了我们的F# for Numerics库的 Visual Studio 2010 中,您可以交互地将 x 3 -x-1 从 -3 集成到 3,如下所示:

> Functional.integrate (fun [x] -> x**3.0 - x - 1.0) [-3.0, 3.0];;
val it : float = -6.0

并计算该函数关于xat的偏导数,x=2如下所示:

> Functional.d (fun x -> x**3.0 - x - 1.0) 2.0;;
val it : float = 11.0
于 2010-04-22T23:06:36.883 回答
0

您可以查看http://www.dmoz.org/Science/Math/Software/ - 他们列出了几个 C#。我会说尝试一些(如果是商业版,则为演示版)并进行一些分析以查看它们是否符合您的要求。您也可以使用MATLAB - 请参阅该条目的限制和替代部分。(我对这些工具没有个人经验。)

于 2009-08-29T21:30:47.593 回答
0

看看 f# http://research.microsoft.com/en-us/um/cambridge/projects/fsharp/

它将成为 Visual Studio 2010 的一部分。

于 2009-08-31T14:19:32.890 回答
0

如果您有附加产品 MATLAB Builder for .NET,您可以将 MATLAB 代码打包到可以从 C# 调用的 .NET 程序集中。

于 2013-06-24T21:01:39.913 回答