Codes for in-class collaboration for the course: Numerical Solution of ODEs (MATH 6321) at Southern Methodist University, for the Fall 2023 semester.
These codes require a modern Python installation.
Note: the c++ branch includes implementations of the same solvers, but in C++, and that use the "Armadillo" C++ library (http://arma.sourceforge.net) for vectors, matrices, and linear solvers.
Codes are grouped according to type:
initial_demo-- simple demonstration scripts showing the use of Python for mathematical calculations and plotting.shared-- reusableImplicitSolverclass, to be used by implicit ODE methods.newton-- test driver to show use ofImplicitSolver.forward_euler-- simple IVP "evolution" routine, based on the simplest IVP solver. Basic approach for timestep adaptivity. Contains two classes,ForwardEuler(fixed-step evolution) andAdaptEuler(adaptive-step evolution).simple_implicit-- simple implicit ODE solver classes,BackwardEulerandTrapezoidal, showing use of theImplicitSolverclass for implicit ODE methods.explicit_one_step-- higher-order explicit, one-step, ODE integration methods, containing theTaylor2andERKclasses.implicit_one_step-- higher-order implicit, one-step, ODE integration methods, containing theDIRKandIRKclasses.linear_multistep-- higher-order explicit and implicit multi-step ODE integration methods, containing the classesExplicitLMMandImplicitLMM.bvp-- two-point boundary-value problem solvers.
Daniel R. Reynolds
Mathematics @ SMU