求解非线性微分方程(二阶,奇异性)

Solving non-linear differential equation (2-order, with singularity)

提问人:Eugene 提问时间:10/6/2023 最后编辑:jaredEugene 更新时间:10/6/2023 访问量:71

问:

好吧,我必须对 (0,1) 中 x 的非线性 DE 进行数值求解,如下图所示。此外,我知道,在 x=0 时,y 应该等于选择的常数 (0.25),而在 x = 1 时,y 应该等于零。在 x = 0 时,y'(0)=0。

DE

注意:a 和 c 是常量。

我正在尝试使用边界条件(y(0)=0.25,y'(1)=0)来解决它。但是有几个问题。首先,我找到了如何处理 x = 0 时的奇点的解决方案,但我不知道如何处理 x = 1 时的 y = 0。solve_bvp

这是我的 Python 代码。

import numpy as np
from scipy import integrate
import matplotlib.pyplot as plt

def eqs(x,y):
    a = 1240.5
    k = 12
    dydx = y[1]
    dudx = y[1]**2/y[0]+a*y[0]**2-(k**2*(k-1)**2)*y[0]*x**(2*k-4)/4
    return np.vstack((dydx, dudx))

x = np.linspace(0,1,101)
y0 = np.zeros((2,r.size))
y0[0] = 0.25
y0[1] = 0
S = np.array([[0.0,0.0],[0.0,-1.0]])

def bc(ya, yb):
    return np.array([ya[0]-0.25,yb[1]])

sol = integrate.solve_bvp(eqs,bc,x,y0,S=S)
plt.plot(x,sol.sol(x)[0])

图形 y(x):

它应如下所示:

Ideal graph

我做错了什么?

我试图针对不同的边界条件求解它。

python numpy scipy 数值方法 微分方程

评论

0赞 jared 10/6/2023
为什么真解的图没有相同的域?
1赞 jared 10/7/2023
(1) 您的二阶导数方程与您在照片中分享的方程不匹配。您缺少 -y'/x 项。(2) 您有一个二阶常微分方程,但似乎想要满足 4 个边界条件,即 y(0) = 0.25、y'(0) = 0、y(1) = 0 和 y'(1) = 0。你不能那样做。
1赞 Lutz Lehmann 10/7/2023
如果设置 ,则等式会简化。这可能会稳定 BVP 求解器的求解过程。始终检查 和 .y(x)=y(0)*exp(u(x))sol.successsol.message

答: 暂无答案