# This program is needed in Problem 7.5 Interpret output from a program. from math import sin, cos, pi def f(x): return sin(x) def df_approx(f, x, delta_x): print(delta_x, f(x+delta_x)- f(x)) return (f(x+delta_x)-f(x))/delta_x #return (f(x+delta_x)-f(x-delta_x))/(2*delta_x) x = pi/3 for n in range(1, 20): delta_x = 10**(-n) calculated = df_approx(f, x, delta_x) exact = cos(x) rel_err = abs(calculated - exact)/abs(exact) abs_err = abs(calculated - exact) print("delta_x: %e, df_approx: %13.10e, df_exact: %13.10e, abs_error: %e, \ rel_error: %e, n=%d" % (delta_x, calculated, exact, abs_err, rel_err, n))