% ------------------------
% Unter und Obersumme
% für die Bogenlänge eines
% Parabelbogens y = a*x^2, a > 0
% 18.09.12
% HeSe 2012/2013
% --------------

format long

eps = 5*1e-5;           % Toleranz
x0 = input('x0 = ')
a  = input('a = ')      % Parameter der Parabel
%n  = input('n = ')      % Anzahl pommes frites

x_u = 0;                % untere Grenze
x_o = x0;               % obere Grenze

g = inline('sqrt(1 + 4*a*a*x*x)')
g = vectorize(g)

n = ceil((x_o - x_u)/eps*(g(a,x_o) - g(a,x_u)))
tic
deltax = (x_o - x_u)/n;
x = x_u:deltax:x_o;
y = g(a,x);


U_n = deltax*(sum(y) - y(n+1))
O_n = deltax*(sum(y) - y(1))
toc

absF = O_n - U_n

% braucht für diesen loop
% extrem lange!!

tic
sum1 = 0.0;
sum2 = 0.0;
for k = 1:n
    sum1 = sum1 + g(a,(k-1)*deltax);
    sum2 = sum2 + g(a,k*deltax);
end

n
U_n = deltax*sum1
O_n = deltax*sum2
absF2 = O_n - U_n
toc