Program Listing for File LobattoIIIB6.m

Return to documentation for file (+Indigo/+Tableau/LobattoIIIB6.m)

%
%> Class container for Lobatto IIIB6 method.
%
classdef LobattoIIIB6 < Indigo.RungeKutta
  %
  methods
    %
    % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    %
    %> Lobatto IIIB6 method.
    %>
    % http://www.jaac-online.com/data/article/jaac/preview/pdf/20170325.pdf
    % Symplectic Runge-Kutta Methods of High Order Based on W-Transformation,
    % Kaifeng Xia, Yuhao Cong1 and Geng Sun. Journal of Applied Analysis and
    % Computation, Volume 7, Number 3, August 2017, 1185-1199
    %>
    %> \f[
    %> \begin{array}{c|cccc}
    %    1/12 & -(1+\sqrt{5})/24 & (-1+\sqrt{5})/24 & 0 \\
    %    1/12 & (25+\sqrt{5})/120 & (25-13\sqrt{5})/120 & 0 \\
    %    1/12 & (25+13\sqrt{5})/120 & (25-\sqrt{5})/120 & 0 \\
    %    1/12 & (11-\sqrt{5})/24 & (11+\sqrt{5})/24 & 0 \\
    %    \hline
    %    1/12 & 5/12 & 5/12 & 1/12
    % \end{array}
    % \f]
    %
    function this = LobattoIIIB6()
      s5 = sqrt(5);
      tbl.A   = [1/12, -(1+s5)/24,      (-1+s5)/24,     0;...
                 1/12,  (25+s5)/120,    (25-13*s5)/120, 0; ...
                 1/12,  (25+13*s5)/120, (25-s5)/120,    0; ...
                 1/12,  (11-s5)/24,     (11+s5)/24,     0];
      tbl.b   =  [1/12, 5/12, 5/12, 1/12];
      tbl.b_e = [];
      tbl.c   = tbl.A*ones(4,1);
      this@Indigo.RungeKutta('LobattoIIIB6', 6, tbl);
    end
    %
    % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    %
  end
  %
end