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

Ks = SymBand2Sparse (Ksys) ;       % "Sparse matrix"
subplot(3,2,1), spy(Ks), title('Bandmatrix')

t1 = cputime ;
R  = chol(Ks) ; [i,j] = find(Ks);
disp (['Bandweite der Originalmatrix: ' num2str(max(i-j) + 1)]) ;
subplot(3,2,2), spy(R) , title('Rechtsdreiecksmatrix')
v = R\(R'\fq) ;
disp (['Zeit Original-Bandmatrix:     ' num2str(cputime-t1)]) ;

t1 = cputime ;
r  = symrcm(Ks) ; Ksb = Ks(r,r); fqb = fq(r) ; [i,j] = find(Ksb);
disp (['Reduzierte Bandweite:         ' num2str(max(i-j) + 1)]) ;
subplot(3,2,3), spy(Ksb), title('Reduzierte Bandweite')
Rb = chol(Ksb) ;
subplot(3,2,4), spy(Rb) , title('Rechtsdreiecksmatrix')
vb(r,1) = Rb\(Rb'\fqb) ;
disp (['Zeit Bandweiten-optimiert:    ' num2str(cputime-t1)]) ;

t1 = cputime ;
p  = symamd(Ks) ; Ksf = Ks(p,p) ; fqf = fq(p) ;
subplot(3,2,5), spy(Ksf), title('Fill-in minimiert')
Rf = chol(Ksf) ;
subplot(3,2,6), spy(Rf) , title('Rechtsdreiecksmatrix')
vf(p,1) = Rf\(Rf'\fqf) ;
disp (['Zeit Fill-in-optimiert:       ' num2str(cputime-t1)]) ;

t1 = cputime ; vS = Ks\fq ;
disp (['Zeit Backslash-Operator:      ' num2str(cputime-t1)]) ;