У меня есть кусочный массив, сгенерированный массивом x
x = np.linspace(0, 1, 11) # = array([0. , 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1. ])
y = np.piecewise(x,
[x < p - h/2, (x >= p - h/2)&(x <= p + h/2), x > p + h/2],
[ 0 , 10 , 0 ])
С p = 0.25
и h = 0.1
. Средний интервал p - h/2 <= x <= p + h/2
можно переписать как 0.2 <= x <= 0.3
. Это означает, что 3-й и 4-й элементы массива y
должны быть 10
. Но при применении этого было получено
array([ 0., 0., 10., 0., 0., 0., 0., 0., 0., 0., 0.])
Я думаю, что это связано с усечением python в операции p + h/2
. Это правильно? Если это так, как я могу справиться с этим?