sympy绘图与分段函数冲突

1 投票
1 回答
2840 浏览
提问于 2025-04-18 11:14

我用sympy创建了一个分段函数:

x= symbols('x')

XL = (1-x)**2
XH = (x-1)**1.5

XX= Piecewise((XL,x<=1),(XH,x>1))
plot(XX,(x,0,2),adaptive=False, num_of_points=200)

这个函数可以在0到2之间的任何值计算XX(这是我们关心的范围)。

但是当我画图的时候,它报错说负数不能被分数次方,这种情况本不应该发生,因为只有当x大于1时,才会涉及到分数次方。

难道它在某种原因下处理了整个范围的两个部分吗?你有什么想法吗?

1 个回答

0

最后,我用的解决办法是 abs(x-1):

x= symbols('x')
XL = (1-x)**2
XH = abs(x-1)**1.5

XX= Piecewise((XL,x<=1),(XH,x>1))
plot(XX,(x,0,2),adaptive=False, num_of_points=200)

这样做在实际使用这个数字的时候是对的,而且避免了错误。我也在Github上提交了这个bug。

撰写回答