250 likes | 423 Views
Numeric Integration Methods. Jim Van Verth Red Storm Entertainment jimvv@redstorm.com. Talk Summary. Going to talk about: Euler’s method subject to errors Implicit methods help, but complicated Verlet methods help, but velocity inaccurate Symplectic methods can be good for both.
E N D
Numeric IntegrationMethods Jim Van Verth Red Storm Entertainment jimvv@redstorm.com
Talk Summary • Going to talk about: • Euler’s method subject to errors • Implicit methods help, but complicated • Verlet methods help, but velocity inaccurate • Symplectic methods can be good for both
Forces Encountered • Dependant on position: springs, orbits • Dependant on velocity: drag, friction • Constant: gravity, thrust • Will consider how methods handle these
Euler’s Method • Has problems • Expects the derivative at the current point is a good estimate of the derivative on the interval • Approximation can drift off the actual function – adds energy to system! • Worse farther from known values • Especially bad when: • System oscillates (springs, orbits, pendulums) • Time step gets large
Euler’s Method (cont’d) • Example: orbiting object x x0 x1 x2 x3 t x4
Stiffness • Have similar problems with “stiff” equations • Have terms with rapidly decaying values • Larger decay = stiffer equation = req. smaller h • Often seen in equations with stiff springs (hence the name) x t
Euler • Lousy for forces dependant on position • Okay for forces dependant on velocity • Bad for constant forces
Runge-Kutta • Idea: single derivative bad estimate • Use weighted average of derivatives across interval • How error-resistant indicates order • Midpoint method Order Two • Usually use Runge-Kutta Order Four, or RK4
Runge-Kutta (cont’d) • RK4 better fit, good for larger time steps • Tends to dampen energy • Expensive – requires many evaluations • If function is known and fixed (like in physical simulation) can reduce it to one big formula
Runge-Kutta • Okay for forces dependant on position • Okay for forces dependant on velocity • Great for constant forces • But expensive: four evaluations of derivative
Implicit Methods • Explicit Euler method adds energy • Implicit Euler dampens it • Use new velocity, not current • E.g. Backwards Euler: • Better for stiff equations
Implicit Methods • Result of backwards Euler • Solution converges - not great • But it doesn’t diverge! x0 x1 x2 x3
Implicit Methods • How to compute or ? • Derive from formula (most accurate) • Solve using linear system (slowest, but general) • Compute using explicit method and plug in value (predictor-corrector)
Implicit Methods • Solving using linear system: • Resulting matrix is sparse, easy to invert
Implicit Methods • Example of predictor-corrector:
Backward Euler • Okay for forces dependant on position • Great for forces dependant on velocity • Bad for constant forces • But tends to converge: better but not ideal
Verlet Integration • Velocity-less scheme • From molecular dynamics • Uses position from previous time step • Very stable, but velocity estimated • Good for particle systems, not rigid body
Verlet Integration • Leapfrog Verlet • Velocity Verlet
Verlet Integration • Better for forces dependant on position • Okay for forces dependant on velocity • Okay for constant forces • Not too bad, but still have estimated velocity problem
Symplectic Euler • Idea: velocity and position are not independent variables • Make use of relationship • Run Euler’s in reverse: compute velocity first, then position • Very stable
Symplectic Euler • Applied to orbit example • (Admittedly this is a bit contrived) x0 x1 x2 x3
Symplectic Euler • Good for forces dependant on position • Okay for forces dependant on velocity • Bad for constant forces • But cheap and stable!
Which To Use? • With simple forces, standard Euler or higher order RK might be okay • But constraints, springs, etc. require stability • Recommendation: Symplectic Euler • Generally stable • Simple to compute (just swap velocity and position terms) • More complex integrators available if you need them -- see references
References • Burden, Richard L. and J. Douglas Faires, Numerical Analysis, PWS Publishing Company, Boston, MA, 1993. • Witken, Andrew, David Baraff, Michael Kass, SIGGRAPH Course Notes, Physically Based Modelling, SIGGRAPH 2002. • Eberly, David, Game Physics, Morgan Kaufmann, 2003.
References • Hairer, et al, “Geometric Numerical Integration Illustrated by the Störmer/Verlet method,”Acta Numerica (2003), pp 1-51. • Robert Bridson, Notes from CPSC 533d: Animation Physics, University of BC.