对于使用任何编程语言,都应该在相应的代码中编写数学公式。我想知道是否有任何服务(对于任何编程语言、Matlab、Mathematica、Python 等)可以将数学公式(例如,用 TeX 编写)直接翻译成编程代码。
输入:TeX 中的数学公式 输出:Matlab、Mathematica、Python 等要执行的相应代码
对于使用任何编程语言,都应该在相应的代码中编写数学公式。我想知道是否有任何服务(对于任何编程语言、Matlab、Mathematica、Python 等)可以将数学公式(例如,用 TeX 编写)直接翻译成编程代码。
输入:TeX 中的数学公式 输出:Matlab、Mathematica、Python 等要执行的相应代码
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 代码生成教程