gpt4 book ai didi

python - Sympy:修改衍生产品的 LaTeX 输出

转载 作者:太空狗 更新时间:2023-10-30 01:19:53 26 4
gpt4 key购买 nike

在 Sympy 中,是否可以使用 latex() 修改函数导数的输出方式?默认是相当麻烦的。这个:

f = Function("f")(x,t)
print latex(f.diff(x,x))

会输出

\frac{\partial^{2}}{\partial x^{2}}  f{\left (x,t \right )} 

这很冗长。如果我更喜欢

f_{xx}

有没有办法强制这种行为?

最佳答案

您可以继承 LatexPrinter 并定义自己的 _print_DerivativeHere是当前的实现。

可能是这样的

from sympy import Symbol
from sympy.printing.latex import LatexPrinter
from sympy.core.function import UndefinedFunction

class MyLatexPrinter(LatexPrinter):
def _print_Derivative(self, expr):
# Only print the shortened way for functions of symbols
function, *vars = expr.args
if not isinstance(type(function), UndefinedFunction) or not all(isinstance(i, Symbol) for i in vars):
return super()._print_Derivative(expr)
return r'%s_{%s}' % (self._print(Symbol(function.func.__name__)), ' '.join([self._print(i) for i in vars]))

类似

>>> MyLatexPrinter().doprint(f(x, y).diff(x, y))
'f_{x y}'
>>> MyLatexPrinter().doprint(Derivative(x, x))
'\\frac{d}{d x} x'

要在 Jupyter 笔记本中使用它,请使用

init_printing(latex_printer=MyLatexPrinter().doprint)

关于python - Sympy:修改衍生产品的 LaTeX 输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43350381/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com