在Matlab,C++等中将数学公式转换为代码的方法?

Con*_*ngo 10 c++ math matlab wolfram-mathematica

我对所有的数学专家都有一个基本的问题.

"如果我有一篇学术论文,那么将一个简单的数学方程式转换成工作Matlab(或C++)代码的最简单方法是什么?"

理想情况下,会有一个Latex >> Matlab(或C++)转换工具.

但是,如果没有这个,是否有一个"备忘单",其中包含所有常见的数学符号,以及它们在Matlab(或R或C++)中的等效实现关键字?

Jer*_*fin 9

我从未见过这样的事情.大多数数学符号都是由(至少)合理智能的人理解,因此它经常省略生成工作代码所需的各种细节.如果你有这样一个工具,我怀疑它会产生超过(可能)10%的可用结果.

反过来似乎更加稳固 - 从代码中产生可读的数学符号(特别是来自像Mat​​lab这样的东西)听起来更合理.省略现有信息要比尝试合成缺失的信息容易得多.

  • 但反过来却有一个非常相似的问题 - 当我想了解一些算法,特别是数学算法时,我可以通过代码(数天或数周的过程)挖掘自己,或者我可以向作者请求简短的,人类的 - 可以理解的轮廓.我认为后者不易自动化. (2认同)
  • 如果您在未来10年内找到可以产生有用结果的工具,请告诉我;-) (2认同)

Con*_*ngo 9

使用Mathematica符号计算.

您可以直接在Mathematica中输入数学方程式,然后将结果导出为C代码.

继续调整等式,直到渲染看起来与学术论文中的原始等式相同.然后,您可以插入自己的参数,Mathematica将为您计算结果.

你甚至可以做一些很酷的事情,比如要求它来区分方程式 - 它会产生差异,并打印出所得到的方程式.

您可以使用任何语言调用Mathematica,包括.NET,Q,Python,Java等.

您甚至可以将Mathematica程序编译为.NET程序集并将其嵌入到您的应用程序中.

Mathematica还将发出与您刚刚输入的数学公式匹配的Java或C代码.

  • 是的,Mathematica具有导入LaTeX公式子集的功能,它甚至还具有尝试猜测它们的含义的功能.但是你需要了解公式的含义并自己纠正它们.比如`ToExpression ["$ J_3(x)$",TeXForm]`.它为您提供贝塞尔功能.无法保证原始论文的作者实际上是用'J`表示贝塞尔函数.正如许多其他人所指出的那样,有许多工具可以帮助在不同的表示之间转换公式,但最终由您来理解它们并使编程工作. (7认同)