% Differenzenverfahren (Aufgabe 18-14):

clear all

l   = 1 ;
EI1 = 1 ;
EI2 = 2 ;
EI3 = 1 ;
F   = 1 ;
q1  = 2 ;
q2  = 1 ;

L  = 3*l    ;           % Gesamtlaenge
EIB = EI1   ;           % Bezugs-Biegesteifigkeit
nA = 3000   ;           % Anzahl der Abschnitte
n  = nA + 5 ;           % Anzahl der Gleichungen
h  = L / nA ;           % Schrittweite

A  = zeros (n,7) ;      % Rechteckmatrix fuer Aufnahme der Bandmatrix
b  = zeros (n,1) ;      % Nullvektor ("rechte Seite")
qi = zeros (n,1) ;      % Linienlastintensitaeten an Stuetzpunkten
mi = zeros (n,1) ;      % EIi = mi * EIB
ki = zeros (n,1) ;      % Bettungszahlen an Stuetzpunkten

% Markante Punkte:
iF  = round (nA*l/L  +3.1) ;
iq1 = round (nA*2*l/L+3.1) ;
iq2 = n - 2 ;

% Belastung
qi(iF)      = F/h ;
qi(iq1:iq2) = q1 : (q2-q1)/(iq2-iq1) : q2 ;
qi(iq1)     = q1/2 ;

% Biegesteifigkeit (mue-Werte):
mi(1:iF-1)     = EI1/EIB ;
mi(iF)         = (EI1+EI2)/(2*EIB) ;
mi(iF+1:iq1-1) = EI2/EIB ;
mi(iq1)        = (EI2+EI3)/(2*EIB) ;
mi(iq1+1:n)    = EI3/EIB ;

%Randbedingungen:
A(1:2,:)   = [0 0 0  0 0 1  0 ;
              0 0 0 -1 0 1 0] ;                                         % Einspannung links
A(n-1:n,:) = [    0            0           1      0 0 0 0  ;
              mi(iq2) -2*mi(iq2) mi(iq2) 0 0 0 0] ;     

for i = 3:n-2    % Matrix A:                          
    A(i,:)= [0 mi(i-1) -2*(mi(i-1)+mi(i)) mi(i-1)+4*mi(i)+mi(i+1)+ki(i)*h^4/EIB -2*(mi(i)+mi(i+1)) mi(i+1) 0] ;    
    b(i) = qi(i)*h^4/(EIB) ;                                            % Standardgleichungen
end

t1 = cputime ;
v = gabamp (A , b) ;                                                    % Berechnung der Durchsenkung
ZeitGlSyst = cputime - t1 

clf;
z = 0 : h : L ;
subplot (3,1,1) ; plot (z , v(3:n-2)) , axis ij , grid on , 
                        title ('Durchbiegung')                          % Graphische Ausgabe der Biegelinie

for i=3:n-2                       
    Mb(i) = -mi(i)*EIB * (v(i-1)-2*v(i)+v(i+1))/h^2 ;                   % Biegemoment
    FQ(i) = 0.5*EIB * (mi(i-1)*v(i-2)-2*mi(i-1)*v(i-1)+(mi(i-1)-mi(i+1)) ...
                        *v(i)+2*mi(i+1)*v(i+1)-mi(i+1)*v(i+2))/h^3 ;    % Querkraft
end
    
subplot (3,1,2) ; plot (z , Mb(3:n-2)) , grid on , title ('Biegemoment') 
subplot (3,1,3) ; plot (z , FQ(3:n-2)) , grid on , title ('Querkraft')   
   
format long
vF      = v(iF)          % Ausgabe in das Command window
vq1     = v(iq1) 
MbLinks = Mb(3)
MbF     = Mb(iF)
Mbq1    = Mb(iq1)