Python:SciPy solve_bvp ODE函数的问题

2024-07-01 08:20:13 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在解决一个ODE系统,我有一些问题需要理解如何正确设置边界条件,这可能与我没有得到任何解决方案有关

我需要解这些方程,将高x值降到x~0:

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。但边界条件不应该解释这一点吗


Tags: 代码return系统defnp解决方案rafunc

热门问题