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

clear
clc
close all

x = linspace(0,pi,100);
t = linspace(0,10,1000);
u = zeros(1,100);
y = zeros(1,100); % y er u(x,0) = 0
% Plotter u(x,t) for 1000 ulike t-verdier:
for i = 1:1000
    u = 1/(25*pi)*sin(t(i))*sin(x);
    % Legger til så mange ledd som vil (f.eks. opp til n=31):
    for n = 3:2:31 % Hopper over n like, fordi B_n = 0 for n like
        if mod((n-1),4) == 0 % Hvis n = 5,9,13,... er fortegn = -1
            fortegn = -1;
        else % Hvis n = 3,7,11,... er fortegn = 1
            fortegn = 1;
        end
        u = u + fortegn * 1/(25*pi*n^2)*sin(n*t(i))*sin(n*x);
    end
    plot(x,u,'b',x,y,'r:')
    xlabel('x')
    ylabel('u(x,t)')
    title('Bølger på en streng')
    axis([0 pi -0.03 0.03])
    if i==1
        pause(1)
    end
    pause(0.01)
end