20. Finite differences in Python#
import numpy as np
a = 1
anum = np.int32(1)
b = 0.1
bnum = np.float64(0.1)
c = [1, 2, 3]
cnum = np.array([1, 2, 3])
d = [1.1, 2, 3]
dnum = np.array([1.1, 2, 3])
poly_p = np.array([-4, 7, -3, 9])
p_der = np.polyder(poly_p)
p_der_eval = np.polyval(p_der, 0)
p_der_eval
np.int64(-3)
x_0 = 0
h = np.float64(0.25)
forward_difference = (np.polyval(poly_p, x_0 + h) - np.polyval(poly_p, x_0)) / h
forward_difference
np.float64(-1.5)
backward_difference = (np.polyval(poly_p, x_0) - np.polyval(poly_p, x_0 - h)) / h
backward_difference
np.float64(-5.0)
central_difference = (np.polyval(poly_p, x_0 + h) - np.polyval(poly_p, x_0 - h)) / (
2 * h
)
central_difference
np.float64(-3.25)