% Differenzenverfahren: (Aufgabe 33-11)

clear all

La = 300   ;
Lb = 300   ;
Lc = 600   ;
E  = 1     ;
I1 = 800000000 ;
I2 = 400000000 ;
c  = 300   ;
q1 = 3     ;
F  = 2000  ;
M  = 200000 ;

L  = La+Lb+Lc ;    % Länge
IB = I2 ;          % Bezugs-Trägheitsmoment IB
nA = 480      ;    % 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:
iKraft  = round (nA *  La/L     + 3.1) ;
iFeder  = round (nA * (La+Lb)/L + 3.1) ;
iRechts = n - 2 ;

% Belastung
qi(iFeder:iRechts) = 0 : q1/(iRechts-iFeder) : q1 ;
qi(iKraft) = qi(iKraft) + F/h ;

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

%Randbedingungen:
A(1:2,1:5)     = [0  0  1 0 0  ; ...
                  0 -1  0 1 0] ;         % Einspannung links
A(n-1:n,n-4:n) = [0  mi(iRechts) -2*mi(iRechts) mi(iRechts) 0  ; ...
                  0      0              1           0       0] ;    % Loslager rechts 
b(n-1) = M*h^2/(E*IB) ;

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

% Feder:
A(iFeder,iFeder) = A(iFeder,iFeder) + (c/h) * h^4/(E*IB) ;

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

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

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)*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

AbsenkungKraft = v(iKraft)   % Ausgabe in das Command window:    
AbsenkungFeder = v(iFeder)   % Zahlenwerte der Verschiebungen, ...
MbA = Mb(3)                  % ... das Einspannmoment am Punkt A ...
MbBeiF = Mb(iKraft)          % ... und zwei weitere Biegemomente
MbMitte = Mb(iFeder)       
