问题描述
我正在解决一个 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 (将#修改为@)