Second order non linear differential
1 view (last 30 days)
Show older comments
I have to solve the following equation: y''(s) + cos(y) = 0
BC: y(0) = pi/2 and y(L/4) = 0
I actually have no idea what function is the correct one in this case or even if MatLab can solve this, do you have any suggestion?
Answers (1)
Manikanta Aditya
on 1 Jun 2024
Edited: Manikanta Aditya
on 1 Jun 2024
Solving a second-order nonlinear differential equation analytically can be challenging, and often such equations do not have closed-form solutions. However, MATLAB can be used to solve this numerically.
You can use the ode45 function, which is a versatile solver for ordinary differential equations.
Check this script which will help you:
function solve_nonlinear_ode
% Initial conditions
y0 = [0; 0]; % y(0) = 0, y'(0) = 0
% Time span
tspan = [0 10];
% Solve the system
[t, y] = ode45(@nonlinear_ode, tspan, y0);
% Plot the solution
figure;
plot(t, y(:,1));
xlabel('s');
ylabel('y(s)');
title('Solution of y''''(s) + cos(y) = 0');
grid on;
end
function dydt = nonlinear_ode(~, y)
dydt = zeros(2, 1); % Initialize the output
dydt(1) = y(2); % y' = v
dydt(2) = -cos(y(1)); % v' = -cos(y)
end
I hope this helps.
8 Comments
Sam Chak
on 2 Jun 2024
Hi Manikanta,
Thank you for your clarification. The OP has updated the description of the problem, but there does not appear to be an edit history available for tracking the changes.
However, your efforts to be helpful are commendable. It is important to remain motivated, as some individuals may not be adept at framing their problems when asking questions for the first time. However, that does not necessarily imply that their questions are simply obvious homework assignments for students.
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!