clear all

% FEM-Berechnungsmodell:
[xy km ep kr bk] = finmod_m ('Rahm17.dat') ;
% Systemsteifigkeitsmatrix und -belastungsvektor:
[succ Ksys fq]   = syswbc_m (xy , km , ep , kr , bk) ;

Ks = SymBand2Sparse (Ksys) ;                        % "Sparse matrix"
[m,n]=size(Ks) ;
disp (['Anzahl der Gleichungen: ' , num2str(m)]) ;
xE = Ks \ fq ;                                      % Matlab-Standard-Solver

M = diag(diag(Ks)) ;                                % Diagonalmatrix für Präkonditionierung

xbicg = bicg         (Ks , fq , 1e-6 , m*2 , M) ;   % Biconjugate gradient
xbicgstab = bicgstab (Ks , fq , 1e-6 , m*2 , M) ;   % Biconjugate gradient stabilized
xcgs = cgs           (Ks , fq , 1e-6 , m*2 , M) ;   % Conjugate gradient squared
xminres = minres     (Ks , fq , 1e-6 , m*2 , M) ;   % Minimum residual
xpcg = pcg           (Ks , fq , 1e-6 , m*2 , M) ;   % Preconditioned conjugate gradient
xqmr = qmr           (Ks , fq , 1e-6 , m*2 , M) ;   % Quasiminimal residual
xsymmlq = symmlq     (Ks , fq , 1e-6 , m*2 , M) ;   % Symmetric LQ

mm = round (m/2) ;
x = [xE(mm-4:mm+4) xbicg(mm-4:mm+4) xbicgstab(mm-4:mm+4) xcgs(mm-4:mm+4) ...
     xminres(mm-4:mm+4) xpcg(mm-4:mm+4) xqmr(mm-4:mm+4) xsymmlq(mm-4:mm+4)]
disp ('  El.-Verf.    bicg    bicgstab     cgs      minres      pcg       qmr     symmlq') ;