Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# C语言中的复杂计算#_C#_Math_Matlab_Wolfram Mathematica - Fatal编程技术网

C# C语言中的复杂计算#

C# C语言中的复杂计算#,c#,math,matlab,wolfram-mathematica,C#,Math,Matlab,Wolfram Mathematica,.NET(C#)中提供的计算以下各项的最佳工具(效率最高)是什么: 积分 偏导数 其他非平凡数学 人们能评论一下Mathematica和Matlab以及它们与C#的集成吗 我不能保证它是最好的或更高效的,但几天前我了解到它为.NET开发了一个金融函数库 你可以在这里找到它: 也许这对你有用。你可以去看看——他们列出了几个C#1。我要说的是,尝试一些(如果是商业版的话,则是演示版)并进行一些评测,看看它们是否满足您的需求。您还可以使用-请参阅该条目的限制和备选方案部分。(我个人没有使用这些工具

.NET(C#)中提供的计算以下各项的最佳工具(效率最高)是什么:

  • 积分
  • 偏导数
  • 其他非平凡数学

人们能评论一下Mathematica和Matlab以及它们与C#的集成吗

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

你可以在这里找到它:

也许这对你有用。

你可以去看看——他们列出了几个C#1。我要说的是,尝试一些(如果是商业版的话,则是演示版)并进行一些评测,看看它们是否满足您的需求。您还可以使用-请参阅该条目的限制和备选方案部分。(我个人没有使用这些工具的经验。)

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

  • 实和复,稠密和稀疏线性代数(带,,…分解)
  • 数值函数积分(求积)例程
  • 积分变换

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

从概念上讲,我发现调用Mathematica的Java接口非常好。您有一组对象和方法,可以启动Mathematica会话并将Mathematica表达式发送给它们进行计算。您可以发送文本(在简单的情况下很容易,但如果您想要一些非琐碎的东西,则需要技巧)或更结构化的
Expr
对象来镜像语法树结构。这些表达式可以让你做任何事情:用数字或符号计算积分,求导数,解常微分方程,等等

在错误处理方面,它会出现一些问题。Mathematica本身没有例外;相反,当遇到问题时,它会生成“消息”,并继续尝试计算它正在处理的表达式。考虑到Mathematica相当不寻常的语义(它对重复规则重写的表达式进行操作),这有一定的意义,但与Mathematica通信的默认方法集不允许您从Java(或者,.NET)内部轻松监视这些消息,尽管可以编写自己的方法来更好地完成这项工作

看看f#

它将是Visual Studio 2010的一部分。

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

> Functional.integrate (fun [x] -> x**3.0 - x - 1.0) [-3.0, 3.0];;
val it : float = -6.0
> Functional.d (fun x -> x**3.0 - x - 1.0) 2.0;;
val it : float = 11.0
并计算该函数在
x=2时对
x
的偏导数,如下所示:

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

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

为了澄清您的最新编辑,您是否尝试在C#中使用Mathematica和/或MATLAB函数,或者你想从Mathematica或Matlab中调用C#类?应用程序是用C#编写的-我需要从C#(调用外部函数)执行计算Mathematica的MathLink.NET也在处理复数,Mathematica本身并不擅长这类问题(例如,Mathematica的
Fourier
大约比我上次看到的FFTW慢4倍,Mathematica的多核支持非常糟糕)。