带有 sympy 的分段函数:如何仅针对某些输入值定义函数?

问题描述 投票:0回答:1

我正在用 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
是没有意义的,我想在我的代码中反映这一点。

python sympy symbolic-math piecewise
1个回答
0
投票

您可以使用

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
,函数未定义。

© www.soinside.com 2019 - 2024. All rights reserved.