# IVP Solver Toolbox Documentation

Copyright © 2021 Tamas Kis

## Contents

## Technical Documentation

Click here.

## Opening this documentation using the MATLAB Command Window.

To open the home page (this page) of the toolbox documentation in MATLAB, type

doc_IVP

in the Command Window. To open the documentation of a specific function with name `function_name` from the Command Window, type

```
doc_IVP function_name
```

To open the PDF file with the technical documentation (Solving_Initial_Value_Problems_for_ODEs.pdf) from the Command Window, type

```
doc_IVP tech
```

## Installation

The toolbox can be downloaded from File Exchange or GitHub. The downloaded zip folder contains the following:

**docs**→ Contains the HTML documentation needed by GitHub to deploy the online version of the toolbox documentation.**examples**→ Contains examples for using various functions of the IVP Solver Toolbox, as well as examples for some more elementary concepts discussed in the technical documentation.**INSTALL**→ Contains the toolbox installer (IVP Solver Toolbox.mltbx).**licenses**→ Contains the software licenses.**README.md**→ Markdown documentation for GitHub repository.**Technical Documentation**→ Contains the technical documentation (Solving_Initial_Value_Problems_for_ODEs.pdf).**toolbox**→ Contains all the functions specific to this toolbox.**toolbox/doc**→ Contains a copy of all the files and functions needed to open both the toolbox documentation and the technical documentation directly from the MATLAB command window using the`doc_IVP`function.**toolbox/lib**→ External libraries/functions required by this toolbox.

**To install as a toolbox**, simply open "IVP Solver Toolbox.mltbx" in the "INSTALL" folder. MATLAB will automatically perform the installation and add all the functions included in the toolbox to the MATLAB search path.

## IVP Solvers

Fixed-step IVP solvers for solving vector-valued initial value problems.`solve_ivp`Fixed-step IVP solvers for solving matrix-valued initial value problems.`solve_ivp_matrix`

## Utilities for IVP Solvers

Expands the arrays storing the IVP solution.`expand_ivp_arrays`Transforms a matrix-valued ODE into a vector-valued ODE.`mat2vec_ODE`Transforms the initial condition for a matrix-valued IVP into the initial condition for its corresponding vector-valued IVP.`mat2vec_IC`Transforms the event function for a matrix-valued IVP into the event function for its corresponding vector-valued IVP.`mat2vec_E`Transforms the solution matrix for a vector-valued IVP into the solution array for its corresponding matrix-valued IVP.`vec2mat_sol`

## Single-Step Methods

Propagates the state vector forward one time step using the Euler method (1st-order).`RK1_euler`Propagates the state vector forward one time step using the midpoint method (2nd-order).`RK2`Propagates the state vector forward one time step using Heun's second-order method (2nd-order).`RK2_heun`Propagates the state vector forward one time step using Ralston's second-order method (2nd-order).`RK2_ralston`Propagates the state vector forward one time step using (Kutta's) Runge-Kutta third-order method (3rd-order).`RK3`Propagates the state vector forward one time step using Heun's third-order method (3rd-order).`RK3_heun`Propagates the state vector forward one time step using Ralston's third-order method (3rd-order).`RK3_ralston`Propagates the state vector forward one time step using the strong stability preserving Runge-Kutta third-order method (3rd-order).`SSPRK3`Propagates the state vector forward one time step using the (classic) Runge-Kutta fourth-order method (4th-order).`RK4`Propagates the state vector forward one time step using Ralston's fourth-order method (4th-order).`RK4_ralston`Propagates the state vector forward one time step using the 3/8-rule Runge-Kutta fourth-order method (4th-order).`RK4_38`

## Multistep Predictor Methods

Propagates the state vector forward one time step using the Adams-Bashforth 2nd-order method.`AB2`Propagates the state vector forward one time step using the Adams-Bashforth 3rd-order method.`AB3`Propagates the state vector forward one time step using the Adams-Bashforth 4th-order method.`AB4`Propagates the state vector forward one time step using the Adams-Bashforth 5th-order method.`AB5`Propagates the state vector forward one time step using the Adams-Bashforth 6th-order method.`AB6`Propagates the state vector forward one time step using the Adams-Bashforth 7th-order method.`AB7`Propagates the state vector forward one time step using the Adams-Bashforth 8th-order method.`AB8`

## Multistep Predictor-Corrector Methods

Propagates the state vector forward one time step using the Adams-Bashforth-Moulton 2nd-order method.`ABM2`Propagates the state vector forward one time step using the Adams-Bashforth-Moulton 3rd-order method.`ABM3`Propagates the state vector forward one time step using the Adams-Bashforth-Moulton 4th-order method.`ABM4`Propagates the state vector forward one time step using the Adams-Bashforth-Moulton 5th-order method.`ABM5`Propagates the state vector forward one time step using the Adams-Bashforth-Moulton 6th-order method.`ABM6`Propagates the state vector forward one time step using the Adams-Bashforth-Moulton 7th-order method.`ABM7`Propagates the state vector forward one time step using the Adams-Bashforth-Moulton 8th-order method.`ABM8`

## Generating IVP Solver Equations

Coefficients for the mth-order Adams-Bashforth predictor.`AB_coefficients`Coefficients for the mth-order Adams-Moulton corrector.`AM_coefficients`mth-order Adams-Bashforth predictor.`AB_predictor`mth-order Adams-Moulton corrector.`AM_corrector`mth-order Adams-Bashforth-Moulton equations.`ABM_equations`Propagation equations from Butcher tableau for explicit Runge-Kutta methods.`tableau2eqns`

## External Libraries

Initializes a waitbar.`initialize_waitbar`Scales a set of fractions so they each have the same denominator.`same_denominator`Updates a waitbar.`update_waitbar`