TU Wien:Computernumerik VU (Schranz-Kirlinger)/Übungen SS16/Beispiel 31
Zur Navigation springen
Zur Suche springen
Lösung[Bearbeiten | Quelltext bearbeiten]
b)[Bearbeiten | Quelltext bearbeiten]
Matlab Code
function Bsp1
%l = log(1 + x);
figure;
[ERROR, DEGREE] = approx(-1/2, 21);
semilogy(DEGREE, ERROR);
hold on
[ERROR, DEGREE] = approx(-1/4, 21);
semilogy(DEGREE, ERROR);
[ERROR, DEGREE] = approx(-1/8, 21);
semilogy(DEGREE, ERROR);
[ERROR, DEGREE] = approx(-1/12, 21);
semilogy(DEGREE, ERROR);
[ERROR, DEGREE] = approx(-1/100, 21);
semilogy(DEGREE, ERROR);
[ERROR, DEGREE] = approx(0.6, 21);
semilogy(DEGREE, ERROR);
legend('-1/2', '-1/4', '-1/8', '-1/12', '-1/100', '0.6');
hold off
figure;
[ERROR, DEGREE] = approx(-1/2, 50);
semilogy(DEGREE, ERROR);
hold on
[ERROR, DEGREE] = approx(-1/4, 50);
semilogy(DEGREE, ERROR);
[ERROR, DEGREE] = approx(-1/8, 50);
semilogy(DEGREE, ERROR);
[ERROR, DEGREE] = approx(-1/12, 50);
semilogy(DEGREE, ERROR);
[ERROR, DEGREE] = approx(-1/100, 50);
semilogy(DEGREE, ERROR);
[ERROR, DEGREE] = approx(1, 50);
semilogy(DEGREE, ERROR);
legend('-1/2', '-1/4', '-1/8', '-1/12', '-1/100', '1');
hold off
end
function [ERROR, DEGREE] = approx(x, n)
ERROR = [];
DEGREE = [];
sumV = 0;
for i = 1:n
sng = (-1)^(i - 1);
value = sng * ((1/i) * x^i);
sumV = sumV + value;
ERROR = cat(1, ERROR, abs(sumV - log(1 + x)));
DEGREE = cat(1, DEGREE, i);
end
end