gpt4 book ai didi

python - Python 中的 Sympy 因式分解

转载 作者:行者123 更新时间:2023-12-01 04:58:36 33 4
gpt4 key购买 nike

如果我使用 Sympy 获得了以下方程:

enter image description here

是否可以排列变量,使 x 和 L 在方程中仅显示为 x/L?

最佳答案

用另一个符号(例如 y)替换 x/L 似乎对我有用:

>>> import sympy as sp
>>> x, L, u, nu, y = sp.symbols('x L u nu y')
>>> expr = 0.45*nu/u**6/(1-x/L)**6 * (u**5*x - 5*u**5*x**2/2/L + 10*u**5*x**3/3/L**2 - 5*u**5*x**4/2/L**3 + u**5*x**5/L**4 - u**5*x**6/6/L**5)
>>> sp.init_printing(use_unicode=True)
>>> expr
⎛ 5 2 5 3 5 4 5 5 5 6⎞
⎜ 5 5⋅u ⋅x 10⋅u ⋅x 5⋅u ⋅x u ⋅x u ⋅x ⎟
0.45⋅ν⋅⎜u ⋅x - ─────── + ──────── - ─────── + ───── - ─────⎟
⎜ 2⋅L 2 3 4 5⎟
⎝ 3⋅L 2⋅L L 6⋅L ⎠
────────────────────────────────────────────────────────────
6
6 ⎛ x⎞
u ⋅⎜1 - ─⎟
⎝ L⎠
>>> expr2 = expr.subs(x/L, y)
>>> expr2
⎛ 5 5 5 3 5 2 5 ⎞
⎜ u ⋅x⋅y 5 4 5⋅u ⋅x⋅y 10⋅u ⋅x⋅y 5⋅u ⋅x⋅y 5 ⎟
0.45⋅ν⋅⎜- ─────── + u ⋅x⋅y - ───────── + ────────── - ──────── + u ⋅x⎟
⎝ 6 2 3 2 ⎠
───────────────────────────────────────────────────────────────────────
6 6
u ⋅(-y + 1)
>>> expr2.collect(x*u**5)
⎛ 5 3 2 ⎞
⎜ y 4 5⋅y 10⋅y 5⋅y ⎟
0.45⋅ν⋅x⋅⎜- ── + y - ──── + ───── - ─── + 1⎟
⎝ 6 2 3 2 ⎠
─────────────────────────────────────────────
6
u⋅(-y + 1)
>>>

如果您确实希望它显示为 (x/L) 符号,您需要定义它并重新替换它:

>>> s = sp.symbols('(x/L)')
>>> expr2.collect(x*u**5).subs(y, s)
⎛ 5 3 2 ⎞
⎜ (x/L) 4 5⋅(x/L) 10⋅(x/L) 5⋅(x/L) ⎟
0.45⋅ν⋅x⋅⎜- ────── + (x/L) - ──────── + ───────── - ─────── + 1⎟
⎝ 6 2 3 2 ⎠
─────────────────────────────────────────────────────────────────
6
u⋅(-(x/L) + 1)

关于python - Python 中的 Sympy 因式分解,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26796493/

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