提问人:Eugene 提问时间:10/6/2023 最后编辑:jaredEugene 更新时间:10/6/2023 访问量:71
求解非线性微分方程(二阶,奇异性)
Solving non-linear differential equation (2-order, with singularity)
问:
好吧,我必须对 (0,1) 中 x 的非线性 DE 进行数值求解,如下图所示。此外,我知道,在 x=0 时,y 应该等于选择的常数 (0.25),而在 x = 1 时,y 应该等于零。在 x = 0 时,y'(0)=0。
注意: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):
它应如下所示:
我做错了什么?
我试图针对不同的边界条件求解它。
答: 暂无答案
评论
y(x)=y(0)*exp(u(x))
sol.success
sol.message