MATLAB Answers

Solution to nonlinear differential equation

7 views (last 30 days)
Marcus Rosales
Marcus Rosales on 29 Oct 2019
Commented: darova on 31 Oct 2019
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:
  1. How do you input initial conditions which are both given in terms of just the function (i.e. not it's derivatives)?
  2. 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!
  2 Comments
Marcus Rosales
Marcus Rosales on 29 Oct 2019
I was uncertain too, but yes I have it correct. I would have expected a negative sign in the expoential, so maybe the actual paper has a typo. I attached a screen shot of the equation.

Sign in to comment.

Accepted Answer

darova
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
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=(

Sign in to comment.

More Answers (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by