Chronology Current Month Current Thread Current Date
[Year List] [Month List (current year)] [Date Index] [Thread Index] [Thread Prev] [Thread Next] [Date Prev] [Date Next]

Re: [Phys-L] Help w/ Euler Cromer algo.



On 09/21/2014 10:58 AM, Bernard Cleyet wrote:

> bc ’s next project:  develop a sinusoidal fit w/ variable period.  Yes?

That might not be the easiest path to understanding the physics.
Rationale:  When explaining the result to others, you would need
to explain why you fudged the period.  They are not guaranteed
to like the answer.

> bc doesn’t want to necessarily use a fourth order approx.

So split the difference.  "Velocity Verlet" is second-order
*and* symplectic *and* simple to understand in terms of the
physics *and* simple to implement.  If your errors are on the 
order of 1e-5 now, they will be on the order of 1e-10 with a 
second-order method.  That should be good enough to let you 
see the anharmonic physics.

The Velocity Verlet update equations look "natural" i.e. close
to the physics.

For a discussion of why this makes sense in terms the physics,
how to structure the calculation, and how to see that it is
symplectic, see:
  https://www.av8n.com/physics/symplectic-integrator.htm#sec-verlet

==================

One more thing:  If the goal is to see the effects of
anharmonicity, don't drag the calculation out for N cycles.
All the effects can be seen just fine in the first cycle.

Last but not least:  You can augment the numerical analysis
with a theoretical analysis.  I suggest a perturbation
approach:
 a) Start with a block sliding without friction on a 
  parabolic track.  That's 100% harmonic.  
 b) Now compare that with a circular track.  That is 
  slightly non-parabolic,  Calculate the small extra 
  force.  Estimate how far block b moves /relative/ to
  block a.

This is an expansion to first order in small quantities,
namely the small difference between scenario (a) and 
scenario (b).

Expansion to lowest order is one of the most-used and
best-loved tools in the physicist's toolbox.