% Lös EXS 2.2 med Newtons metod. Av Erik Dalsryd 2017-09-14
clear all, close all, clc

x        = 1e-7;      % Startgissning

dx      = 1;           % Newtons felskattning. Initialvärde för while-loopen
dxVek = [];          % Lagrar dx
TOL   = 0.5e-10;  % Tolerans
while   abs(dx/x) > TOL                    % Relativt fel < TOL
    f  = exs22Funk (x);                       % Funktionsvärde
    fp = x^-0.9 - 1 + sin(x) + exp(-x);   % Derivera f
    dx = f / fp;                                   % Newtons felskattning
    x  = x - dx;                                   % Uppdatera x
    dxVek = [dxVek ; dx];                   % Lagra dx
end
Rot = x                                            % Skriv ut roten
linjKonv    = dxVek(2:end) ./ dxVek(1:end-1).^1   % Linjär konvergens?
kvadKonv = dxVek(2:end) ./ dxVek(1:end-1).^2   % Kvadratisk konvergens?
kubKonv   = dxVek(2:end) ./ dxVek(1:end-1).^3   % Kubisk konvergens?

% Rita funktionen för 0<x<30
x = [0:0.2:30]';
f = exs22Funk(x);
plot(x, f)
grid on