пытаюсь предсказать точное решение для уравнения Матье y "+ (лямбда - 2qcos (2x)) y = 0. Мне удалось получить пять собственных значений для уравнения, используя числовое приближение, и я хочу найти для каждогоСобственные значения предполагаемое точное решение. Было бы замечательно, если бы кто-то помог. Спасибо. Ниже приведен один из кодов для четвертого Собственного значения
из scipy.integrate. import import_bvp.1003 *
Определение уравнения Матье
q = 5.0
def func(x,u,p):
lambd = p[0]
# y'' + (lambda - 2qcos(2x))y = 0
ODE = [u[1],-(lambd - 2.0*q*np.cos(2.0*x))*u[0]]
return np.array(ODE)
Определение граничных условий (БК)
def bc(ua,ub,p):
return np.array([ua[0]-1., ua[1], ub[1]])
Угадающее решение уравнения Матье
def guess(x):
return np.cos(4*x-6)
Nx = 100
x = np.linspace(0, np.pi, Nx)
u = np.zeros((2,x.size))
u[0] = -x
res = solve_bvp(func, bc, x, u, p=[16], tol=1e-7)
sol = guess(x)
print res.p[0]
x_plot = np.linspace(0, np.pi, Nx)
u_plot = res.sol(x_plot)[0]
plt.plot(x_plot, u_plot, 'r-', label='u')
plt.plot(x, sol, color = 'black', label='Guess')
plt.legend()
plt.xlabel("x")
plt.ylabel("y")
plt.title("Mathieu's Equation for Guess$= \cos(3x) \quad \lambda_4 = %g$" % res.p )
plt.grid()
plt.show()
[График четвертых собственных значений] [2]