% Euler-Cauchy-Verfahren Stab-Pendel mit großen Ausschlaegen:

phip   = inline ('omega','omega') ;
omegap = inline ('-faktor*sin(phi)','t','phi','omega','faktor') ;

pl     = 1 ; g = 9.81 ;                        % Pendellaenge, Erdbeschleunigung
faktor = 1.5*g/pl ;

t0 = 0 ; phi0 = pi/2 ; omega0 = 0 ;   % Anfangswerte
tEnd = 1   ;                          % Ende des Integrationsintervalls
n    = 100 ;                          % Anzahl der Integrationsschritte
dt   = (tEnd - t0) / n ;

t = t0 : dt : tEnd    ;
phi   = zeros (n+1,1) ;
omega = zeros (n+1,1) ;

% Euler-Cauchy-Algorithmus -------------------------------------------- 
phi(1) = phi0 ; omega(1) = omega0 ;

for i=1:n
    phi  (i+1) = phi  (i) + dt * phip   (omega(i)) ;
    omega(i+1) = omega(i) + dt * omegap (t(i),phi(i),omega(i),faktor) ;
end
% Euler-Cauchy-Algorithmus -------------------------------------------- 

% Erweiterte Auswertung, Verifizieren der Ergebnisse:
Tges = - g/2*cos(phi) + pl*omega.^2/6 ;   % Kontrollfunktion "Gesamtenergie"

[phimin , imin] = min(phi) ; 
disp (['Anzahl der Zeitschritte n = ' , num2str(n)]) ;
disp (['phi_0     =  ' , num2str(phi0)])   ; 
disp (['phi_min   = ' , num2str(phimin) , ' bei t = ' , num2str(t(imin))]) ;
disp (['omega_max =  ' , num2str(max(abs(omega)))])   ; 
subplot (2,1,1) ; plot (t , phi)  , title ('\phi(t)') ;    
subplot (2,1,2) ; plot (t , Tges) , title ('T_{ges}(t)') ;      