% Av Erik Dalsryd 2017-10-11
clear all, close all, clc

for  m = 0:3     % Halverar stegl�ngden tre g�nger
    N = 4 * 2^m     % Antal delintervall
    n = N-1;  % Antal inre punkter
    h = (2-1)/N;   % Stegl�ngd f�r x
    x = [1+h:h:2-h]';   % x inre punkter
    k = 2 - 2*x + x.^2;     % k(x) = 2 - 2x + x^2    f�r 1<x<2
    
    % Skapa A-matrisen
    dSub = 2 + h*k(2:end);     % Subdiagonalen
    d       = (2*h^2 - 4) * ones(n, 1);   % Diagonalen
    dSup = 2 - h*k(1:end-1);     % Superdiagonalen
    Afull = diag(dSub, -1) + diag(d, 0) + diag(dSup, 1);   % Skapa A
    A = sparse(Afull);     % G�r A till sparse
    
    b = zeros (n, 1);     % Skapa h�gerledet
    b(end) = h*k(end) - 2;   % Korrigera pga y(2)=1
    
    y = A\b;   % Ber�kna y
    
    Y = [0 ; y ; 1];   % L�gg till x=1 och x=2
    X = [1 ; x ; 2];   % L�gg till y(1)=0 och y(2)=1
    plot (X, Y)
    hold on
end
xlabel ('x'), ylabel ('y')