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