直接从数学公式编写编程代码?

计算科学 matlab Python 数学
2021-12-05 11:54:36

对于使用任何编程语言,都应该在相应的代码中编写数学公式。我想知道是否有任何服务(对于任何编程语言、Matlab、Mathematica、Python 等)可以将数学公式(例如,用 TeX 编写)直接翻译成编程代码。

输入:TeX 中的数学公式 输出:Matlab、Mathematica、Python 等要执行的相应代码

2个回答

Julia 的宏和字符串宏就是为做这种事情而设计的。您可以在宏范围内定义领域特定语言 (DSL),并将其用作定义问题的一种方式。一个例子是DifferentialEquations.jl@ode_def您可能必须使用字符串宏(由于可解析为 AST),但这种工具可以让您自动翻译语法。字符串宏的一些有趣示例是MATLAB.jl mat""字符串,它允许您编写 MATLAB 代码并直接在 MATLAB 中执行:

mat"""
    $u = $x + $y
    $v = $x - $y
"""

r""同样,运行 R 代码的 Rcall.jl字符串

R"rnorm(10)"

那些对其他语言的调用,而像LispSyntax.jl这样的字符串宏只是将 Clojure 语法转换为 Julia:

lisp"(fib 30)"

因此,编写一个从 LaTeX 转换为标准 Julia 的程序绝对是可能的,但看起来还没有人达到那个确切的位置。

将 Tex 语法转换为方程式的一个问题是它可能是模棱两可的 - TeX 的主要目标是排版外观,而不是实际含义。如果您在 TeX 中已经有许多公式,那么将它们解析为符号形式是可以的。但如果从头开始,符号数学包将是更好的选择。

另一个问题是将符号方程转换为代码是非常特定于域的。为了使数学符号简洁,围绕书面公式有许多假设和隐含的上下文。任何解释公式的系统都需要了解这些。

大多数符号数学包都支持代码生成。有关 Sympy 中的一些示例,请参阅Sympy 代码生成教程