Hyper Dual (the title is in Portuguese) numbers are another kind of numbers that can help with many things, including first and second derivatives of a real function.
I think it was introduced by Fike and Alonso for some wing and aerodynamic things. Reading some others papers (you can find it, later i will add them to end of this readme), it’s not exactly the more efficient way to calculate first and second orders derivatives, but that’s fine.
The objective of this library is to provide some support for these numbers and some basic functions for common use.
If you are reading this you should at least heard about the complex numbers. It’s similar, it’s some number with special properties that we can use to achieve (very specific in this case) some objective. For complex numbers we have the imaginary number, that is defined as follows:
\[i = \sqrt -1 \iff i^2 = -1\]
The hyper dual numbers takes some of these ideias (after a looong path) and extended it. We can define the hyper dual number \(x\) as:
\[x ∈ \mathbb{HD} = x_0 + x_1ε_1 + x_2ε_2 + x_3ε_1ε_2\]
and:
\[ε_1^2 = ε_2^2 = 0\] \[ε_1 ≠ ε_2 ≠ 0\] \[ε_1ε_2 = ε_2ε_1 ≠ 0\]
And the even more cool part is that we write some function \(f\) we get it’s first and second derivatives for “free”:
\[f(x + h_1ε_1 + h_2ε_2 + h_3ε_1ε_2) = f(x) + h_1f’(x)ε_1 + h_2f’(x)ε_2 + h_3f”(x)ε_1ε_2\]
And that’s it, cool right? Some details you can find in the References section.