问题是罐头上写的是什么。我正在尝试用数值方法解决一个边值问题,我的朋友问我,求解器是否适用于这些条件。求解器的页面没有给出我们拥有的条件,即bc(y(a),y(b), p) = 0,但是我们问题的形式是y(0) = some constant value和y'(b) = 0,给出了我们的Neumann条件,你需要重写函数来有一个像打靶法一样的一阶降阶吗?
发布于 2019-12-09 06:12:39
我想你是在解一些二阶常微分方程
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.x和res.y中使用内部步骤的稀疏集合
https://stackoverflow.com/questions/59240158
复制相似问题