latex - 将 LaTeX 方程转换为 SymPy [Julia] 格式

标签 latex julia sympy

我正在尝试在 Julia 版本中将 LaTeX 转换为 SymPy 可理解的格式。我的 latex 公式可能涉及矩阵和其他符号。一个简单的例子是:

$\left[ \frac{(\theta - 1)(1 - \zeta_{n,s})c\beta}{\theta w a } \right]$

有没有办法自动将这个方程转换成 Julia 的 sympy 版本?

最佳答案

为了清楚起见,我将把 Python 版本的 SymPy 称为 SymPy,并将 Julia 包装器称为 SymPy.jl。

对于 LaTeX 解析,SymPy 需要额外的包 antlr4,它在 Conda 网站上称为 antlr4-python3-runtime

那么,SymPy.jl似乎没有sympy.parsing.latex模块。我可能太蠢了,无法理解它,但我不得不使用 PyCall 来进行解析本身。

请注意,antlr4 不喜欢 _{...} 形式的下标。这意味着它会因表达式中的 \zeta_{n,s} 而崩溃。我刚刚将其更改为下面的 \zeta(n, s)

为了检查我们是否可以将表达式与 SymPy.jl 一起使用,我刚刚向表达式添加了一个随机符号,它似乎有效。

# intall antlr4
using PyCall
run(`$(PyCall.python) -m pip install --upgrade antlr4-python3-runtime`)

# parse the expression
s = raw"\left[ \frac{(\theta - 1)(1 - \zeta(n,s))c\beta}{\theta w a } \right]"
using PyCall
latex = pyimport("sympy.parsing.latex")
expr = latex.parse_latex(s)

# check that we can interact with the expression
using SymPy
expr = expr + sympy.Symbol("y")

关于latex - 将 LaTeX 方程转换为 SymPy [Julia] 格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67562220/

相关文章:

optimization - Optim.jl : negative inverse Hessian

python - Sympy:在关系上使用逻辑运算符

latex - 如何在 LaTeX 中实现多个阶段的伪代码?

matplotlib - 使用 Julia Plots 访问后端特定功能

r - 在 Stargazer 的省略参数中包含两个变量的正确方法?

julia - 在 Julia 中编写模块 finalize 方法的正确方法是什么?

python - 检查 sympy 表达式是否包含函数

python - 在 SymPy 中绘制带有复变量的隐式方程

r - 四开本 qmd 到 pdf 的页眉和页脚

latex - Pandoc Markdown 分页符