Python:SciPy solve_bvp ODE 函数的问题

问题描述

我正在解决一个 ODE 系统,并且在理解如何正确设置边界条件方面遇到了一些问题,这(可能)与我没有得到任何解决方案有关。

我需要求解这些方程以获得低至 x~0 的高 x 值:

differential equations

以及以下边界条件:

v(x=1) = 1 & a(x=1) = 2

我写的代码是这样的:

def func(x,r):
    v,a = r
    dvdx = ( ((x - v)*a - 2/x ) * (x - v) ) / ( (x - v)**2 - 1 )
    dadx = ( (a - 2/x * (x - v)) * (x - v) )*a / ( (x - v)**2 - 1 )
    return dvdx,dadx

def bc(rv,ra):
    return np.array((rv[1],ra[1]-2))

x = np.linspace(0.1,100,1000)
y = np.zeros((2,x.size))

sol = solve_bvp(func,bc,x,y)

但是当我执行代码时,我得到了 0 个错误。这是有道理的,因为当 x=1 时,我的方程的分母将为 0。但边界条件难道不应该说明这一点吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)