DDBanner02

Zur Startseite

TM-aktuell
Aufgaben zur Kinematik und Kinetik und den Prinzipien der Mechanik

Die beiden Aufgabenstellungen wurden in einer Function realisiert. Die im Script angegebenen Werte für die Anzahl der Runge-Kutta-Schritte und die MaxStep-Option sind für die geforderte Genauigkeit ausreichend.

function Aufgabe32_5

% Parameter (global definiert, damit Wertaenderung nur an einer Stelle erforderlich):
global c1 c2 M m a1 a2 b1 b2
c1 = 80 ; c2 = 180 ; M = 20 ; m = 10 ; a1 = 0.2 ; a2 = 0.3 ; b1 = 0.25 ; b2 = 0.4 ;

x0   = [0.05 ; 0.08 ; 0 ; 0] ;        % Anfangsbedingungen  
tspan = [0 ; 30] ;                     % Zeitintervall

% Runge-Kutta 4. Ordnung: ---------------------------------
nrk4 = 4000 ;
[trk4 xrk4] = rk4 (@RechteSeite , tspan , x0 , nrk4) ;

% MATLAB-ode45-Solver mit MaxStep-Option: -----------------
options    = odeset('MaxStep' , 0.03) ;
[tode xode] = ode45 (@RechteSeite , tspan , x0 , options) ;

node = length (tode) ;
disp([' ']) ;
disp(['Anzahl der Runge-Kutta-Schritte: ',num2str(nrk4)]) ;
disp(['Anzahl der ode45-Werte:         ',num2str(node)]) ;
disp(['x1End (rk4):  ',num2str(xrk4(nrk4+1,1))]);
disp(['x1End (ode45): ',num2str(xode(node  ,1))]);
disp(['x2End (rk4):  ',num2str(xrk4(nrk4+1,2))]);
disp(['x2End (ode45): ',num2str(xode(node  ,2))]);
disp(['v1End (rk4):  ',num2str(xrk4(nrk4+1,3))]);
disp(['v1End (ode45): ',num2str(xode(node  ,3))]);
disp(['v2End (rk4):  ',num2str(xrk4(nrk4+1,4))]);
disp(['v2End (ode45): ',num2str(xode(node  ,4))]);

subplot(411)
plot(trk4 , xrk4(:,1) , tode , xode(:,1)) ; legend ('rk4','ode45',3) ; title('x1(t)') ;
subplot(412)
plot(trk4 , xrk4(:,2) , tode , xode(:,2)) ; legend ('rk4','ode45',3) ; title('x2(t)') ;
subplot(413)
plot(trk4 , xrk4(:,3) , tode , xode(:,3)) ; legend ('rk4','ode45',3) ; title('v1(t)') ;
subplot(414)
plot(trk4 , xrk4(:,4) , tode , xode(:,4)) ; legend ('rk4','ode45',3) ; title('v2(t)') ;

% ============================================================
% Funktion, die die "rechte Seite" des Dgl.-Systems definiert:
function f = RechteSeite (t , x)

global c1 c2 M m a1 a2 b1 b2

x1 = x(1) ;
x2 = x(2) ;
v1 = x(3) ;
v2 = x(4) ;

x1p = v1 ;
x2p = v2 ;
gkl = c2*(x2-x1)*(1-b2/sqrt((x2-x1)^2+a2^2)) ;
v1p = -(c1*x1*(1-b1/sqrt(x1^2+a1^2))-gkl)/M ;
v2p = -(gkl)/m ;

f = [x1p ; x2p ; v1p ; v2p] ;

Nach Abarbeitung dieses Matlab-Scripts sieht man in einem Graphik-Fenster die vier geforderten Weg-Zeit und Geschwindugkeits-Zeit-Funktionen, und in das Command Window werden die Werte am Ende des Zeitintervalls ausgegeben:

Das oben gelistete MATLAB-Script steht als Aufgabe32_5.m, die Function rk4 als rk4.m zum Download zur Verfügung.

Zur Übersicht der Aufgaben zur Kinematik und Kinetik und den Prinzipien der Mechanik

www.DankertDankert.de

TM1-Aufgaben TM2-Aufgaben
TM3-Aufgaben TM3-Aufgaben