Contents

function LQR_rail(k,shifts,inexact,Galerkin,istest)
% Computes the optimal feedback via the low-rank Newton-ADI [1] and RADI
% [2] methods for the selective cooling of Steel profiles application
% described in [3,4,5].
%
% Usage: LQR_Rail(k,shifts,inexact,Galerkin,istest)
%
% Inputs:
%
% k           refinement level of the model to use
%             (0 - 5, i.e. 109 - 79841 Dofs)
%             (optional, defaults to 2, i.e. 1357 Dofs)
%
% shifts      ADI shift selection strategy. Possible values:
%              'heur'        Penzl's heuristic shifts
%              'Wachspress'  Wachspress shifts, optimally solving the dense
%                          shift selection problem.
%             (optional, defaults to 'heur')
%
% inexact     use inexact Newton method
%             (optional, defaults to 0, i.e. false)
%
% Galerkin    activate Galerkin projection acceleration in Newton method.
%             This supersedes inexact Newton selection, i.e, disables it in
%             case both are on.
%             (optional, defaults to 0, i.e. no Galerkin acceleration)
%
% istest      flag to determine whether this demo runs as a CI test or
%             interactive demo
%             (optional, defaults to 0, i.e. interactive demo)
%
% References:
% [1] P. Benner, J.-R. Li, T. Penzl, Numerical solution of large-scale
%     Lyapunov equations, Riccati equations, and linear-quadratic optimal
%     control problems, Numer. Lin. Alg. Appl. 15 (9) (2008) 755–777.
%     https://doi.org/10.1002/nla.622
%
% [2] P. Benner, Z. Bujanović, P. Kürschner, J. Saak, RADI: A low-rank
%     ADI-type algorithm for large scale algebraic Riccati equations,
%     Numer. Math. 138 (2) (2018) 301–330.
%     https://doi.org/10.1007/s00211-017-0907-5
%
% [3] J. Saak, Effiziente numerische Lösung eines
%     Optimalsteuerungsproblems für die Abkühlung von Stahlprofilen,
%     Diplomarbeit, Fachbereich 3/Mathematik und Informatik, Universität
%     Bremen, D-28334 Bremen (Sep. 2003).
%     https://doi.org/10.5281/zenodo.1187040
%
% [4] P. Benner, J. Saak, A semi-discretized heat transfer model for
%     optimal cooling of steel profiles, in: P. Benner, V. Mehrmann, D.
%     Sorensen (Eds.), Dimension Reduction of Large-Scale Systems, Vol. 45
%     of Lect. Notes Comput. Sci. Eng., Springer-Verlag, Berlin/Heidelberg,
%     Germany, 2005, pp. 353–356. https://doi.org/10.1007/3-540-27909-1_19
%
% [5] J. Saak, Efficient numerical solution of large scale algebraic matrix
%     equations in PDE control and model order reduction, Dissertation,
%     Technische Universität Chemnitz, Chemnitz, Germany (Jul. 2009).
%     URL http://nbn-resolving.de/urn:nbn:de:bsz:ch1-200901642
%

