pub fn second_derivative<G, T: DualNum<F>, F, O: Mappable<Dual2<T, F>>>(
g: G,
x: T,
) -> O::Output<(T, T, T)>
Expand description
Calculate the second derivative of a univariate function.
let (f, df, d2f) = second_derivative(|x| x.powi(2), 5.0);
assert_eq!(f, 25.0); // x²
assert_eq!(df, 10.0); // 2x
assert_eq!(d2f, 2.0); // 2
The argument can also be a dual number.
let x = Dual64::new(5.0, 1.0);
let (f, df, d2f) = second_derivative(|x| x.powi(3), x);
assert_eq!(f.re, 125.0); // x³
assert_eq!(f.eps, 75.0); // 3x²
assert_eq!(df.re, 75.0); // 3x²
assert_eq!(df.eps, 30.0); // 6x
assert_eq!(d2f.re, 30.0); // 6x
assert_eq!(d2f.eps, 6.0); // 6