2024-05-18 07:35:12 发布
网友
问题是罐子上写了什么。我正试图用数值方法解一个边值问题,我的朋友问我解算器是否适用于这些条件。解算器的页面没有给出我们所拥有的条件,即bc(y(a),y(b), p) = 0,但是我们的问题的形式是y(0) = some constant value和y'(b) = 0,给出了我们的Neumann条件,您是否需要重写函数以获得像shooting方法中那样的一阶约简?你知道吗
bc(y(a),y(b), p) = 0
y(0) = some constant value
y'(b) = 0
我想你正在解一个二阶方程
y''(t) = F(t,y(t), y'(t))
对于一阶系统,使用状态向量u = [y, v] = [y, y']。那么调用BVP解算器的最小值是
u = [y, v] = [y, y']
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中内部步骤的稀疏集合
res.success
res.message
res.sol
res.x
res.y
我想你正在解一个二阶方程
对于一阶系统,使用状态向量
u = [y, v] = [y, y']
。那么调用BVP解算器的最小值是总是检查
res.success
或至少打印出res.message
。您可能需要更好的初始猜测,对于非线性问题,不同的初始猜测可以给出不同的解决方案。res.sol
包含作为插值函数的解,为了生成绘图,最好使用此函数,而不是res.x
和res.y
中内部步骤的稀疏集合相关问题 更多 >
编程相关推荐