Second order ordinary differential equation
조회 수: 9 (최근 30일)
이전 댓글 표시
I am trying to find the exact solution of this differential equation, but the error 'explicit solution not found' occur -y''(x) +2cos2x*y(x) -lambda*y(x) =0
댓글 수: 3
Walter Roberson
2024년 1월 15일
The notation is a bit ambiguous.
Note that it matters in the end.
syms y(x) lambda
dy = diff(y);
d2y = diff(dy);
eqn = d2y + 2 * cos(2*x) * y - lambda*y == 0
dsolve(eqn)
eqn2 = d2y + 2 * cos(2*x * y) - lambda*y == 0
dsolve(eqn2)
답변 (1개)
Sam Chak
2024년 1월 15일
Hi @Abdul
I believe that 'explicit solution not found' is more of a notification than an error message. Upon closer inspection, your second-order system appears to resemble the Mathieu Differential Equation. If that's the case, the solution is provided in the form of the Mathieu function. For additional information, please refer to the following file on File Exchange:
댓글 수: 1
Sam Chak
2024년 1월 16일
@Abdul, I don't know how to express the Mathieu functions in MATLAB, but I simulated the Mathieu differential equation for different values of lambda (λ) to observe the stability of the solutions.
lambda = 1:6;
t = 0:0.01:60;
y0 = [1; 0];
for j = 1:numel(lambda)
sol = ode45(@(t, y) MathieuDE(t, y, lambda(j)), t, y0);
y = deval(sol, t);
subplot(2, 3, j)
plot(y(1,:), y(2,:)), grid on
xlabel('y_{1}'), ylabel('y_{2}')
title("\lambda = "+string(lambda(j)))
axis equal
end
%% Mathieu Differential Equation
function dydt = MathieuDE(t, y, lambda)
dydt = zeros(2, 1);
dydt(1) = y(2);
dydt(2) = 2*cos(2*t)*y(1) - lambda*y(1);
end
참고 항목
카테고리
Help Center 및 File Exchange에서 Numerical Integration and Differential Equations에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
