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
%             (1-4, i.e. 1357-79841Dofs)
%             (optinal, defaults to 1)
%
% 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 superseeds 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).
%
% [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 program is free software; you can redistribute it and/or modify
% it under the terms of the GNU General Public License as published by
% the Free Software Foundation; either version 2 of the License, or
% (at your option) any later version.
%
% This program is distributed in the hope that it will be useful,
% but WITHOUT ANY WARRANTY; without even the implied warranty of
% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
% GNU General Public License for more details.
%
% You should have received a copy of the GNU General Public License
% along with this program; if not, see <http://www.gnu.org/licenses/>.
%
% Copyright (C) Jens Saak, Martin Koehler, Peter Benner and others
%               2009-2020
%
narginchk(0,5);
if nargin<1, k=1; 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=getrail(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);
tic;
outnm = mess_lrnm(eqn, opts, oper);
toc;

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);
    title('0= C^TC + A^TXM + M^TXA -M^TXBB^TXM');
    xlabel('number of iterations');
    ylabel('normalized residual norm');
    pause(1);
end

disp('size outnm.Z:');
disp(size(outnm.Z));
ADI step:    1 normalized residual: 9.303764e-01 relative change in Z: 1.000000e+00
		normalized outer residual: 9.303763e-01
ADI step:    2 normalized residual: 8.539164e-01 relative change in Z: 7.132928e-01
		normalized outer residual: 8.539163e-01
ADI step:    3 normalized residual: 7.658813e-01 relative change in Z: 5.972237e-01
		normalized outer residual: 7.658810e-01
ADI step:    4 normalized residual: 6.714443e-01 relative change in Z: 5.173327e-01
		normalized outer residual: 6.714436e-01
ADI step:    5 normalized residual: 5.639323e-01 relative change in Z: 4.760509e-01
		normalized outer residual: 5.639310e-01
ADI step:    6 normalized residual: 4.531679e-01 relative change in Z: 4.291598e-01
		normalized outer residual: 4.531654e-01
ADI step:    7 normalized residual: 3.481477e-01 relative change in Z: 3.835150e-01
		normalized outer residual: 3.481435e-01
ADI step:    8 normalized residual: 2.268878e-01 relative change in Z: 3.886783e-01
		normalized outer residual: 2.268803e-01
ADI step:    9 normalized residual: 1.396843e-01 relative change in Z: 3.373168e-01
		normalized outer residual: 1.396731e-01
ADI step:   10 normalized residual: 9.304214e-02 relative change in Z: 2.662943e-01
		normalized outer residual: 9.302818e-02
ADI step:   11 normalized residual: 5.883424e-02 relative change in Z: 2.405461e-01
		normalized outer residual: 5.881764e-02
ADI step:   12 normalized residual: 2.861068e-02 relative change in Z: 2.391943e-01
		normalized outer residual: 2.859205e-02
ADI step:   13 normalized residual: 1.189389e-02 relative change in Z: 2.043562e-01
		normalized outer residual: 1.187739e-02
ADI step:   14 normalized residual: 5.529188e-03 relative change in Z: 1.638109e-01
		normalized outer residual: 5.517507e-03
ADI step:   15 normalized residual: 2.524790e-03 relative change in Z: 1.498967e-01
		normalized outer residual: 2.516767e-03
ADI step:   16 normalized residual: 8.685998e-04 relative change in Z: 1.231580e-01
		normalized outer residual: 8.637869e-04
ADI step:   17 normalized residual: 4.342963e-04 relative change in Z: 6.713691e-02
		normalized outer residual: 4.353459e-04
ADI step:   18 normalized residual: 2.979404e-04 relative change in Z: 5.074681e-02
		normalized outer residual: 3.031402e-04
ADI step:   19 normalized residual: 2.084510e-04 relative change in Z: 5.837265e-02
		normalized outer residual: 2.162634e-04
ADI step:   20 normalized residual: 1.406698e-04 relative change in Z: 5.945130e-02
		normalized outer residual: 1.515315e-04
