Skip to content
Permalink
Branch: master
Find file Copy path
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
52 lines (42 sloc) 1.32 KB
function [] = zentraldifferenz()
% Funktion Zentraldifferenz
function [dy] = D2f (func, x0, h)
dy = (func(x0 + h) - func(x0 - h)) / (2*h);
end
% Funktion optimales h berechnen für D2f
function [h] = hopt(f, f_df2, eps, x0)
h = nthroot(6*2^(-eps)*(abs(f(x0))/abs(f_df2(x0))), 3);
end
% Beispiel aus Serie 1 Aufgabe 2
% Geg: Funktion, Ableitung 1&3, x0
fn = @(x) log(x.^2);
df = @(x) 2/x;
df3 = @(x) 4/(x.^3);
x0 = 2;
% Ges:
% - Vorwärtsdifferenz und Diskretisierungsfehler für h-Werte 10^-1
% bis 10^-17
% - optimales h, D2f mit h_opt und Diskretisierungsfehler mit h_opt
res_d2f = [];
res_err_d2f = [];
eff = df(x0);
for i = 1:17
% Näherungswert berechnen für h = 10^-i
[dy] = D2f(fn, x0, 10^(-i));
% Diskretisierungsfehler berechnen
err = abs(dy - eff);
res_d2f(i) = dy;
res_err_d2f(i) = err;
end
h_opt = hopt(fn, df3, 52, x0);
fprintf("RESULTAT FÜR D2f\n");
res_d2f'
fprintf("DISKRETISIERUNGSFEHLER FÜR D2f\n");
res_err_d2f'
fprintf("OPTIMALES h FÜR D2F\n");
h_opt
fprintf("D2f MIT OPTIMALEM h\n");
dy = D2f(fn, x0, h_opt)
fprintf("DISKRETISIERUNGSFEHLER FÜR D2f MIT OPTIMALEM h\n");
eff = abs(dy - df(x0))
end
You can’t perform that action at this time.