% Differenzenverfahren: Aufgabe 18-3

clear all

La = 1/5 ;
Lb = 1/5 ;
Lc = 1/5 ;
Ld = 2/5 ;
E  = 1   ;
I1 = 2   ;
I2 = 1   ;
F1 = 4   ;
F2 = 1   ;

L  = La+Lb+Lc+Ld ;      % Länge
IB = I2 ;               % Bezugs-Trägheitsmoment IB
nA = 100      ;         % Anzahl der Abschnitte
n  = nA + 5  ;          % Anzahl der Gleichungen
h  = L / nA  ;          % Schrittweite

A  = zeros (n,n) ;      % Matrix A
b  = zeros (n,1) ;      % Rechte Seite b
qi = zeros (n,1) ;      % Linienlast
mi = zeros (n,1) ;      % Ii = mi * IB

% Markante Punkte:
iKraft4 = round (nA * La/L + 3.1) ;
iLager  = round (nA * (La+Lb)/L + 3.1) ;
iAbsatz = round (nA * (La+Lb+Lc)/L + 3.1) ;
iR = n - 2 ;

qi(iKraft4) = F1/h ;

% Biegesteifigkeit (mue-Werte):
mi(1:iAbsatz-1) = I1/IB ;
mi(iAbsatz)     = (I1 + I2)/(2*IB) ;
mi(iAbsatz+1:n) = I2/IB ;

%Randbedingungen:
A(1:2,1:5)     = [0  0  1 0 0  ; ...
                  0 mi(3) -2*mi(3) mi(3) 0] ;                                      % Lager links
A(n-1:n,n-4:n) = [0  mi(iR) -2*mi(iR) mi(iR) 0  ; ...
                  mi(iR-1) -2*mi(iR-1) mi(iR-1)-mi(iR+1) 2*mi(iR+1) -mi(iR+1)] ;   % Kraft rechts     

for i=3:n-2                             % Matrix A:
    A(i,i-2:i+2)=[mi(i-1) -2*(mi(i-1)+mi(i)) mi(i-1)+4*mi(i)+mi(i+1) -2*(mi(i)+mi(i+1)) mi(i+1)] ;
end

% Rechte Seite b:
for i=3:iR                          
    b(i) = qi(i)*h^4/(E*IB) ;
end

b(n) = 2*F2*h^3/(E*IB) ;

%Lager:
A(iLager,iLager-2:iLager+2) = [0 0 1 0 0] ;

v = A \ b ;          % Lösung des Gleichungssystems (Berechnung der Durchbiegung v)

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)*E*IB * (v(i-1)-2*v(i)+v(i+1))/h^2 ;                              % Biegemoment
    FQ(i) = 0.5*E*IB * (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')            % Graphische Ausgabe des Momentenverlaufs
subplot (3,1,3) ; plot (z , FQ(3:n-2)) , grid on , title ('Querkraft')              % Graphische Ausgabe des Querkraftverlaufs

AbsenkungKraft4 = v(iKraft4)                                                        % Ausgabe in das Command window:    
AbsenkungAbsatz = v(iAbsatz)                                                        % Zahlenwerte der Verschiebungen ...
AbsenkungRechts = v(iR)                                                             % ... an drei speziellen Punkten ...
MbLager = Mb(iLager)                                                                % ... und das Biegemoment am mittleren Lager