这似乎是SymPy 1.4版中的一个bug。在master上,我没有得到例外,而是得到:In [2]: solve(lower + (upper - lower) * (0.5 + 0.5 * x / (1 + abs(x))) -y, x)
Out[2]:
⎡⎧0.5⋅lower + 0.5⋅upper - y 0.5⋅(lower + upper - 2.0⋅y) ⎧-0.5⋅lower - 0.5⋅upper + y 0.5⋅(-lower - upper + 2.0⋅y) ⎤
⎢⎪───────────────────────── for ─────────────────────────── < 0 ⎪────────────────────────── for ──────────────────────────── ≥ 0⎥
⎢⎨ lower - y lower - y , ⎨ upper - y upper - y ⎥
⎢⎪ ⎪ ⎥
⎣⎩ nan otherwise ⎩ nan otherwise ⎦
这将返回两个分段解,分别对应于负x和正x的情况(我想)。在
不过,我对上面的结果并不满意。我认为正确的结果应该是这样的:
^{pr2}$