%
% Kopf für jeden Übungszettel
%
ZETTEL = '1';
AUFGABE = '3a';

fprintf('\n\n###\tNumerik I SS 2010\t\t###\n###\tZettel %s, Aufgabe %s', ZETTEL, AUFGABE);
fprintf('\t\t###\n###\t\t\t\t\t###\n###\tvon\tFelix Nyenhuis\t\t###\n');
fprintf('###\t\tLouisa Marie Puls\t###\n###\t\tReidar Janssen\t\t###\n\n');
%
%
%

% "Start"-Werte
limes = (pi^2) / 6;
last = 30;
v = zeros(1, last);
r = zeros(1, last);

% Schleife für j von 1 bis 30
for j = 1:last
    n = 2^j; % Grenzwert der Partialsumme
    for i = 1:n % Berechnung der Partialsumme ...
        r(j) = r(j) + 1 / ((n - i + 1)^2);  % ... rückwärts
        v(j) = v(j) + 1 / (i^2);            % ... und vorwärts
    end
    % Zwischenausgabe der Werte
    fprintf('j = %2d ... v = %2.15f\n           r = %2.15f\n', j, v(j), r(j));
end

% Ausgabe des analytischen Grenzwertes
fprintf('Ziel:          %2.15f\n\n', limes);

% Absolutbeträge der Abweichung im Array speichern
absv = abs(v - limes); absr = abs(r - limes);


figure(1); % Figur 1
subplot(2, 1, 1); % oberer Plot auf dieser Figur
    k = 1:last; % Skalierung x-Achse
    plot(k, absv, 'b-', k, absr, 'm-');
    legend('Vorwaertssummation', 'Rueckwaertssummation');
    title('Abweichung vom analytischen Grenzwert (in Abh. von j)');
    xlabel('Index j');
    ylabel('Abweichung');

subplot(2, 1, 2); % unterer Plot auf dieser Figur
    k = 25:last; % Skalierung x-Achse (nur ab 25 hier)
    plot(k, absv(25:last), 'b-', k, absr(25:last), 'm-');
    legend('Vorwaertssummation', 'Rueckwaertssummation');
    title('Abweichung vom analytischen Grenzwert ab j = 25');
    xlabel('Index j');
    ylabel('Abweichung');

    
figure(2); % Zweite Figur
subplot(2, 1, 1); % oberer Plot
    k = zeros(1, last); % Skalierung der x-Achse ...
    for j = 1:last
        k(j) = j^2;     % ... nach n, also 2^j
    end;
    semilogy(k, absv, 'b-', k, absr, 'm-');
    legend('Vorwaertssummation', 'Rueckwaertssummation');
    title('Abweichung vom analytischen Grenzwert (in Abh. von n)');
    xlabel('Partialsummengrenze n');
    ylabel('Abweichung');
subplot(2, 1, 2); % unterer Plot
    % wir nehmen selbes k als Skalierung wie oben
    loglog(k, absv, 'b-', k, absr, 'm-'); % Beide Achsen log. skaliert
    legend('Vorwaertssummation', 'Rueckwaertssummation');
    title('Abweichung vom analytischen Grenzwert (in Abh. von n)');
    xlabel('Partialsummengrenze n');
    ylabel('Abweichung');

    
% Ende :)
clear all;
