您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

python – Sympy:修改衍生物的LaTeX输出

5b51 2022/1/14 8:21:46 python 字数 2498 阅读 516 来源 www.jb51.cc/python

在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} 有没

概述

在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}

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

也许是这样的

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输出全部内容,希望文章能够帮你解决python – Sympy:修改衍生物的LaTeX输出所遇到的程序开发问题。


如果您也喜欢它,动动您的小指点个赞吧

除非注明,文章均由 laddyq.com 整理发布,欢迎转载。

转载请注明:
链接:http://laddyq.com
来源:laddyq.com
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


联系我
置顶