% Plott/animasjon av løsningen i oppgave 12.3.11, Kreyszig utgave 10
% Merk at koden ikke er verdens mest effektive.
%%

clear
clc
close all

k = 0.01;
x = linspace(0,1,100);
t = linspace(0,10,1000);
u = zeros(1,100);
y = zeros(1,100); % y er u(x,0)
for i = 26:50
    y(i) = x(i)-0.25;
end
for i = 51:75
    y(i) = 0.75-x(i);
end
% Plotter u(x,t) for 1000 ulike t-verdier:
for i = 1:1000
    u = 2/pi^2 * (2-sqrt(2))*cos(pi*t(i))*sin(pi*x);
    % Legger til så mange ledd som vil (f.eks. opp til n=41):
    for n = 3:2:41 % Hopper over n like, fordi B_n = 0 for n like
        u = u + 2/(n^2*pi^2) * (2*sin(n*pi/2)-2*sin(n*pi/4))*cos(n*pi*t(i))*sin(n*pi*x);
    end
    plot(x,u,'b',x,y,'r:')
    xlabel('x')
    ylabel('u(x,t)')
    title('Bølger på en streng')
    axis([0 1 -0.5 0.5])
    if i==1
        pause(1.0)
    end
    pause(0.01)
end