ADI step:   21 normalized residual: 7.542061e-05 relative change in Z: 6.124586e-02
		normalized outer residual: 9.405439e-05
ADI step:   22 normalized residual: 1.927805e-05 relative change in Z: 5.916788e-02
		normalized outer residual: 6.164351e-05
ADI step:   23 normalized residual: 2.121106e-07 relative change in Z: 3.843114e-02
		normalized outer residual: 6.055295e-05
ADI step:   24 normalized residual: 1.007752e-07 relative change in Z: 6.685071e-03
		normalized outer residual: 6.055160e-05
ADI step:   25 normalized residual: 9.970498e-08 relative change in Z: 6.274494e-04
		normalized outer residual: 6.055189e-05
ADI step:   26 normalized residual: 9.504137e-08 relative change in Z: 5.697438e-05
		normalized outer residual: 6.055190e-05
ADI step:   27 normalized residual: 8.977032e-08 relative change in Z: 6.075582e-05
		normalized outer residual: 6.055192e-05
ADI step:   28 normalized residual: 8.368002e-08 relative change in Z: 6.516932e-05
		normalized outer residual: 6.055193e-05
ADI step:   29 normalized residual: 7.722903e-08 relative change in Z: 6.599588e-05
		normalized outer residual: 6.055193e-05
ADI step:   30 normalized residual: 6.987154e-08 relative change in Z: 6.783337e-05
		normalized outer residual: 6.055193e-05
ADI step:   31 normalized residual: 6.183081e-08 relative change in Z: 6.773307e-05
		normalized outer residual: 6.055193e-05
ADI step:   32 normalized residual: 5.315546e-08 relative change in Z: 6.942174e-05
		normalized outer residual: 6.055195e-05
ADI step:   33 normalized residual: 4.087924e-08 relative change in Z: 8.596930e-05
		normalized outer residual: 6.055202e-05
ADI step:   34 normalized residual: 2.949815e-08 relative change in Z: 9.234553e-05
		normalized outer residual: 6.055218e-05
ADI step:   35 normalized residual: 2.207118e-08 relative change in Z: 8.686137e-05
		normalized outer residual: 6.055243e-05
ADI step:   36 normalized residual: 1.562767e-08 relative change in Z: 9.095217e-05
		normalized outer residual: 6.055284e-05
ADI step:   37 normalized residual: 8.636408e-09 relative change in Z: 1.040559e-04
		normalized outer residual: 6.055340e-05
ADI step:   38 normalized residual: 3.991990e-09 relative change in Z: 9.828149e-05
		normalized outer residual: 6.055380e-05
ADI step:   39 normalized residual: 2.028906e-09 relative change in Z: 8.145823e-05
		normalized outer residual: 6.055399e-05
ADI step:   40 normalized residual: 9.850220e-10 relative change in Z: 7.628171e-05
		normalized outer residual: 6.055408e-05
ADI step:   41 normalized residual: 2.840489e-10 relative change in Z: 7.045742e-05
		normalized outer residual: 6.055416e-05
ADI step:   42 normalized residual: 6.254303e-11 relative change in Z: 4.131070e-05
		normalized outer residual: 6.055419e-05
ADI step:   43 normalized residual: 1.410131e-11 relative change in Z: 2.082402e-05
		normalized outer residual: 6.055419e-05
ADI step:   44 normalized residual: 1.568327e-12 relative change in Z: 1.158603e-05
		normalized outer residual: 6.055419e-05
ADI step:   45 normalized residual: 5.071568e-14 relative change in Z: 4.411117e-06
		normalized outer residual: 6.055419e-05
ADI step:   46 normalized residual: 2.645028e-14 relative change in Z: 5.288257e-07
		normalized outer residual: 6.055419e-05
ADI step:   47 normalized residual: 2.444010e-14 relative change in Z: 1.267751e-07
		normalized outer residual: 6.055419e-05
