Лучший способ - это решить связанную систему, то есть интегрировать DE для f
одновременно с текущим DE. Если это вариант вашей предыдущей задачи по математике. SE, то такой совместный подход неизбежен.
Что касается буквального решения, используйте интерполяцию
def f(x): return numpy.interp(x, x_samples, f_samples)
, а затем вызвать эту функцию в функции ODE
def y_ODE(x,y): return [y[1], -0.5*f(x)*y[1]]