如何使我的分段函数在python中提供的间隔之外为零

2024-05-15 23:20:55 发布

您现在位置:Python中文网/ 问答频道 /正文

这是我的代码:

    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()

更具体地说,我希望得到0作为对输入65的回答,因为1.4超出了区间[1,1.3]。在


Tags: 代码inimportasoutsymbolspsubs
1条回答
网友
1楼 · 发布于 2024-05-15 23:20:55

您需要告诉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中是有效的,您的代码在0.7.6中使用“复合条件”1 <=x <=1.3引发一个TypeError

相关问题 更多 >