ADI step:   48 normalized residual: 2.390847e-14 relative change in Z: 6.088309e-08
		normalized outer residual: 6.055419e-05
ADI step:   49 normalized residual: 2.354573e-14 relative change in Z: 4.903889e-08
		normalized outer residual: 6.055419e-05
ADI step:   50 normalized residual: 2.326042e-14 relative change in Z: 4.267443e-08
		normalized outer residual: 6.055419e-05
ADI step:   51 normalized residual: 2.251554e-14 relative change in Z: 2.496356e-08
		normalized outer residual: 6.055419e-05
ADI step:   52 normalized residual: 2.167615e-14 relative change in Z: 2.693916e-08
		normalized outer residual: 6.055419e-05
ADI step:   53 normalized residual: 2.071521e-14 relative change in Z: 2.931658e-08
		normalized outer residual: 6.055419e-05
ADI step:   54 normalized residual: 1.971413e-14 relative change in Z: 3.033140e-08
		normalized outer residual: 6.055419e-05
ADI step:   55 normalized residual: 1.859463e-14 relative change in Z: 3.237183e-08
		normalized outer residual: 6.055419e-05
ADI step:   56 normalized residual: 1.737649e-14 relative change in Z: 3.438650e-08
		normalized outer residual: 6.055419e-05
ADI step:   57 normalized residual: 1.602077e-14 relative change in Z: 3.790898e-08
		normalized outer residual: 6.055419e-05
ADI step:   58 normalized residual: 1.393759e-14 relative change in Z: 5.106835e-08
		normalized outer residual: 6.055419e-05
ADI step:   59 normalized residual: 1.162564e-14 relative change in Z: 6.098068e-08
		normalized outer residual: 6.055419e-05
ADI step:   60 normalized residual: 9.604368e-15 relative change in Z: 6.311463e-08
		normalized outer residual: 6.055419e-05

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

ADI step:    1 normalized residual: 9.303984e-01 relative change in Z: 1.000000e+00
		normalized outer residual: 9.303757e-01
ADI step:    2 normalized residual: 8.539372e-01 relative change in Z: 7.132931e-01
		normalized outer residual: 8.539150e-01
ADI step:    3 normalized residual: 7.659002e-01 relative change in Z: 5.972241e-01
		normalized outer residual: 7.658789e-01
ADI step:    4 normalized residual: 6.714513e-01 relative change in Z: 5.173519e-01
		normalized outer residual: 6.714313e-01
ADI step:    5 normalized residual: 5.639206e-01 relative change in Z: 4.760722e-01
		normalized outer residual: 5.639022e-01
ADI step:    6 normalized residual: 4.530700e-01 relative change in Z: 4.292789e-01
		normalized outer residual: 4.530537e-01
ADI step:    7 normalized residual: 3.480539e-01 relative change in Z: 3.834744e-01
		normalized outer residual: 3.480397e-01
ADI step:    8 normalized residual: 2.266114e-01 relative change in Z: 3.889243e-01
		normalized outer residual: 2.266002e-01
ADI step:    9 normalized residual: 1.394342e-01 relative change in Z: 3.373096e-01
		normalized outer residual: 1.394262e-01
ADI step:   10 normalized residual: 9.290057e-02 relative change in Z: 2.660381e-01
		normalized outer residual: 9.289533e-02
ADI step:   11 normalized residual: 5.876467e-02 relative change in Z: 2.403070e-01
		normalized outer residual: 5.876175e-02
ADI step:   12 normalized residual: 2.854736e-02 relative change in Z: 2.391927e-01
		normalized outer residual: 2.854576e-02
ADI step:   13 normalized residual: 1.189915e-02 relative change in Z: 2.039573e-01
		normalized outer residual: 1.189729e-02
ADI step:   14 normalized residual: 5.515019e-03 relative change in Z: 1.640275e-01
		normalized outer residual: 5.512677e-03
ADI step:   15 normalized residual: 2.520113e-03 relative change in Z: 1.496541e-01
		normalized outer residual: 2.517412e-03
