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