Numeric Integration Methods Jim Van Verth Red Storm Entertainment [email protected] Slide 2 2 Talk Summary Going to talk about: Eulers method subject to errors Implicit methods help, but complicated Verlet methods help, but velocity inaccurate Symplectic methods can be good for both Slide 3 3 Forces Encountered Dependant on position: springs, orbits Dependant on velocity: drag, friction Constant: gravity, thrust Will consider how methods handle these Slide 4 4 Eulers 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 Slide 5 5 Eulers Method (contd) Example: orbiting object x0x0 x1x1 x2x2 t x x4x4 x3x3 Slide 6 6 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) t x Slide 7 7 Euler Lousy for forces dependant on position Okay for forces dependant on velocity Bad for constant forces Slide 8 8 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 Slide 9 9 Runge-Kutta (contd) 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 Slide 10 10 Runge-Kutta Okay for forces dependant on position Okay for forces dependant on velocity Great for constant forces But expensive: four evaluations of derivative Slide 11 11 Implicit Methods Explicit Euler method adds energy Implicit Euler dampens it Use new velocity, not current E.g. Backwards Euler: Better for stiff equations Slide 12 12 Implicit Methods Result of backwards Euler Solution converges - not great But it doesnt diverge! x0x0 x1x1 x2x2 x3x3 Slide 13 13 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) Slide 14 14 Implicit Methods Solving using linear system: Resulting matrix is sparse, easy to invert Slide 15 15 Implicit Methods Example of predictor-corrector: Slide 16 16 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 Slide 17 17 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 Slide 18 18 Verlet Integration Leapfrog Verlet Velocity Verlet Slide 19 19 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 Slide 20 20 Symplectic Euler Idea: velocity and position are not independent variables Make use of relationship Run Eulers in reverse: compute velocity first, then position Very stable Slide 21 21 Symplectic Euler Applied to orbit example (Admittedly this is a bit contrived) x0x0 x1x1 x2x2 x3x3 Slide 22 22 Symplectic Euler Good for forces dependant on position Okay for forces dependant on velocity Bad for constant forces But cheap and stable! Slide 23 23 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 Slide 24 24 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. Slide 25 25 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.
Click here to load reader