ADI step:   16 normalized residual: 8.507955e-04 relative change in Z: 1.236802e-01
		normalized outer residual: 8.461822e-04
ADI step:   17 normalized residual: 4.374576e-04 relative change in Z: 6.600777e-02
		normalized outer residual: 4.310616e-04
ADI step:   18 normalized residual: 3.017156e-04 relative change in Z: 5.086801e-02
		normalized outer residual: 2.955861e-04
ADI step:   19 normalized residual: 2.097893e-04 relative change in Z: 5.861766e-02
		normalized outer residual: 2.055130e-04
ADI step:   20 normalized residual: 1.389405e-04 relative change in Z: 5.939802e-02
		normalized outer residual: 1.367476e-04
ADI step:   21 normalized residual: 7.191941e-05 relative change in Z: 6.048015e-02
		normalized outer residual: 7.122983e-05
ADI step:   22 normalized residual: 1.688178e-05 relative change in Z: 5.714133e-02
		normalized outer residual: 1.681057e-05
ADI step:   23 normalized residual: 2.042560e-07 relative change in Z: 3.546450e-02
		normalized outer residual: 2.036977e-07
ADI step:   24 normalized residual: 1.028462e-07 relative change in Z: 6.533789e-03
		normalized outer residual: 1.030121e-07
ADI step:   25 normalized residual: 1.016677e-07 relative change in Z: 6.675279e-04
		normalized outer residual: 1.018252e-07
ADI step:   26 normalized residual: 9.693913e-08 relative change in Z: 5.740469e-05
		normalized outer residual: 9.710456e-08
ADI step:   27 normalized residual: 9.159776e-08 relative change in Z: 6.121325e-05
		normalized outer residual: 9.177312e-08
ADI step:   28 normalized residual: 8.543283e-08 relative change in Z: 6.565492e-05
		normalized outer residual: 8.562131e-08
ADI step:   29 normalized residual: 7.891407e-08 relative change in Z: 6.648196e-05
		normalized outer residual: 7.911884e-08
ADI step:   30 normalized residual: 7.149796e-08 relative change in Z: 6.832737e-05
		normalized outer residual: 7.172526e-08
ADI step:   31 normalized residual: 6.340728e-08 relative change in Z: 6.827128e-05
		normalized outer residual: 6.366566e-08
ADI step:   32 normalized residual: 5.469126e-08 relative change in Z: 7.004120e-05
		normalized outer residual: 5.499397e-08
ADI step:   33 normalized residual: 4.231696e-08 relative change in Z: 8.705837e-05
		normalized outer residual: 4.271489e-08
ADI step:   34 normalized residual: 3.079672e-08 relative change in Z: 9.389908e-05
		normalized outer residual: 3.135358e-08
ADI step:   35 normalized residual: 2.320080e-08 relative change in Z: 8.868359e-05
		normalized outer residual: 2.394859e-08
ADI step:   36 normalized residual: 1.650622e-08 relative change in Z: 9.316200e-05
		normalized outer residual: 1.755870e-08
ADI step:   37 normalized residual: 9.112338e-09 relative change in Z: 1.068795e-04
		normalized outer residual: 1.093080e-08
ADI step:   38 normalized residual: 4.130863e-09 relative change in Z: 1.005731e-04
		normalized outer residual: 7.340154e-09
ADI step:   39 normalized residual: 2.008144e-09 relative change in Z: 8.279209e-05
		normalized outer residual: 6.401983e-09
ADI step:   40 normalized residual: 9.495956e-10 relative change in Z: 7.593748e-05
		normalized outer residual: 6.157209e-09
ADI step:   41 normalized residual: 2.635698e-10 relative change in Z: 6.978422e-05
		normalized outer residual: 6.092678e-09
ADI step:   42 normalized residual: 5.924128e-11 relative change in Z: 3.980611e-05
		normalized outer residual: 6.088392e-09
