这是我的代码:
In [61]: import sympy as sp
In [62]: x = sp.Symbol('x')
In [63]: phi_1 = sp.Piecewise( ( (1.3-x)/0.3, 1<=x <=1.3 ))
In [64]: phi_1.subs(x,1.2)
Out[64]: 0.333333333333334
In [65]: phi_1.subs(x,1.4)
Out[65]: Piecewise()更具体地说,我想得到零作为输入65的答案,因为1.4在间隔1,1.3之外。
发布于 2015-03-27 19:01:37
您需要告诉Piecewise,当超出界限时,您希望该函数的计算值为零,例如:
import sympy as sp
x = sp.Symbol('x')
phi_1 = sp.Piecewise(
(0, x < 1),
(0, x > 1.3),
( (1.3-x)/0.3, True )
)
print(phi_1.subs(x,1.2)) # 0.333333333333334
print(phi_1.subs(x,1.4)) # 0注意,这个语法在0.7.1和0.7.6中有效--您的代码使用“复合条件”1 <=x <=1.3在0.7.6中引发一个1 <=x <=1.3
https://stackoverflow.com/questions/29307980
复制相似问题