SymPy 比较与条件

1 投票
1 回答
1009 浏览
提问于 2025-04-20 23:03

SymPy中相当于Mathematica函数的是什么:f[x_]:=If[x==Infinity,1,2]?

我尝试过但没有成功:

lambdify(x,Piecewise((1, <expr> ),(2,True))

其中 <expr> 是以下之一:

1)

 Eq(x,oo)

2)

 simplify(x)==oo

3)

 Eq(x+1,x)

1 个回答

1

正确的写法应该是 Piecewise((1, Eq(x, 0)), (2, True))。这里的 == 是用来比较结构的,它不会创建一个符号对象(详细信息可以查看 这个链接)。

这个对我来说是有效的。

In [3]: f = lambdify(x, Piecewise((1, Eq(x, 0)), (2, True)))

In [4]: f(0)
Out[4]: 1

In [5]: f(1)
Out[5]: 2

撰写回答