Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在SymPy输出中将分数放在括号之前?_Python_Python 3.x_Sympy - Fatal编程技术网

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

Python 如何在SymPy输出中将分数放在括号之前?,python,python-3.x,sympy,Python,Python 3.x,Sympy,我有一个字符串格式的SymPy表达式 -t*(a+b+c)/2 当以乳胶形式打印出来时(包括笔记本的乳胶输出),它太高,不容易阅读 如何组合分数并将其放在括号之前?像这样: (-t/2)*(a+b+c) 代码示例: from sympy import symbols, Function, Derivative, var, init_printing, pprint, latex init_printing() def T(y): var('mu') return -1 /

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

-t*(a+b+c)/2
当以乳胶形式打印出来时(包括笔记本的乳胶输出),它太高,不容易阅读

如何组合分数并将其放在括号之前?像这样:

(-t/2)*(a+b+c)
代码示例:

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)

默认情况下,SymPy 1.1.1会断开长分数的碎片。这导致在当前主分支中禁用此行为的

要重新启用以前的默认值,请使用
long\u frac\u ratio=2

在我们开始分解长分数之前,分子宽度与分母宽度的允许比率

设置可以包括在
初始打印中

init_printing(long_frac_ratio=2)

你能提供一些代码来说明如何使用这个表达式吗?(包括导入Symphy等)@user4412195已更新。我复制粘贴了您的代码,并在Symphy 1.1.1中获得了
-\frac{tau}{2\mu}\left(…
。可能更新?@user4412195我使用今天的主分支,该分支具有非交换函数修复。可能,回归?是否有一个可以传递到
init_printing()的所有参数的简单列表
?我发现这些文档有点混乱。@HomoComputer是指未包含在初始打印文档字符串中的任何参数都会传递给打印机,在本例中为
latex
。因此,如果您查看
latex
的帮助(链接在答案中),它列出了可以传递的选项。从SymPy 1.3开始,“long\u frac\u ratio”是print()的无效关键字参数。
init_printing(long_frac_ratio=2)