В sympy У меня есть интеграл, который возвращает объект Piecewise, например.Работа с кусочными уравнениями, возвращаемыми интегралом sympy
In [2]: from sympy.abc import x,y,z
In [3]: test = exp(-x**2/z**2)
In [4]: itest = integrate(test,(x,0,oo))
In [5]: itest
Out[5]:
⎧ ___
⎪ ╲╱ π ⋅z │ ⎛ 1 ⎞│ π
⎪ ─────── for │periodic_argument⎜──────────────, ∞⎟│ ≤ ─
⎪ 2 │ ⎜ 2 ⎟│ 2
⎪ │ ⎝polar_lift (z) ⎠│
⎪
⎪∞
⎪⌠
⎨⎮ 2
⎪⎮ -x
⎪⎮ ───
⎪⎮ 2
⎪⎮ z
⎪⎮ ℯ dx otherwise
⎪⌡
⎪0
⎩
Я хотел бы извлечь только первую ветвь этой кусочно уравнения, другими словами, я хотел бы быть в состоянии сделать что-то вроде itest.parts(0)
извлечь просто sqrt(pi)*z/2
. Я не могу найти способ сделать это, но, возможно, я использую неправильные условия поиска в документации. Есть идеи?
Редактировать
Покопавшись немного, мне удалось найти, что если я itest.args[0][0]
я могу извлечь это выражение. Однако это похоже на хак. Есть ли лучший подход?