scipy.integrate.solve求解对于Neumann边界条件?

2024-05-18 07:35:12 发布

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

问题是罐子上写了什么。我正试图用数值方法解一个边值问题,我的朋友问我解算器是否适用于这些条件。解算器的页面没有给出我们所拥有的条件,即bc(y(a),y(b), p) = 0,但是我们的问题的形式是y(0) = some constant valuey'(b) = 0,给出了我们的Neumann条件,您是否需要重写函数以获得像shooting方法中那样的一阶约简?你知道吗


Tags: 方法value朋友some页面条件形式数值
1条回答
网友
1楼 · 发布于 2024-05-18 07:35:12

我想你正在解一个二阶方程

y''(t) = F(t,y(t), y'(t))

对于一阶系统,使用状态向量u = [y, v] = [y, y']。那么调用BVP解算器的最小值是

def ode(t,u): y,v = u; return [v, F(t,y,v)];
def bc(u0, ub): return [u0[0]-y0, ub[1]];

y0 = someconstantvalue;

t_init = [0,b];
u_init = [[y0, y0], [0, 0]];
res = solve_bvp(ode, bc, t_init, u_init)

总是检查res.success或至少打印出res.message。您可能需要更好的初始猜测,对于非线性问题,不同的初始猜测可以给出不同的解决方案。res.sol包含作为插值函数的解,为了生成绘图,最好使用此函数,而不是res.xres.y中内部步骤的稀疏集合

相关问题 更多 >