, 2 min read

Design Notes on System for the Analysis of Order- and Stepsize Changes for Cyclic Composite Multistep Methods

Original post is here eklausmeier.goip.de/blog/2013/08-11-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

y=f(t,y),y(t0)=y0,

one can use a cyclic composite multistep method of the form

i=0mAiYk+i=hi=0mBiYk+i,Ai,BiR×,

and

Yk=(yk+1yk+),Yk=(yk+1yk+),yi=y(ti),yi=f(ti,yi).

y denotes the derivative of y, h is the stepsize, 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

yi~=linear combination / interpolation polynomial with previous grid elements

Some notes:

  1. Individual stages of the cyclic composite multistep method do not have to be of same order.
  2. 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

y=λy,λC,

one has to analyze the roots of the determinant of the matrix polynomial

detQ(μ,H)=det[i=0m(AiHBi)μi],H=λh.

The analysis system or workbench we are after will now

  1. use the companion matrix to solve detQ(μ,H)=0

  2. use yi~ for the interpolation step, i.e., stepsize change

  3. order change is trivial

  4. calculate Widlund wedge

  5. picture of 3D images of detQ(μ,H) and conic section of detQ(eiφ,H)=0,>φ[0,2π]

  6. propose a list of stepsize and order changes, which can be edited easily, possibly with mouse pointer or direct edit

    1. linear increase / descrease
    2. sawtooth / zig-zag
    3. Sierpinski shape
  7. ideally be able to change some of the Ai,Bi or automatically tune them with a minimization procedure according some criteria, like

    1. Widlund wedge
    2. maximal stepsize possible not exceeding minimum Widlund wedge
    3. sum of absolute values of stage coefficients

There are still a number of open issues and several decisions have to be taken:

  1. use Octave, Maxima, or C
  2. use OpenGL, or Gnuplot
  3. 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.