MATLAB Matlab:Evaluating ODE at Points

  • Thread starter Thread starter qspeechc
  • Start date Start date
  • Tags Tags
    Ode Points
AI Thread Summary
The discussion revolves around solving a second-order ordinary differential equation (ODE) by reducing it to two first-order ODEs and using MATLAB's ode45 function. The user initially attempts to evaluate the solution and its derivative at specified points for plotting a Poincare section but encounters unexpected results. After realizing the plotting method was incorrect, they modify their approach by using a loop to plot the points individually. Ultimately, the user resolves the issue independently and indicates that further assistance is no longer needed.
qspeechc
Messages
839
Reaction score
15
Hello everyone.

I have a second order ODE, which I reduced to two first order ODEs, and solved with ode45. Now I want to evaluate the solution and the derivative at certain points (specifically, I want to plot the Poincare section).

So, what I did is this:

Code:
>> sol=ode45(@...);
>> xint=a:b;    
>> [Sxint, Spxint]=deval(sol, xint);
>> A=[Sxint, Spxint];
>> plot(Sxint, Spxint,'o')

Where:
xint is the points at which I want to evaluate the solution.
Sxint is the value of the solution at the points xint.
Spxint is the value of the derivative at those points.

But this is clearly wrong. I know the solution should be periodic, but I get something random. I think it's the plotting I'm doing incorrectly. Any help appreciated.
 
Physics news on Phys.org
Ok, instead, I created a separate M-file:

Code:
hold on,
for i=1:length(xint)
    plot(Sxint(:,i), Spxint(:,1),'.')
end

Is this correct?
 
Nevermind, I've figured it out, you can close the thread.
 

Similar threads

Replies
5
Views
2K
Replies
3
Views
2K
Replies
7
Views
4K
Replies
1
Views
4K
Replies
4
Views
2K
Replies
6
Views
2K
Back
Top