我正在用 sympy 尝试分段函数,并发现当我仅在特定间隔内给出成对的表达式和条件时,它不喜欢它。例如,当我键入以下内容试图使
x<0
的函数未定义时:
from sympy import Symbol, Piecewise
x = Symbol('x')
p = Piecewise((3, 0<=x<=5), (5, x>5))
我收到错误消息
TypeError: cannot determine truth value of Relational
但是,当我从第一个条件中删除
0<=
时,它工作正常,但为负 3
分配相应的表达式 x
,这是我不想要的。在许多情况下,将函数定义为负数x
是没有意义的,我想在我的代码中反映这一点。
您可以使用
And
函数组合条件来定义特定区间的分段函数:
from sympy import Symbol, Piecewise, And
x = Symbol('x')
p = Piecewise((3, And(0<=x, x<=5)), (5, x>5))
这里我确保该函数仅针对0 <= x <= 5
进行
定义。对于
x > 5
,函数返回 5
,对于 x < 0
,函数未定义。