| 1234567891011121314151617181920212223242526272829 |
- -- Exercise 4.3
- -- George C. Privon
- -- 2023-12-22
- type R = Double
- type Derivative = (R -> R) -> R -> R
- -- a function to take the numerical derivative, approximated for some dt
- derivative :: R -> Derivative
- derivative dt x t = (x (t + dt/2) - x (t - dt/2)) / dt
- -- the function we want to take the derivative of
- myfunc :: R -> R
- myfunc x = x**4
- -- exact derivative of our function of interest
- dmyfunc :: R -> R
- dmyfunc x = 4 * x**3
- -- take the derivative with dt=1
- dOne :: R -> R
- dOne x = derivative 0.01 myfunc x
- -- compare the exact derivative with the numerical derivative using dt=1
- relabserr :: R -> R
- relabserr x = abs (dmyfunc x - dOne x) / dmyfunc x
- -- Solution
- -- The derivative of f(x) = x**4, evaluated at x=0.01 with dt=0.01 produces a
- -- relative error of 25%
|