有没有办法在 python 的分段函数中指定 x!=y?
Is there a way to specify x!=y in a piecewise function in python?
我对这个词有点陌生,今天我想尝试在 jupyter notebook 上做一些数学运算。
我想解决这个功能:
enter image description here
我正在使用 jupyter notebook,以及 sympy、numpy 和 matplotlib 等模块,但我不知道如何表示 x!=-y。
例如,如果不是 x!=-y,函数是 x>y 我会这样做:
x, y = sp.symbols('x y', real=True)
g = sp.Piecewise(((x*y**4 - x**4*y)/(x**3+y**3), (x>y)), (0, True))
G = sp.Lambda((x,y), g)
display(G(x,y))
但是如果我输入 x!=-y,它不起作用(它不显示整个分段函数,它只显示分段函数的 'first part'),我不不知道怎么解决。
谢谢!!!
使用 SymPy,我们只能创建 Eq
和 non-equality 与 Ne
的相等性。那是因为在 SymPy 中 ==
和 !=
被保留用于符号表达式的结构比较。
因此,在您的示例中,您必须执行以下操作:
x, y = symbols('x y', real=True)
g = Piecewise(((x*y**4 - x**4*y)/(x**3+y**3), Ne(x, -y)), (0, True))
display(g)
我对这个词有点陌生,今天我想尝试在 jupyter notebook 上做一些数学运算。 我想解决这个功能: enter image description here
我正在使用 jupyter notebook,以及 sympy、numpy 和 matplotlib 等模块,但我不知道如何表示 x!=-y。
例如,如果不是 x!=-y,函数是 x>y 我会这样做:
x, y = sp.symbols('x y', real=True)
g = sp.Piecewise(((x*y**4 - x**4*y)/(x**3+y**3), (x>y)), (0, True))
G = sp.Lambda((x,y), g)
display(G(x,y))
但是如果我输入 x!=-y,它不起作用(它不显示整个分段函数,它只显示分段函数的 'first part'),我不不知道怎么解决。
谢谢!!!
使用 SymPy,我们只能创建 Eq
和 non-equality 与 Ne
的相等性。那是因为在 SymPy 中 ==
和 !=
被保留用于符号表达式的结构比较。
因此,在您的示例中,您必须执行以下操作:
x, y = symbols('x y', real=True)
g = Piecewise(((x*y**4 - x**4*y)/(x**3+y**3), Ne(x, -y)), (0, True))
display(g)