, 2 min read
Design Notes on System for the Analysis of Order- and Stepsize Changes for Cyclic Composite Multistep Methods
For the numerical solution of the ordinary differential equation, initial value problem
one can use a cyclic composite multistep method of the form
and
$y'$ denotes the derivative of $y$, $h$ is the stepsize, $\ell$ is the cycle length. The stepsize does not need to be kept constant. If the stepsize changes one can still use above formula but adds a sub-cycle of the form
Some notes:
- Individual stages of the cyclic composite multistep method do not have to be of same order.
- Some stages can be explicit, some implicit.
The method can still be stiffly stable even if some stages are explicit, assuming that the explicit stages are not used for advancing the solution.
For the test equation
one has to analyze the roots of the determinant of the matrix polynomial
The analysis system or workbench we are after will now
use the companion matrix to solve $\det Q(\mu,H)=0$
use $\tilde{y_i}$ for the interpolation step, i.e., stepsize change
order change is trivial
calculate Widlund wedge
picture of 3D images of $\det Q(\mu,H)$ and conic section of $\det Q(e^{i\varphi},H)=0, >\varphi\in\left[0,2\pi\right]$
propose a list of stepsize and order changes, which can be edited easily, possibly with mouse pointer or direct edit
- linear increase / descrease
- sawtooth / zig-zag
- Sierpinski shape
ideally be able to change some of the $A_i, B_i$ or automatically tune them with a minimization procedure according some criteria, like
- Widlund wedge
- maximal stepsize possible not exceeding minimum Widlund wedge
- sum of absolute values of stage coefficients
There are still a number of open issues and several decisions have to be taken:
- use Octave, Maxima, or C
- use OpenGL, or Gnuplot
- incorporate CUDA in C or Octave (see: Drop-in Acceleration of GNU Octave), if dimension of companion matrix becomes large and calculations therefore slow
Added 02-Jun-2020: At the time of posting mid 2013 the Julia programming language was just almost freshly born. Now it fits in nicely here: It offers speed, graphics, and support for CUDA.