% ENM 6.4
% Denna kod skrevs på övningen 2017-10-05 i SF1545

close all; clear; clc

% Definiera funktion
f = @(x) 30./(1+x.^4+sqrt(1+x.^3));

% --------------------------
% a
% --------------------------

% x-intervall
xmin = 0;
xmax = 1;

% Approximera integral med trapetsregeln
h = 0.1;
x = (xmin:h:xmax)';
y = f(x);
Th = h/2*y(1) + sum(h*y(2:end-1)) + h/2*y(end)

% Halvera steglängd
h = h/2;
x = (xmin:h:xmax)';
y = f(x);
Th2 = h/2*y(1) + sum(h*y(2:end-1)) + h/2*y(end)

% Richardsonextrapolation
Rh = (4*Th2 - Th)/3

skillnad = abs(Rh-Th2)


%%
% --------------------------
% b
% --------------------------
clc

% Definiera funktion
f = @(x) 30./(1+x.^4+sqrt(1+x.^3));

% Övre gräns
A = ceil((10/0.5e-5)^(1/3))
% (A är nu valt så att integralen från A till oändligheten är mindre än 0.5*10^-5)

xmin = 0;
xmax = A;
h = 0.01;
x = (xmin:h:xmax)';
y = f(x);

% Approximera integral I1
Th = h/2*y(1) + sum(h*y(2:end-1)) + h/2*y(end)

% Halvera stegländ
h = h/2;
x = (xmin:h:xmax)';
y = f(x);
Th2 = h/2*y(1) + sum(h*y(2:end-1)) + h/2*y(end)

skillnad = abs(Th2-Th)

% Räkna ut I2 med integral
I2 = integral(f,A,inf)
