微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Python:SciPy solve_bvp ODE 函数的问题

如何解决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 举报,一经查实,本站将立刻删除。