function [] = blatt10_rumpf() % !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! % Zuerst muss einmal aus der Main-Funktion bzw. aus dem Command Window % const = getConstants() % aufgerufen werden! Dann existiert das struct "const" im Workspace % und kann in den Unterfunktionen "getBiegung" und "getBiegungAbleitung" % geladen werden % !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! % LÖSEN DER DGL: BALLPOSITION x [T,Y] = ode45(@myRHS,[0 100],[18 0.0]); % BERECHNUNG DER HÖHE DES BALLS w(x(t)) W = zeros(size(T)); for q=1:size(T,1) W(q) = getBiegung(Y(q,1),T(q)); end % BERERCHNUNBG DER KOMPLETTEN BALKENBIEGUNG w t = 0:0.1:100; x = 0:0.1:25; w = zeros(size(t,2), size(x,2)); for i=1:size(x,2) w(:,i) = getBiegung(x(i),t); end % 3D PLOT BALKENBIEGUNG UND SCHWINGUNG figure; hold on; surf(t',x',w', 'LineStyle', 'none'); plot3(T,Y(:,1),W) view(30,45); xlim([0 100]); ylim([0 25]); hold off; end function dY = myRHS(t,Y) dY(1,1) = Y(2); dw = getBiegungAbleitung(Y(1),t); dY(2,1) = % HIER AUSFUELLEN end function w = getBiegung(x,t) const = evalin('base','const'); w = const.C(1)*cos(const.k*x); w = w + const.C(2)*sin(const.k*x); w = w + const.C(3)*cosh(const.k*x); w = w + const.C(4)*sinh(const.k*x); w = w*cos(const.Om*t); end function dw = getBiegungAbleitung(x,t) const = evalin('base','const'); dw = - const.C(1)*sin(const.k*x); dw = dw + const.C(2)*cos(const.k*x); dw = dw + const.C(3)*sinh(const.k*x); dw = dw + const.C(4)*cosh(const.k*x); dw = -const.k*dw*cos(const.Om*t); end