我是python的新手,我正在尝试制作一系列逐步函数。我已经编写了以下代码,但是,对于某些n值,例如n = 4,6,7,8,10,11,...,它不能真正起作用,并且在间隔[0中的所有点处仅返回0 ,1]
import numpy as np
import math
def int1haar(n,x):
m=2**(math.floor(math.log(n-1,2)))
k=n-m-1
alpha=k/m
beta=(k+0.5)/m
gama=(k+1)/m
if x >=0 and x < alpha:
return 0
elif x >=alpha and x < beta:
return x-alpha
elif x >=beta and x < gama:
return 2*beta-x-alpha
elif x >=gama and x <= 1:
return 2*beta-alpha-gama
else:
return 0
print(int1haar(2,.5))
vfun = np.vectorize(int1haar)
x = np.linspace(0,1,num=1000)
y = vfun(4,x)
print(y)
我期望一个非零向量,但输出是零向量。