function PI = aufg17(iterat, error)

% function[PI] = aufg17(iterat, error)
% 
% Die naeherungsweise Berechnung von PI.
% iterat = Anzahl Iterationen, und 
% error = Approximationsfehler.
% Die Berechnung soll solange laufen, bis der in Abhaengigkeit der 
% Bedingungen optimale Wert erreicht wird.

PI = [];

if ((iterat <= 0) & (error <= 0))
    error('Falsche Parameter!!');        
    return;
end

if ((error <= 0) | (iterat <= 0) | (iterat ~= round(iterat)))
    warning('Mindest einer der Parameter macht keinen Sinn!');
    iterat = abs(round(iterat))
    error = abs(error)
end

n = 1;
s = 1/(((2*n-1)*(2*n+1))^2);
local_err = abs(pi-sqrt(16*s+8));

while ((local_err >= error) | (n < iterat))
    n = n + 1;
    s = s + 1/(((2*n-1)*(2*n+1))^2);
    local_err = abs(pi-sqrt(16*s+8));    
end
PI = sqrt(16*s+8);
