在SymPy输出中,如何将分数放在括号前?

2024-04-26 13:31:55 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个字符串格式的SymPy表达式

-t*(a+b+c)/2

当漂亮的胶乳印刷(包括笔记本的乳胶输出),它太高,不太容易阅读。在

我怎样把分数合起来放在括号前?像这样:

^{2}$

代码示例:

from sympy import symbols, Function, Derivative, var, init_printing, pprint, latex

init_printing()
def T(y):
    var('mu')
    return -1 / (2 * mu) * Derivative(y, x, x)

def V(y):
    var('x')
    V = Function('V', commutative=True)(x)
    return V * y

def K(y):
    var('x')
    K = Function('K', commutative=True)(x)
    return K * y

def a1(y):
    var('tau', positive=True)
    return tau * (T(y) + V(y))

def c(A, B):
    def comm(y):
        return A(B(y)) - B(A(y))
    return comm

var('x')
var('t')
f = Function('psi', commutative=False)

c1k = c(a1, K)
print(latex(c1k(f(x,t)).doit().simplify()))

印刷品和展览

- \frac{\tau \left(2 \frac{d}{d x} K{\left (x \right )} \frac{\partial}{\partial x} \psi{\left (x,t \right )} + \frac{d^{2}}{d x^{2}} K{\left (x \right )} \psi{\left (x,t \right )}\right)}{2 \mu}

我想在latex()和Jupyter笔记本中都看到

-\frac{\tau}{2}\left(...\right)

Tags: righttruereturnvardef笔记本functionleft
1条回答
网友
1楼 · 发布于 2024-04-26 13:31:55

默认情况下,SymPy 1.1.1会断开长分数段。这导致了一个complaint,它导致了一个{a2},它在当前主分支中禁用了此行为。在

要重新启用以前的默认设置,请使用long_frac_ratio=2

The allowed ratio of the width of the numerator to the width of the denominator before we start breaking off long fractions. - SymPy docs

>>> print(latex(c1k(f(x,t)).doit().simplify(), long_frac_ratio=2))
- \frac{\tau}{2 \mu} \left(2 \frac{d}{d x} K{\left (x \right )} \frac{\partial}{\partial x} \psi{\left (x,t \right )} + \frac{d^{2}}{d x^{2}} K{\left (x \right )} \psi{\left (x,t \right )}\right)

设置可以包含在init_printing

^{pr2}$

相关问题 更多 >