%
% This file is part of the M-M.E.S.S. project
% (http://www.mpi-magdeburg.mpg.de/projects/mess).
% Copyright © 2009-2022 Jens Saak, Martin Koehler, Peter Benner and others.
% All rights reserved.
% License: BSD 2-Clause License (see COPYING)
%
narginchk(0,5);
if nargin<1, k=2; end
if nargin<2, shifts='heur'; end
if nargin<3, inexact=0; end
if nargin<4, Galerkin=0; end
if nargin<5, istest=0; end

set operation

oper = operatormanager('default');

Problem data

eqn=mess_get_linear_rail(k);

First we run the Newton-ADI Method

% ADI tolerances and maximum iteration number
opts.adi.maxiter = 100;
opts.adi.res_tol = 1e-14;
opts.adi.rel_diff_tol = 1e-16;
opts.adi.info = 1;

eqn.type = 'T';
%Heuristic shift parameters via basic Arnoldi
opts.shifts.num_desired=25;
opts.shifts.num_Ritz=50;
opts.shifts.num_hRitz=25;
n=oper.size(eqn, opts);
opts.shifts.b0=ones(n,1);
switch lower(shifts)

    case 'heur'
        opts.shifts.method = 'heur';

    case 'wachspress'
        opts.shifts.method = 'wachspress';
        opts.shifts.wachspress = 'T';
end

Newton tolerances and maximum iteration number

opts.nm.maxiter = 8;
opts.nm.res_tol = 1e-10;
opts.nm.rel_diff_tol = 1e-16;
opts.nm.info = 1;
opts.nm.accumulateRes = 1;
opts.norm = 'fro';

if Galerkin
    opts.nm.linesearch = 0;
    opts.nm.inexact = 0;
    opts.nm.projection.freq=2;
    opts.nm.projection.ortho=1;
elseif inexact
    opts.nm.linesearch = 1;
    opts.nm.inexact = 'quadratic';
    opts.nm.projection.freq=0;
    opts.nm.projection.ortho=0;
else
    opts.nm.linesearch = 0;
    opts.nm.inexact = 0;
    opts.nm.projection.freq=0;
    opts.nm.projection.ortho=0;
end
opts.nm.res=struct('maxiter',10,'tol',1e-6,'orth',0);
t_mess_lrnm = tic;
outnm = mess_lrnm(eqn, opts, oper);
t_elapsed1 = toc(t_mess_lrnm);
fprintf(1,'mess_lrnm took %6.2f seconds \n' , t_elapsed1);

if istest
    if min(outnm.res)>=opts.nm.res_tol
       error('MESS:TEST:accuracy','unexpectedly inaccurate result');
   end
else
    figure(1);
    disp(outnm.res);
    semilogy(outnm.res,'LineWidth',3);
    title('0= C^TC + A^T X M + M^TXA -M^TXBB^T X M');
    xlabel('number of iterations');
    ylabel('normalized residual norm');
    pause(1);
end

disp('size outnm.Z:');
disp(size(outnm.Z));
ADI step:    1 normalized residual: 8.798717e-01 relative change in Z: 1.000000e+00
		 normalized outer residual: 8.798716e-01
ADI step:    2 normalized residual: 7.681639e-01 relative change in Z: 6.801309e-01
		 normalized outer residual: 7.681638e-01
ADI step:    3 normalized residual: 6.541966e-01 relative change in Z: 5.513119e-01
		 normalized outer residual: 6.541962e-01
ADI step:    4 normalized residual: 5.392809e-01 relative change in Z: 4.694506e-01
		 normalized outer residual: 5.392801e-01
ADI step:    5 normalized residual: 4.252802e-01 relative change in Z: 4.095090e-01
		 normalized outer residual: 4.252788e-01
ADI step:    6 normalized residual: 3.254585e-01 relative change in Z: 3.491357e-01
		 normalized outer residual: 3.254563e-01
ADI step:    7 normalized residual: 2.370696e-01 relative change in Z: 3.125751e-01
		 normalized outer residual: 2.370661e-01
ADI step:    8 normalized residual: 1.480505e-01 relative change in Z: 3.139988e-01
		 normalized outer residual: 1.480451e-01
ADI step:    9 normalized residual: 9.724878e-02 relative change in Z: 2.544873e-01
		 normalized outer residual: 9.724159e-02
ADI step:   10 normalized residual: 6.397794e-02 relative change in Z: 2.195765e-01
		 normalized outer residual: 6.396909e-02
ADI step:   11 normalized residual: 3.488421e-02 relative change in Z: 2.167150e-01
		 normalized outer residual: 3.487345e-02
ADI step:   12 normalized residual: 1.318338e-02 relative change in Z: 2.111119e-01
		 normalized outer residual: 1.317275e-02
ADI step:   13 normalized residual: 4.708713e-03 relative change in Z: 1.765635e-01
		 normalized outer residual: 4.702190e-03
ADI step:   14 normalized residual: 2.234807e-03 relative change in Z: 1.346802e-01
		 normalized outer residual: 2.230098e-03
ADI step:   15 normalized residual: 7.754380e-04 relative change in Z: 1.128388e-01
		 normalized outer residual: 7.724806e-04
ADI step:   16 normalized residual: 3.933989e-04 relative change in Z: 6.253186e-02
		 normalized outer residual: 3.932079e-04
ADI step:   17 normalized residual: 2.776729e-04 relative change in Z: 4.768086e-02
		 normalized outer residual: 2.793949e-04
ADI step:   18 normalized residual: 2.090779e-04 relative change in Z: 5.549394e-02
		 normalized outer residual: 2.115997e-04
ADI step:   19 normalized residual: 1.679729e-04 relative change in Z: 5.325733e-02
		 normalized outer residual: 1.707113e-04
ADI step:   20 normalized residual: 1.237168e-04 relative change in Z: 5.909578e-02
		 normalized outer residual: 1.267006e-04
ADI step:   21 normalized residual: 8.109693e-05 relative change in Z: 5.893471e-02
		 normalized outer residual: 8.492049e-05
ADI step:   22 normalized residual: 3.186350e-05 relative change in Z: 6.728979e-02
		 normalized outer residual: 4.460694e-05
ADI step:   23 normalized residual: 5.963682e-07 relative change in Z: 5.911083e-02
		 normalized outer residual: 3.956753e-05
ADI step:   24 normalized residual: 1.431414e-07 relative change in Z: 1.531810e-02
		 normalized outer residual: 3.962417e-05
ADI step:   25 normalized residual: 1.409976e-07 relative change in Z: 1.005224e-03
		 normalized outer residual: 3.962377e-05
ADI step:   26 normalized residual: 1.345585e-07 relative change in Z: 6.139024e-05
		 normalized outer residual: 3.962379e-05
ADI step:   27 normalized residual: 1.270898e-07 relative change in Z: 6.560745e-05
		 normalized outer residual: 3.962382e-05
ADI step:   28 normalized residual: 1.176820e-07 relative change in Z: 7.288393e-05
		 normalized outer residual: 3.962386e-05
ADI step:   29 normalized residual: 1.060327e-07 relative change in Z: 7.991251e-05
		 normalized outer residual: 3.962392e-05
ADI step:   30 normalized residual: 9.186680e-08 relative change in Z: 8.678308e-05
		 normalized outer residual: 3.962399e-05
ADI step:   31 normalized residual: 7.649342e-08 relative change in Z: 9.003189e-05
		 normalized outer residual: 3.962409e-05
ADI step:   32 normalized residual: 5.919861e-08 relative change in Z: 9.679658e-05
		 normalized outer residual: 3.962420e-05
ADI step:   33 normalized residual: 3.604682e-08 relative change in Z: 1.162086e-04
		 normalized outer residual: 3.962438e-05
ADI step:   34 normalized residual: 2.017143e-08 relative change in Z: 1.027865e-04
		 normalized outer residual: 3.962454e-05
ADI step:   35 normalized residual: 1.113342e-08 relative change in Z: 8.492447e-05
		 normalized outer residual: 3.962472e-05
ADI step:   36 normalized residual: 5.497048e-09 relative change in Z: 7.650150e-05
		 normalized outer residual: 3.962509e-05
ADI step:   37 normalized residual: 1.989369e-09 relative change in Z: 7.124317e-05
		 normalized outer residual: 3.962563e-05
ADI step:   38 normalized residual: 5.271695e-10 relative change in Z: 5.598915e-05
		 normalized outer residual: 3.962586e-05
ADI step:   39 normalized residual: 2.114299e-10 relative change in Z: 3.657037e-05
		 normalized outer residual: 3.962589e-05
ADI step:   40 normalized residual: 5.357956e-11 relative change in Z: 3.061995e-05
		 normalized outer residual: 3.962590e-05
ADI step:   41 normalized residual: 8.693504e-12 relative change in Z: 1.675816e-05
		 normalized outer residual: 3.962591e-05
ADI step:   42 normalized residual: 6.114539e-13 relative change in Z: 6.985059e-06
		 normalized outer residual: 3.962591e-05
ADI step:   43 normalized residual: 1.033099e-13 relative change in Z: 2.195184e-06
		 normalized outer residual: 3.962591e-05
ADI step:   44 normalized residual: 8.226569e-14 relative change in Z: 6.987444e-07
		 normalized outer residual: 3.962591e-05
ADI step:   45 normalized residual: 7.788207e-14 relative change in Z: 1.095378e-07
		 normalized outer residual: 3.962591e-05
ADI step:   46 normalized residual: 7.529463e-14 relative change in Z: 6.403615e-08
		 normalized outer residual: 3.962591e-05
ADI step:   47 normalized residual: 7.427213e-14 relative change in Z: 3.681614e-08
		 normalized outer residual: 3.962591e-05
ADI step:   48 normalized residual: 7.401907e-14 relative change in Z: 1.783548e-08
		 normalized outer residual: 3.962591e-05
ADI step:   49 normalized residual: 7.386120e-14 relative change in Z: 1.397683e-08
		 normalized outer residual: 3.962591e-05
ADI step:   50 normalized residual: 7.372336e-14 relative change in Z: 1.298795e-08
		 normalized outer residual: 3.962591e-05
ADI step:   51 normalized residual: 7.172884e-14 relative change in Z: 3.572976e-08
		 normalized outer residual: 3.962591e-05
ADI step:   52 normalized residual: 6.918064e-14 relative change in Z: 4.011973e-08
		 normalized outer residual: 3.962591e-05
ADI step:   53 normalized residual: 6.559292e-14 relative change in Z: 4.723484e-08
		 normalized outer residual: 3.962591e-05
ADI step:   54 normalized residual: 6.055569e-14 relative change in Z: 5.550548e-08
		 normalized outer residual: 3.962591e-05
ADI step:   55 normalized residual: 5.361378e-14 relative change in Z: 6.474854e-08
		 normalized outer residual: 3.962591e-05
ADI step:   56 normalized residual: 4.525978e-14 relative change in Z: 7.094517e-08
		 normalized outer residual: 3.962591e-05
ADI step:   57 normalized residual: 3.507972e-14 relative change in Z: 7.873134e-08
		 normalized outer residual: 3.962591e-05
ADI step:   58 normalized residual: 2.037117e-14 relative change in Z: 9.609922e-08
		 normalized outer residual: 3.962591e-05
ADI step:   59 normalized residual: 9.829623e-15 relative change in Z: 8.398273e-08
		 normalized outer residual: 3.962591e-05

 NM step:    1  normalized residual: 3.962591e-05
               relative change in K: 1.000000e+00
               number of ADI steps: 59 

ADI step:    1 normalized residual: 8.798824e-01 relative change in Z: 1.000000e+00
		 normalized outer residual: 8.798711e-01
ADI step:    2 normalized residual: 7.681736e-01 relative change in Z: 6.801311e-01
		 normalized outer residual: 7.681626e-01
ADI step:    3 normalized residual: 6.541850e-01 relative change in Z: 5.513449e-01
		 normalized outer residual: 6.541744e-01
ADI step:    4 normalized residual: 5.392443e-01 relative change in Z: 4.694744e-01
		 normalized outer residual: 5.392345e-01
ADI step:    5 normalized residual: 4.253226e-01 relative change in Z: 4.093730e-01
		 normalized outer residual: 4.253138e-01
ADI step:    6 normalized residual: 2.863901e-01 relative change in Z: 4.023989e-01
		 normalized outer residual: 2.863828e-01
ADI step:    7 normalized residual: 1.916399e-01 relative change in Z: 3.201883e-01
		 normalized outer residual: 1.916339e-01
ADI step:    8 normalized residual: 1.298063e-01 relative change in Z: 2.683418e-01
		 normalized outer residual: 1.298018e-01
ADI step:    9 normalized residual: 7.752161e-02 relative change in Z: 2.653546e-01
		 normalized outer residual: 7.751904e-02
ADI step:   10 normalized residual: 4.038556e-02 relative change in Z: 2.391443e-01
		 normalized outer residual: 4.038430e-02
ADI step:   11 normalized residual: 1.884921e-02 relative change in Z: 2.013239e-01
		 normalized outer residual: 1.884803e-02
ADI step:   12 normalized residual: 9.017937e-03 relative change in Z: 1.622718e-01
		 normalized outer residual: 9.016186e-03
ADI step:   13 normalized residual: 3.966042e-03 relative change in Z: 1.531260e-01
		 normalized outer residual: 3.963541e-03
ADI step:   14 normalized residual: 2.013027e-03 relative change in Z: 1.234523e-01
		 normalized outer residual: 2.009660e-03
ADI step:   15 normalized residual: 7.495820e-04 relative change in Z: 1.053221e-01
		 normalized outer residual: 7.431147e-04
ADI step:   16 normalized residual: 3.978491e-04 relative change in Z: 6.084972e-02
		 normalized outer residual: 3.882593e-04
ADI step:   17 normalized residual: 2.858161e-04 relative change in Z: 4.802487e-02
		 normalized outer residual: 2.757089e-04
ADI step:   18 normalized residual: 2.134930e-04 relative change in Z: 5.616672e-02
		 normalized outer residual: 2.051086e-04
ADI step:   19 normalized residual: 1.698005e-04 relative change in Z: 5.375264e-02
		 normalized outer residual: 1.637781e-04
ADI step:   20 normalized residual: 1.208253e-04 relative change in Z: 5.903882e-02
		 normalized outer residual: 1.173571e-04
ADI step:   21 normalized residual: 7.646179e-05 relative change in Z: 5.790813e-02
		 normalized outer residual: 7.481069e-05
ADI step:   22 normalized residual: 2.679451e-05 relative change in Z: 6.415463e-02
		 normalized outer residual: 2.644641e-05
ADI step:   23 normalized residual: 4.383253e-07 relative change in Z: 5.216159e-02
		 normalized outer residual: 4.313083e-07
ADI step:   24 normalized residual: 9.846742e-08 relative change in Z: 1.353105e-02
		 normalized outer residual: 1.030650e-07
ADI step:   25 normalized residual: 9.723114e-08 relative change in Z: 1.020858e-03
		 normalized outer residual: 1.020871e-07
ADI step:   26 normalized residual: 8.548678e-08 relative change in Z: 9.198885e-05
		 normalized outer residual: 9.097185e-08
ADI step:   27 normalized residual: 7.421179e-08 relative change in Z: 8.625917e-05
		 normalized outer residual: 8.046915e-08
ADI step:   28 normalized residual: 6.215738e-08 relative change in Z: 8.273026e-05
		 normalized outer residual: 6.950853e-08
ADI step:   29 normalized residual: 4.916074e-08 relative change in Z: 7.859440e-05
		 normalized outer residual: 5.817789e-08
ADI step:   30 normalized residual: 3.563669e-08 relative change in Z: 7.562607e-05
		 normalized outer residual: 4.730581e-08
ADI step:   31 normalized residual: 1.990497e-08 relative change in Z: 7.998825e-05
		 normalized outer residual: 3.693236e-08
ADI step:   32 normalized residual: 1.133895e-08 relative change in Z: 5.979124e-05
		 normalized outer residual: 3.310960e-08
ADI step:   33 normalized residual: 7.377379e-09 relative change in Z: 4.514626e-05
		 normalized outer residual: 3.196840e-08
ADI step:   34 normalized residual: 4.898328e-09 relative change in Z: 4.665625e-05
		 normalized outer residual: 3.148852e-08
ADI step:   35 normalized residual: 3.056176e-09 relative change in Z: 5.034008e-05
		 normalized outer residual: 3.125877e-08
ADI step:   36 normalized residual: 1.642784e-09 relative change in Z: 4.877778e-05
		 normalized outer residual: 3.115618e-08
ADI step:   37 normalized residual: 8.224809e-10 relative change in Z: 4.206366e-05
		 normalized outer residual: 3.112573e-08
ADI step:   38 normalized residual: 3.575864e-10 relative change in Z: 3.944338e-05
		 normalized outer residual: 3.111782e-08
ADI step:   39 normalized residual: 1.773802e-10 relative change in Z: 3.114967e-05
		 normalized outer residual: 3.111646e-08
ADI step:   40 normalized residual: 4.794812e-11 relative change in Z: 2.826642e-05
		 normalized outer residual: 3.111617e-08
ADI step:   41 normalized residual: 7.983327e-12 relative change in Z: 1.578922e-05
		 normalized outer residual: 3.111622e-08
ADI step:   42 normalized residual: 5.357383e-13 relative change in Z: 6.746870e-06
		 normalized outer residual: 3.111624e-08
ADI step:   43 normalized residual: 3.737043e-14 relative change in Z: 2.122966e-06
		 normalized outer residual: 3.111624e-08
ADI step:   44 normalized residual: 2.163060e-14 relative change in Z: 6.736378e-07
		 normalized outer residual: 3.111624e-08
ADI step:   45 normalized residual: 2.053684e-14 relative change in Z: 8.952945e-08
		 normalized outer residual: 3.111624e-08
ADI step:   46 normalized residual: 2.015168e-14 relative change in Z: 4.326623e-08
		 normalized outer residual: 3.111624e-08
ADI step:   47 normalized residual: 2.002192e-14 relative change in Z: 2.230818e-08
		 normalized outer residual: 3.111624e-08
ADI step:   48 normalized residual: 1.998874e-14 relative change in Z: 1.077611e-08
		 normalized outer residual: 3.111624e-08
ADI step:   49 normalized residual: 1.996883e-14 relative change in Z: 8.219421e-09
		 normalized outer residual: 3.111624e-08
ADI step:   50 normalized residual: 1.995194e-14 relative change in Z: 7.489150e-09
		 normalized outer residual: 3.111624e-08
ADI step:   51 normalized residual: 1.728807e-14 relative change in Z: 4.756142e-08
		 normalized outer residual: 3.111624e-08
ADI step:   52 normalized residual: 1.471105e-14 relative change in Z: 4.484615e-08
		 normalized outer residual: 3.111624e-08
ADI step:   53 normalized residual: 1.196460e-14 relative change in Z: 4.304788e-08
		 normalized outer residual: 3.111624e-08
ADI step:   54 normalized residual: 9.033776e-15 relative change in Z: 4.074502e-08
		 normalized outer residual: 3.111624e-08

 NM step:    2  normalized residual: 3.111624e-08
               relative change in K: 2.196831e-02
               number of ADI steps: 54 

ADI step:    1 normalized residual: 8.798824e-01 relative change in Z: 1.000000e+00
		 normalized outer residual: 8.798711e-01
ADI step:    2 normalized residual: 7.681737e-01 relative change in Z: 6.801311e-01
		 normalized outer residual: 7.681626e-01
ADI step:    3 normalized residual: 6.541861e-01 relative change in Z: 5.513430e-01
		 normalized outer residual: 6.541756e-01
ADI step:    4 normalized residual: 5.392468e-01 relative change in Z: 4.694732e-01
		 normalized outer residual: 5.392369e-01
ADI step:    5 normalized residual: 4.253224e-01 relative change in Z: 4.093779e-01
		 normalized outer residual: 4.253135e-01
ADI step:    6 normalized residual: 2.864038e-01 relative change in Z: 4.023819e-01
		 normalized outer residual: 2.863964e-01
ADI step:    7 normalized residual: 1.916529e-01 relative change in Z: 3.201896e-01
		 normalized outer residual: 1.916469e-01
ADI step:    8 normalized residual: 1.298532e-01 relative change in Z: 2.682626e-01
		 normalized outer residual: 1.298487e-01
ADI step:    9 normalized residual: 7.754162e-02 relative change in Z: 2.654090e-01
		 normalized outer residual: 7.753902e-02
ADI step:   10 normalized residual: 4.037890e-02 relative change in Z: 2.392252e-01
		 normalized outer residual: 4.037765e-02
ADI step:   11 normalized residual: 1.884619e-02 relative change in Z: 2.013111e-01
		 normalized outer residual: 1.884504e-02
ADI step:   12 normalized residual: 9.011795e-03 relative change in Z: 1.623132e-01
		 normalized outer residual: 9.010131e-03
ADI step:   13 normalized residual: 3.963165e-03 relative change in Z: 1.531151e-01
		 normalized outer residual: 3.960825e-03
ADI step:   14 normalized residual: 2.011726e-03 relative change in Z: 1.234123e-01
		 normalized outer residual: 2.008616e-03
ADI step:   15 normalized residual: 7.481879e-04 relative change in Z: 1.053041e-01
		 normalized outer residual: 7.422667e-04
ADI step:   16 normalized residual: 3.967876e-04 relative change in Z: 6.078988e-02
		 normalized outer residual: 3.880616e-04
ADI step:   17 normalized residual: 2.849258e-04 relative change in Z: 4.794939e-02
		 normalized outer residual: 2.757995e-04
ADI step:   18 normalized residual: 2.128129e-04 relative change in Z: 5.607138e-02
		 normalized outer residual: 2.053622e-04
ADI step:   19 normalized residual: 1.693695e-04 relative change in Z: 5.366471e-02
		 normalized outer residual: 1.641404e-04
ADI step:   20 normalized residual: 1.206795e-04 relative change in Z: 5.896885e-02
		 normalized outer residual: 1.178078e-04
ADI step:   21 normalized residual: 7.652504e-05 relative change in Z: 5.788594e-02
		 normalized outer residual: 7.527815e-05
ADI step:   22 normalized residual: 2.696059e-05 relative change in Z: 6.422553e-02
		 normalized outer residual: 2.678413e-05
ADI step:   23 normalized residual: 4.450015e-07 relative change in Z: 5.243003e-02
		 normalized outer residual: 4.449110e-07
ADI step:   24 normalized residual: 9.899780e-08 relative change in Z: 1.363141e-02
		 normalized outer residual: 9.899779e-08
ADI step:   25 normalized residual: 9.775030e-08 relative change in Z: 1.019709e-03
		 normalized outer residual: 9.775030e-08
ADI step:   26 normalized residual: 8.598374e-08 relative change in Z: 9.201739e-05
		 normalized outer residual: 8.598374e-08
ADI step:   27 normalized residual: 7.466890e-08 relative change in Z: 8.632931e-05
		 normalized outer residual: 7.466890e-08
ADI step:   28 normalized residual: 6.255219e-08 relative change in Z: 8.286155e-05
		 normalized outer residual: 6.255219e-08
ADI step:   29 normalized residual: 4.947234e-08 relative change in Z: 7.879603e-05
		 normalized outer residual: 4.947234e-08
ADI step:   30 normalized residual: 3.585305e-08 relative change in Z: 7.587378e-05
		 normalized outer residual: 3.585305e-08
ADI step:   31 normalized residual: 2.001011e-08 relative change in Z: 8.025666e-05
		 normalized outer residual: 2.001011e-08
ADI step:   32 normalized residual: 1.138397e-08 relative change in Z: 5.997676e-05
		 normalized outer residual: 1.138396e-08
ADI step:   33 normalized residual: 7.399582e-09 relative change in Z: 4.523760e-05
		 normalized outer residual: 7.399582e-09
ADI step:   34 normalized residual: 4.909741e-09 relative change in Z: 4.672713e-05
		 normalized outer residual: 4.909741e-09
ADI step:   35 normalized residual: 3.062714e-09 relative change in Z: 5.041379e-05
		 normalized outer residual: 3.062713e-09
ADI step:   36 normalized residual: 1.645789e-09 relative change in Z: 4.882441e-05
		 normalized outer residual: 1.645788e-09
ADI step:   37 normalized residual: 8.224009e-10 relative change in Z: 4.209475e-05
		 normalized outer residual: 8.224006e-10
ADI step:   38 normalized residual: 3.564813e-10 relative change in Z: 3.941523e-05
		 normalized outer residual: 3.564811e-10
ADI step:   39 normalized residual: 1.766530e-10 relative change in Z: 3.107889e-05
		 normalized outer residual: 1.766528e-10
ADI step:   40 normalized residual: 4.768273e-11 relative change in Z: 2.820145e-05
		 normalized outer residual: 4.768283e-11

 NM step:    3  normalized residual: 4.768283e-11
               relative change in K: 6.069980e-05
               number of ADI steps: 40 

mess_lrnm took   1.18 seconds 
   1.0e-04 *

    0.3963
    0.0003
    0.0000

size outnm.Z:
        1357         128

Lets try the RADI method and compare

% RADI-MESS settings
opts.shifts.history = opts.shifts.num_desired*size(eqn.C,1);
opts.shifts.num_desired = opts.shifts.num_desired;

% choose either of the three shift methods, here
opts.shifts.method = 'gen-ham-opti';
%opts.shifts.method = 'heur';
%opts.shifts.method = 'projection';

opts.shifts.naive_update_mode = false; % .. Suggest false (smart update is faster; convergence is the same).
opts.radi.compute_sol_fac = 1;
opts.radi.get_ZZt = 1;
opts.radi.maxiter = opts.adi.maxiter;
opts.norm = 2;
opts.radi.res_tol = opts.nm.res_tol;
opts.radi.rel_diff_tol = 0;
opts.radi.info = 1;

t_mess_lrradi = tic;
outradi = mess_lrradi(eqn, opts, oper);
t_elapsed2 = toc(t_mess_lrradi);
fprintf(1,'mess_lrradi took %6.2f seconds \n', t_elapsed2);

if istest
    if min(outnm.res)>=opts.nm.res_tol
       error('MESS:TEST:accuracy','unexpectedly inaccurate result');
   end
else
    figure(2);
    semilogy(outradi.res,'LineWidth',3);
    title('0= C^TC + A^T X M + M^TXA -M^TXBB^T X M');
    xlabel('number of iterations');
    ylabel('normalized residual norm');
end
disp('size outradi.Z:');
disp(size(outradi.Z));
RADI step:    1 normalized residual: 3.554203e-01
RADI step:    2 normalized residual: 1.204906e-01
RADI step:    3 normalized residual: 1.075639e-01
RADI step:    4 normalized residual: 3.131546e-02
RADI step:    5 normalized residual: 9.608572e-03
RADI step:    6 normalized residual: 7.127521e-03
RADI step:    7 normalized residual: 1.141946e-03
RADI step:    8 normalized residual: 6.808772e-04
RADI step:    9 normalized residual: 5.115429e-04
RADI step:   10 normalized residual: 5.103771e-04
RADI step:   11 normalized residual: 5.095332e-04
RADI step:   12 normalized residual: 1.762591e-04
RADI step:   13 normalized residual: 1.490625e-04
RADI step:   14 normalized residual: 2.908057e-05
RADI step:   15 normalized residual: 1.542939e-05
RADI step:   16 normalized residual: 4.677597e-06
RADI step:   17 normalized residual: 4.403393e-06
RADI step:   18 normalized residual: 2.089934e-06
RADI step:   19 normalized residual: 7.897529e-07
RADI step:   20 normalized residual: 6.011825e-07
RADI step:   21 normalized residual: 5.967521e-07
RADI step:   22 normalized residual: 1.597695e-07
RADI step:   23 normalized residual: 1.475154e-07
RADI step:   24 normalized residual: 3.544115e-08
RADI step:   25 normalized residual: 3.528200e-08
RADI step:   26 normalized residual: 1.567964e-08
RADI step:   27 normalized residual: 1.491983e-08
RADI step:   28 normalized residual: 2.923635e-09
RADI step:   29 normalized residual: 1.639198e-09
RADI step:   30 normalized residual: 3.348054e-10
RADI step:   31 normalized residual: 3.248837e-10
RADI step:   32 normalized residual: 2.888544e-11
mess_lrradi took   1.05 seconds 
size outradi.Z:
        1357         127

compare

if not(istest)
    figure(3);
    ls_nm=[outnm.adi.niter];
    ls_radi=1:outradi.niter;

    semilogy(cumsum(ls_nm),outnm.res,'k--',ls_radi,outradi.res,'b-','LineWidth',3);
    title('0= C^TC + A^T X M + M^TXA -M^TXBB^T X M');
    xlabel('number of solves with A+p*M');
    ylabel('normalized residual norm');
    legend('LR-NM','RADI');
end