Solution to nonlinear differential equation
5 views (last 30 days)
Show older comments
Hello, I am trying to solve the following differential equation, but I am running into some issues when using ODE45:

subject to the boundary conditions:


I broke this up into a system of two first order differential equations, but I am having trouble with the following aspects of the problem:
- How do you input initial conditions which are both given in terms of just the function (i.e. not it's derivatives)?
- ODE45 will not be able to go too far past |t|=10, so should I just set my bc's at this point?
Any help would be greatly appreciated or a indication of the correct direction for solution. Thanks in advance!
Accepted Answer
darova
on 30 Oct 2019
Here is an attempt
function bvp4c_mathworks
solinit = bvpinit([-1 1],[0 0]); %[-inf, inf] replaces with [-1, 1]
sol = bvp4c(@myode,@mybc,solinit);
plot(sol.x, sol.y), grid on
% legend('y(t)','x(t)')
% xlabel('t')
end
function dy = myode(t,y)
dy(1,1) = y(2);
dy(2,1) = 1/2*(1-exp(2*t))*sin(y(1));
end
function res = mybc(ya,yb)
res = [ya(1)
yb(1)-pi/2];
end
2 Comments
darova
on 31 Oct 2019
- why did you choose the intreval [-1,1]?
It was just a shot in the dark. I like how it looks so why not. [-10 10] doesn't work for me=(
More Answers (0)
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!