You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在SymPy输出中将分式置于括号之前?

解决SymPy表达式LaTeX输出格式问题

要让你的表达式从- \frac{\tau \left( ... \right)}{2 \mu}变成-\frac{\tau}{2\mu}\left(...\right)的紧凑形式,核心是让SymPy把常数因子从分子中提取出来,调整表达式结构后,LaTeX输出自然会符合你的预期。

具体实现步骤

在你的代码里,对最终化简后的表达式调用factor_constants()方法——它会自动把所有符号常数(比如这里的tau和mu相关系数)作为公因子提取到括号外面。

修改后的代码末尾部分如下:

expr = c1k(f(x,t)).doit().simplify().factor_constants()
print(latex(expr))

效果说明

  • 调用factor_constants()后,表达式结构会变为(-tau/(2*mu)) * (2*K'(x)*ψ_x(x,t) + K''(x)*ψ(x,t))
  • 对应的LaTeX输出会直接变成你想要的格式:
    -\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)
    
  • 在Jupyter Notebook中,由于init_printing()会自动渲染LaTeX,显示效果也会是系数乘括号的紧凑样式,不会再出现过高的分式。

补充提示

如果遇到更复杂的表达式,factor_constants()不够用的话,还可以尝试用collect(expr, tau/mu)手动指定要提取的因子,但对你当前的场景来说,factor_constants()已经足够简洁高效。

内容的提问来源于stack exchange,提问作者homocomputeris

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 07:03:06