答案 0 :(得分:1)
基本上,您可以通过k
从z
获得唯一相关的int(z * 10)
。然后,您必须确保该函数在0
区间之外为[0, 4]
。其余的只是简单多项式的评估。尝试这样的事情:
def f(z):
k = int(z * 10)
if k < 0 or k > 40: return 0.0
return (
((2 * k + 1) / 20.0 - ((k + 1)**4 - k ** 4) / 1000.0) *
(z - k / 10.0) +
(k*k/200.0 - k**4 / 10000.0)
)
我假设您的公式中确实存在拼写错误,并且您实际上需要[k/10, (k+1)/10)
上的特征函数(关闭,打开),而不是[k/10, (k+1)/10]
(关闭,关闭)。在整合期间,间隔之间的不连续跳跃无关紧要,但感觉好像它们不应该首先出现在那里。