如何解决Python:SciPy solve_bvp ODE 函数的问题
我正在解决一个 ODE 系统,并且在理解如何正确设置边界条件方面遇到了一些问题,这(可能)与我没有得到任何解决方案有关。
我需要求解这些方程以获得低至 x~0 的高 x 值:
以及以下边界条件:
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 举报,一经查实,本站将立刻删除。