我需要解决二阶边值问题 (BVP),其中方程取决于几个已知参数,它们是几何参数和材料常数。
我想为已知参数值的几种组合求解这个方程。是否可以使用 来做到这一点solve_bvp()
?我正在按照 in 中的args
参数的思路进行思考solve_ivp()
。
如果我的问题不清楚,想象一下我想从solve_bvp() 文档中求解Bratu 方程的几个值k
,而不必每次都更改k
函数中的值fun(x,y)
。如何实现?
我需要解决二阶边值问题 (BVP),其中方程取决于几个已知参数,它们是几何参数和材料常数。
我想为已知参数值的几种组合求解这个方程。是否可以使用 来做到这一点solve_bvp()
?我正在按照 in 中的args
参数的思路进行思考solve_ivp()
。
如果我的问题不清楚,想象一下我想从solve_bvp() 文档中求解Bratu 方程的几个值k
,而不必每次都更改k
函数中的值fun(x,y)
。如何实现?
看起来solve_ivp
直到args
最近才出现,请参阅 GitHub 上的问题。
他们建议的解决方法是在您的函数周围使用 lambda 表达式,它将其他参数设置为关键字。
对于 Bratu 方程,从文档中修改示例,我相信这看起来像:
def fun(x, y,k=0):
return np.vstack((y[1], -k*np.exp(y[0])))
def bc(ya, yb):
return np.array([ya[0], yb[0]])
x = np.linspace(0, 1, 5)
y_a = np.zeros((2, x.size))
res_a = solve_bvp(lambda x,y: fun(x,y,k=1), bc, x, y_a)