%TFY4106 Fysikk høsten 2014.
%Øving 3, oppgave 2: Numerisk bestemmelse av
%vinkler for fire like masser som henger med jevne
%mellomrom på ei snor.
%
clear all;
format long;
%N = max antall iterasjoner
N = 100;
%L = snoras lengde
L = 1.0;
%D = lengden mellom festepunktene
D = 0.9;
%Vi har utledet en ligning for x = cos(alpha):
%(L/5)*(1+2x+4x/sqrt(1+3x^2))=D.
%Denne ligningen kan omformes til en 4.gradsligning i x,
%og på sett og vis løses analytisk (se Rottmann). Men løsningen
%blir stygg og gir lite innsikt. Derfor vil vi løse problemet numerisk.
%En mulighet (det finnes flere!) er da å omforme ligningen til
%formen x = f(x), sette inn en startverdi
%x0 på høyre side, regne ut f(x0) og sette x1 = f(x0), deretter
%regne ut f(x1) og sette x2 = f(x1) osv. Hvis dette "iterative
%skjemaet" konvergerer, vil vi etter N iterasjoner med god tilnærmelse
%ha xN = x(N-1), som er løsningen.
%Setter startverdi for x: x0 = 0.5;
x0 = 0.5;
%Setter startverdi for feilen lik 1.0 slik at while-løkken garantert starter
error = 1.0;
%Setter max tillatt feil i x lik 1e-6
maxerror = 1e-6;
j = 0;
while (error > maxerror && j < N)
    x1 = .....;
    error = abs(x1-x0);
    x0 = x1;
    j = j+1;
end;
%Gi  beskjed dersom vi har brukt opp max antall iterasjoner
%uten at feilen har blitt mindre enn maxerror
if j == N;
    fprintf('Max antall iterasjoner brukt opp.\n');
else
    fprintf('Vinkelen alpha er %3.12f',acos(x0)*180/pi);
    fprintf(' grader.\n');
end;
alpha = acos(x0);
%Du kan nå bestemme vinkelen beta, samt de 3 snordragene (i enheter av mg).
