我有一个来自 sympy 的 Piecewise 类意义上的分段定义函数,并且希望能够操作其中的表达式和条件以形成新的分段函数。例如,我如何更改下面
x**2
中的表达式-x
和p
?我也希望能够改变条件。
我试图这样做,这样我就不必每次都从头开始输入明确的分段定义;我正在使用的大多数函数都可以通过简单的数学运算轻松地从其他函数获得。我能找到的唯一可能在 ExprCondPair 中工作的东西,但通过查看官方文档,我不明白这是如何工作的。如何操作下面
p
中的表达式和条件?
from sympy import Symbol, Piecewise
x = Symbol('x')
p = Piecewise((x**2, x<=0), (-x, True))
您可以通过访问
Piecewise
属性(一个
args
对的元组)来操作 (expr, cond)
函数中的表达式和条件。
这是一个可能的实现:
from sumpy import Symbol, Piecewise
x = Symbol('x')
p = Piecewise((x**2, x<=0), (-x, True))
args = list(p.args)
args[0] = (x**3, args[0][1])
args[1] = (args[1][0], x > 0)
p_new = Piecewise(*args)
print(p_new)