Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

Hamiltonian System with NDSolve

  1. Apr 23, 2008 #1
    So I'm trying to solve the following Hamiltonian system using Mathematica.

    solution = NDSolve[{x'[t] == 2p[t], x[0] == 2,
    p'[t] == I*(2 + 1/2)(I*x[t])^(1 + 1/2), p[0] == 1-2*I}, {x, p}, {t,0,10}, MaxSteps -> Infinity][[1]];

    I'm letting E=1, so at all points t, it should be that

    That is the case until the function crosses a branch cut on the complex x-plane that runs from 0 to i*(Infinity). Once the function crosses the branch cut, the system no longer preserves E and the value changes to something around 1.3.

    How can I go about fixing this problem? I've already tried working with the precision and accuracy goals, and that didn't work. I also tried the SymplecticPartitionedRungeKutta method, and that didn't work either. I'm not sure what else to consider. Any help would be appreciated.

    I was thinking about having the program just continue in the same direction when x[t] gets really near the branch cut, but I'm not sure what to use to program that.

  2. jcsd
Know someone interested in this topic? Share this thread via Reddit, Google+, Twitter, or Facebook

Can you offer guidance or do you also need help?
Draft saved Draft deleted

Similar Threads - Hamiltonian System NDSolve Date
Sign of Hamiltonians Mar 13, 2014
Critical points of a Hamiltonian system Aug 18, 2010
The Legendre Transform for Hamiltonians? Sep 11, 2007
Symplectic integrator/hamiltonian May 9, 2007
Symplectic runge kutta for hamiltonian system Feb 6, 2005