ADI step:   43 normalized residual: 1.343227e-11 relative change in Z: 2.029607e-05
		normalized outer residual: 6.088347e-09
ADI step:   44 normalized residual: 1.497087e-12 relative change in Z: 1.131708e-05
		normalized outer residual: 6.088365e-09
ADI step:   45 normalized residual: 5.188925e-14 relative change in Z: 4.305616e-06
		normalized outer residual: 6.088369e-09
ADI step:   46 normalized residual: 2.877169e-14 relative change in Z: 5.171715e-07
		normalized outer residual: 6.088370e-09
ADI step:   47 normalized residual: 2.664496e-14 relative change in Z: 1.253971e-07
		normalized outer residual: 6.088370e-09
ADI step:   48 normalized residual: 2.604083e-14 relative change in Z: 6.196434e-08
		normalized outer residual: 6.088370e-09
ADI step:   49 normalized residual: 2.563786e-14 relative change in Z: 4.921756e-08
		normalized outer residual: 6.088370e-09
ADI step:   50 normalized residual: 2.532459e-14 relative change in Z: 4.253082e-08
		normalized outer residual: 6.088370e-09
ADI step:   51 normalized residual: 2.455440e-14 relative change in Z: 2.546571e-08
		normalized outer residual: 6.088370e-09
ADI step:   52 normalized residual: 2.368531e-14 relative change in Z: 2.750537e-08
		normalized outer residual: 6.088370e-09
ADI step:   53 normalized residual: 2.268924e-14 relative change in Z: 2.997620e-08
		normalized outer residual: 6.088370e-09
ADI step:   54 normalized residual: 2.165155e-14 relative change in Z: 3.109040e-08
		normalized outer residual: 6.088370e-09
ADI step:   55 normalized residual: 2.049349e-14 relative change in Z: 3.331119e-08
		normalized outer residual: 6.088370e-09
ADI step:   56 normalized residual: 1.923535e-14 relative change in Z: 3.557456e-08
		normalized outer residual: 6.088370e-09
ADI step:   57 normalized residual: 1.783268e-14 relative change in Z: 3.938915e-08
		normalized outer residual: 6.088370e-09
ADI step:   58 normalized residual: 1.564792e-14 relative change in Z: 5.339252e-08
		normalized outer residual: 6.088370e-09
ADI step:   59 normalized residual: 1.315954e-14 relative change in Z: 6.415375e-08
		normalized outer residual: 6.088370e-09
ADI step:   60 normalized residual: 1.091489e-14 relative change in Z: 6.668441e-08
		normalized outer residual: 6.088370e-09
ADI step:   61 normalized residual: 8.340681e-15 relative change in Z: 7.394368e-08
		normalized outer residual: 6.088370e-09

NM step:    2  normalized residual: 6.088370e-09
               relative change in K: 7.698417e-03
               number of ADI steps: 61 

ADI step:    1 normalized residual: 9.303984e-01 relative change in Z: 1.000000e+00
		normalized outer residual: 9.303757e-01
ADI step:    2 normalized residual: 8.539372e-01 relative change in Z: 7.132931e-01
		normalized outer residual: 8.539150e-01
ADI step:    3 normalized residual: 7.659002e-01 relative change in Z: 5.972241e-01
		normalized outer residual: 7.658789e-01
ADI step:    4 normalized residual: 6.714517e-01 relative change in Z: 5.173512e-01
		normalized outer residual: 6.714316e-01
ADI step:    5 normalized residual: 5.639215e-01 relative change in Z: 4.760716e-01
		normalized outer residual: 5.639031e-01
ADI step:    6 normalized residual: 4.530735e-01 relative change in Z: 4.292751e-01
		normalized outer residual: 4.530571e-01
ADI step:    7 normalized residual: 3.480571e-01 relative change in Z: 3.834757e-01
		normalized outer residual: 3.480429e-01
ADI step:    8 normalized residual: 2.266198e-01 relative change in Z: 3.889172e-01
		normalized outer residual: 2.266085e-01
