% ENM 2.11
% Denna kod skrevs på övningen 2017-09-28 i SF1545

clear

% Parametervärden och felgränser
a = 2.533;
b = 0.543;
Ea = 1e-3;
Eb = 2e-3;

% Ostörda värden
x = newton(a,b)
% Störningsräkning
Ex = abs(newton(a+Ea,b) - x) + abs(newton(a,b+Eb) - x)


% Funktion för Newtons metod. Vi sätter toleransen till ett
% väldigt litet värde för att själva felet från Newtons metod ska
% vara försumbart.
function x = newton(a,b)
  f = @(x) exp(-a*x.^2) - log(x+b);
  fp = @(x) exp(-a*x.^2).*(-2*a*x) - 1./(x+b);
  tol = 1e-15;
  dx = Inf; % infinity (stort tal)
  x = 1; % startgissning
  fplot(f,[0,10]) % ritar funktionen på intervallet [0,10]
  while abs(dx) >= tol
    dx = -f(x)/fp(x);
    x = x + dx;
  end
end
