Ошибка в дифференциальном уравнении Scipy BVP второй степени

#python-3.x #scipy

Вопрос:

Уравнение: y»=40x — 10(x^2)

Граничное условие: y(0)=0,004 и y(1)= 0,007

Необходимо построить график x против y

 def fun(x, y):
    return np.vstack((y[1], (40000*x)-(20000*(x**2)/2)))

def bc(ya, yb):
    return np.array([ya[0], yb[0]])

x = np.linspace(0, 1, 11)

y_a = np.zeros((2, x.size))
y_b = np.zeros((2, x.size))
y_a[0] = 0.004
y_b[0] = 0.007

res_a = solve_bvp(fun, bc, x, y_a)

res_b = solve_bvp(fun, bc, x, y_b)

x_plot = np.linspace(0, 1, 11)
y_plot_a = res_a.y[0]
y_plot_b = res_b.y[0]
plt.plot(x_plot, y_plot_a, label='y_a')
plt.plot(x_plot, y_plot_b, label='y_b')

plt.show()
 

Ошибка значения: x и y должны иметь одинаковое первое измерение, но иметь формы (11,) и (13,)

  1. Когда у x 11 элементов, почему у y 13 элементов
  2. Правильно ли применяется граничное условие?