在sympy中,我有一个积分公式,它返回一个Piecewise对象,例如:
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]
,就可以提取这个表达式。不过这似乎有点像一个黑客行为。有更好的方法吗?