简体   繁体   English

四阶非线性微分方程的稳定解

[英]Stable solution of a 4th order non linear differential equations

I have solved the following bvp problem using bvp solver in python.我已经在 python 中使用 bvp 求解器解决了以下 bvp 问题。

d4y/dx4= 0.00033*V/(0.000001-y)^(2), y(0)=y'(0)=y(1)=y'(1)=0 In the above eqn 'V' is a parameter which has been varied using the for loop. d4y/dx4= 0.00033*V/(0.000001-y)^(2), y(0)=y'(0)=y(1)=y'(1)=0在上面的 eqn 'V' 是使用 for 循环改变的参数。 The interesting part is that the solution to the above differential equation should be unstable for V>Vo.有趣的是,对于 V>Vo,上述微分方程的解应该是不稳定的。 The bvp solver still yields some wrong values for V>Vo.对于 V>Vo,bvp 求解器仍然会产生一些错误的值。 How do I make the solver stop computing as soon as this instability arises?一旦出现这种不稳定性,如何让求解器停止计算?

For the normalized equation (changed scale of y and V )对于归一化方程(改变yV的比例)

    y''''*(1e-6-y)**2 = 3.3e-4*V
    (1e6*y)''''*(1-1e6*y)**2 = 3.3e14*V

    u = 1e6*y,   c = 3.3e14*V

    u'''' = c/(1-u)**2

I get a critical value for c=70.099305 , that is, V0=0.2124e-12 .我得到c=70.099305的临界值,即V0=0.2124e-12 For very small c the solution is likewise small and close to y(t)=c/24*(t*(1-t))**2 .对于非常小的c解决方案同样小并且接近y(t)=c/24*(t*(1-t))**2 For c close to the critical value the grid refinement concentrates at the maximum close to y=0.4 .对于c接近临界值,网格细化集中在接近y=0.4的最大值处。

c=70.099305

def f(t,u): return [u[1],u[2],u[3],c/(1-u[0])**2]
def bc(u0,u1): return [u0[0], u0[1], u1[0], u1[1]]

t = np.linspace(0,1,5);
u = np.zeros([4,len(t)])
res = solve_bvp(f,bc,t,u, tol=1e-4, max_nodes=5000)
print(res.message)

%matplotlib inline
if res.success:
    plt.figure(figsize=(10,5))
    t = np.linspace(0,1,502)
    plt.plot(t, c/24*(t*(1-t))**2,c='y', lw=3)
    plt.plot(t,res.sol(t)[0],'b')
    plt.plot(res.x,res.y[0],'xr')
    plt.grid(); plt.show()

解图和小参数逼近

blue - numerical solution, yellow - approximation for small c蓝色 - 数值解,黄色 - 小c的近似值

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM