Piecewise在 sympy 中,如何为子函数中的多个变量声明具有多个限制的函数?
这是我的背景和尝试:
from sympy import Piecewise, Symbol, exp
from sympy.abc import z
x1 = Symbol('x1')
x2 = Symbol('x2')
f = 2*pow(z,2)*exp(-z*(x1 + x2 + 2))
p = Piecewise((f, z > 0 and x1 > 0 and x2 > 0), (0, True))
Run Code Online (Sandbox Code Playgroud)
我收到的错误是:
TypeError Traceback (most recent call last)
<ipython-input-47-5e3db02fe3dc> in <module>()
----> 1 p = Piecewise((f, z > 0 and x1 > 0 and x2 > 0), (0, True))
C:\Anaconda3\lib\site-packages\sympy\core\relational.py in __nonzero__(self)
193
194 def __nonzero__(self):
--> 195 raise TypeError("cannot determine truth value of Relational")
196
197 __bool__ = __nonzero__
TypeError: cannot determine truth value of Relational
Run Code Online (Sandbox Code Playgroud)
啊,有一个 sympyAnd函数可以解决这个问题:
from sympy import Piecewise, Symbol, exp, And
from sympy.abc import z
x1 = Symbol('x1')
x2 = Symbol('x2')
f = 2*pow(z,2)*exp(-z*(x1 + x2 + 2))
p = Piecewise((f, And(z > 0, x1 > 0, x2 > 0)), (0, True))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1683 次 |
| 最近记录: |