ADI step:    9 normalized residual: 1.394418e-01 relative change in Z: 3.373092e-01
		normalized outer residual: 1.394338e-01
ADI step:   10 normalized residual: 9.290473e-02 relative change in Z: 2.660457e-01
		normalized outer residual: 9.289948e-02
ADI step:   11 normalized residual: 5.876618e-02 relative change in Z: 2.403151e-01
		normalized outer residual: 5.876326e-02
ADI step:   12 normalized residual: 2.854917e-02 relative change in Z: 2.391900e-01
		normalized outer residual: 2.854758e-02
ADI step:   13 normalized residual: 1.189882e-02 relative change in Z: 2.039684e-01
		normalized outer residual: 1.189700e-02
ADI step:   14 normalized residual: 5.515399e-03 relative change in Z: 1.640165e-01
		normalized outer residual: 5.513124e-03
ADI step:   15 normalized residual: 2.520100e-03 relative change in Z: 1.496588e-01
		normalized outer residual: 2.517503e-03
ADI step:   16 normalized residual: 8.504350e-04 relative change in Z: 1.236857e-01
		normalized outer residual: 8.460321e-04
ADI step:   17 normalized residual: 4.371270e-04 relative change in Z: 6.599275e-02
		normalized outer residual: 4.310531e-04
ADI step:   18 normalized residual: 3.014390e-04 relative change in Z: 5.084647e-02
		normalized outer residual: 2.956577e-04
ADI step:   19 normalized residual: 2.096199e-04 relative change in Z: 5.859170e-02
		normalized outer residual: 2.056472e-04
ADI step:   20 normalized residual: 1.388950e-04 relative change in Z: 5.937881e-02
		normalized outer residual: 1.369203e-04
ADI step:   21 normalized residual: 7.196834e-05 relative change in Z: 6.048056e-02
		normalized outer residual: 7.139905e-05
ADI step:   22 normalized residual: 1.693559e-05 relative change in Z: 5.717885e-02
		normalized outer residual: 1.689916e-05
ADI step:   23 normalized residual: 2.046772e-07 relative change in Z: 3.553708e-02
		normalized outer residual: 2.046736e-07
ADI step:   24 normalized residual: 1.028953e-07 relative change in Z: 6.540377e-03
		normalized outer residual: 1.028953e-07
ADI step:   25 normalized residual: 1.017183e-07 relative change in Z: 6.665161e-04
		normalized outer residual: 1.017183e-07
ADI step:   26 normalized residual: 9.699195e-08 relative change in Z: 5.739666e-05
		normalized outer residual: 9.699195e-08
ADI step:   27 normalized residual: 9.165273e-08 relative change in Z: 6.120563e-05
		normalized outer residual: 9.165273e-08
ADI step:   28 normalized residual: 8.548964e-08 relative change in Z: 6.564854e-05
		normalized outer residual: 8.548964e-08
ADI step:   29 normalized residual: 7.897193e-08 relative change in Z: 6.647855e-05
		normalized outer residual: 7.897193e-08
ADI step:   30 normalized residual: 7.155585e-08 relative change in Z: 6.832939e-05
		normalized outer residual: 7.155584e-08
ADI step:   31 normalized residual: 6.346419e-08 relative change in Z: 6.828010e-05
		normalized outer residual: 6.346419e-08
ADI step:   32 normalized residual: 5.474601e-08 relative change in Z: 7.005769e-05
		normalized outer residual: 5.474601e-08
ADI step:   33 normalized residual: 4.236768e-08 relative change in Z: 8.708402e-05
		normalized outer residual: 4.236768e-08
ADI step:   34 normalized residual: 3.084003e-08 relative change in Z: 9.394008e-05
		normalized outer residual: 3.084003e-08
ADI step:   35 normalized residual: 2.323514e-08 relative change in Z: 8.873750e-05
		normalized outer residual: 2.323514e-08
