Trong sympy tôi có tích phân trả về một đối tượng Piecewise, ví dụ:Xử lý các phương trình piecewise được trả về bởi sympy tích hợp
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
⎩
Tôi muốn trích xuất chỉ là chi nhánh đầu tiên của phương trình piecewise này, nói cách khác, tôi muốn để có thể làm điều gì đó như itest.parts(0)
để trích xuất đơn giản sqrt(pi)*z/2
. Tôi dường như không thể tìm thấy bất kỳ cách nào để làm điều này, nhưng có lẽ tôi đang sử dụng các thuật ngữ tìm kiếm sai trong tài liệu. Bất kỳ ý tưởng?
Sửa
Poking xung quanh một chút, tôi đã quản lý để thấy rằng nếu tôi làm itest.args[0][0]
tôi có thể trích xuất biểu hiện này. Điều này có vẻ như một chút của một hack, tuy nhiên. Có cách tiếp cận tốt hơn không?