如何在 ODE 中插入列表:
How to insert list in a ODE:
我正在尝试对以下 ODE 进行数值求解
有边界条件
y(x=0)=0;y(x=20)=1
其中 f(x) 是我已经用数值方法求解的另一个 ODE 的解。我正在尝试用 https://docs.scipy.org/doc/scipy-0.18.1/reference/generated/scipy.integrate.solve_bvp.html 求解我的 ODE,但我遇到的问题是 f(x) 被写为
的列表
coordinates x = np.arange(0,20.01,0.05)
我不知道如何在scipy.integrate.solve_bvp中插入列表来获得ODE的解。
提前致谢
最好的办法是解决耦合系统,即把f
的DE和现在的DE同时整合。如果这是您之前在 math.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]]
我正在尝试对以下 ODE 进行数值求解
有边界条件
y(x=0)=0;y(x=20)=1
其中 f(x) 是我已经用数值方法求解的另一个 ODE 的解。我正在尝试用 https://docs.scipy.org/doc/scipy-0.18.1/reference/generated/scipy.integrate.solve_bvp.html 求解我的 ODE,但我遇到的问题是 f(x) 被写为
的列表 coordinates x = np.arange(0,20.01,0.05)
我不知道如何在scipy.integrate.solve_bvp中插入列表来获得ODE的解。
提前致谢
最好的办法是解决耦合系统,即把f
的DE和现在的DE同时整合。如果这是您之前在 math.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]]