
% Oppgave 5.4, som oppgave 5.3, men tidsskrittlengden er halvert.

m = 0.2533;
k = 10.0;
zeta = 0.05;

omega_n = sqrt(k/m)
c = 2.0*m*omega_n*zeta

p_0 = 10;
t_d = 0.6;
omega = pi/t_d
t_tot = 5.0;
delta_t = 0.05;

ant_pkt = round(t_tot/delta_t) + 1

t = (0:delta_t:t_tot);
u = zeros(1,ant_pkt);


% Løsning av dynamisk likevektslikning vha differansemetoden (sentrert).
% t = 0 => u(1) = 0; initialbetingelse oppfylt fra kommandoene ovenfor
% t = delta_t => u(2) Spesialbehandling av denne (som vanlig når
% differansemetoden benyttes for denne typen problemer).
% Pga de aktuelle initialbetingelsene og lastfunksjonen oppnår vi her u(2) = 0;


% Løkke for beregning av løsningen

for i = 2:(ant_pkt-1)

  if t(i) > t_d
    load = 0;
  else
    load = p_0*sin(omega*t(i));
  end

  term1 = ((2*m/(delta_t*delta_t)) - k)*u(i)
  term2 = ((-m/(delta_t*delta_t)) + (c/(2*delta_t)))*u(i-1)
  fact1 = ((m/(delta_t*delta_t)) + c/(2*delta_t))

  u(i+1) = (term1 + term2 + load)/fact1;

end
  

% Plotting av løsningen
plot(t,u)
xlabel('tid')
ylabel('forskyvning')
title('Svingelikning med dempning og impulslast')