ADI step:   36 normalized residual: 1.653023e-08 relative change in Z: 9.322546e-05
		normalized outer residual: 1.653023e-08
ADI step:   37 normalized residual: 9.124592e-09 relative change in Z: 1.069447e-04
		normalized outer residual: 9.124592e-09
ADI step:   38 normalized residual: 4.134147e-09 relative change in Z: 1.006285e-04
		normalized outer residual: 4.134147e-09
ADI step:   39 normalized residual: 2.008462e-09 relative change in Z: 8.280588e-05
		normalized outer residual: 2.008462e-09
ADI step:   40 normalized residual: 9.492903e-10 relative change in Z: 7.593145e-05
		normalized outer residual: 9.492903e-10
ADI step:   41 normalized residual: 2.634140e-10 relative change in Z: 6.977099e-05
		normalized outer residual: 2.634140e-10
ADI step:   42 normalized residual: 5.922031e-11 relative change in Z: 3.979467e-05
		normalized outer residual: 5.922030e-11

NM step:    3  normalized residual: 5.922030e-11
               relative change in K: 6.516683e-06
               number of ADI steps: 42 

Elapsed time is 0.820291 seconds.
   1.0e-04 *

    0.6055
    0.0001
    0.0000

size outnm.Z:
        1357         132

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;

tic;
outradi = mess_lrradi(eqn, opts, oper);
toc;

if istest
    if min(outnm.res)>=opts.nm.res_tol
       error('MESS:TEST:accuracy','unexpectedly inaccurate result');
   end
else
    figure(2);
    semilogy(outradi.res);
    title('0= C^TC + A^TXM + M^TXA -M^TXBB^TXM');
    xlabel('number of iterations');
    ylabel('normalized residual norm');
end
disp('size outradi.Z:');
disp(size(outradi.Z));
RADI step:    1 normalized residual: 2.938578e-01
RADI step:    2 normalized residual: 1.055053e-01
RADI step:    3 normalized residual: 9.156909e-02
RADI step:    4 normalized residual: 2.423910e-02
RADI step:    5 normalized residual: 1.289624e-02
RADI step:    6 normalized residual: 1.109388e-02
RADI step:    7 normalized residual: 1.318018e-03
RADI step:    8 normalized residual: 1.058302e-03
RADI step:    9 normalized residual: 1.050657e-03
RADI step:   10 normalized residual: 1.047092e-03
RADI step:   11 normalized residual: 1.313463e-04
RADI step:   12 normalized residual: 1.281721e-04
RADI step:   13 normalized residual: 1.150106e-04
RADI step:   14 normalized residual: 4.954547e-05
RADI step:   15 normalized residual: 2.028448e-05
RADI step:   16 normalized residual: 6.927523e-06
RADI step:   17 normalized residual: 1.902232e-06
RADI step:   18 normalized residual: 1.804232e-06
RADI step:   19 normalized residual: 1.488907e-06
RADI step:   20 normalized residual: 2.224546e-07
RADI step:   21 normalized residual: 2.204511e-07
RADI step:   22 normalized residual: 1.563227e-07
RADI step:   23 normalized residual: 5.374679e-08
RADI step:   24 normalized residual: 3.856938e-08
RADI step:   25 normalized residual: 3.638868e-08
RADI step:   26 normalized residual: 9.370029e-09
RADI step:   27 normalized residual: 5.185467e-09
RADI step:   28 normalized residual: 1.299092e-09
RADI step:   29 normalized residual: 1.234112e-09
RADI step:   30 normalized residual: 1.052008e-09
RADI step:   31 normalized residual: 3.889062e-10
RADI step:   32 normalized residual: 1.042112e-10
RADI step:   33 normalized residual: 2.558412e-11
Elapsed time is 0.597165 seconds.
size outradi.Z:
        1357         130

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-');
    title('0= C^TC + A^TXM + M^TXA -M^TXBB^TXM');
    xlabel('number of solves with A+p*M');
    ylabel('normalized residual norm');
    legend('LR-NM','RADI');
end