Michael Scholz 0fe686245c CE update
2013-02-20 16:20:56 +01:00

35 lines
1.1 KiB
Matlab
Executable File

function diffplot(fun, jac, x)
%
%
% [f, J] = diffplot(fun, jac, x) plots difference between symbolic
% differentiation and approximation by finite differences
%
% INPUT
% fun function handle; fun: R^n -> R^n
% jac function handle; jac: R^n -> R^(mxn)
% x point x in R^n to evaluate f and jacobian
%
% leere arrays für die ergebnisse erstellen.
y_werte = zeros(19);
x_werte = zeros(19);
for i=0:18
% x-achse 'befüllen'
x_werte(i+1) = i;
% delta berechnen
delta = 10^(-i);
% Approximierte Jacobi-Matrix berechnen
% f wird nicht benutzt und kann daher durch ~ ersetzt werden
[~, j_appr] = numdiff(fun, x, delta);
% Abweichungen der Matrizen berechnen und
% in den zugehörigen y-index speichern
y_werte(i+1) = norm(j_appr - jac(x));
end
%Graph plotten
plot(x_werte, y_werte);
title('Abweichungen zwischen approximierter und exakter Jacobi-Matrix durch unterschiedliche Deltawerte');
ylabel('Abweichung der Matrizen')
xlabel('Delta angegeben durch i (delta = 10^-^i)');
end % function diffplot