Как вставить список в ODE: - PullRequest
       5

Как вставить список в ODE:

0 голосов
/ 19 января 2019

Я пытаюсь численно решить следующие ODE

y''(x)=-0.5*f(x)*y'(x)

с граничными условиями

y(x=0)=0;y(x=20)=1

Где f (x) - решение другого ODE, которое я уже решил численно. Я пытаюсь решить мой ODE с https://docs.scipy.org/doc/scipy-0.18.1/reference/generated/scipy.integrate.solve_bvp.html,, но проблема, с которой я столкнулся, заключается в том, что f (x) записывается в виде списка для

 coordinates x = np.arange(0,20.01,0.05)

и я не знаю, как вставить список в scipy.integrate.solve_bvp, чтобы получить решение ODE.

Заранее спасибо

1 Ответ

0 голосов
/ 19 января 2019

Лучший способ - это решить связанную систему, то есть интегрировать 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]]
...