The Lehmer mean of a tuple of positive real numbers is defined as:
The Weighted Lehmer mean with respect to a tuple of positive weights is defined as:
The Lehmer mean is an alternative to power means
for interpolating between minimum and maximum via arithmetic mean and harmonic mean.
The derivative of is non-negative
thus this function is monotonic and the inequality
- is the minimum of the elements of .
- is the harmonic mean.
- is the geometric mean.
- is the arithmetic mean.
- is the contraharmonic mean.
- is the maximum of the elements of .
- Sketch of a proof: Let be the values which equal the maximum. Then
Like a power mean,
a Lehmer mean serves a non-linear moving average
which is shifted towards small signal values for small
and emphasizes big signal values for big .
Given an efficient implementation of a moving arithmetic mean
called smooth you can implement a moving Lehmer mean
according to the following Haskell code.
lehmerSmooth :: Floating a => ([a] -> [a]) -> a -> [a] -> [a]
lehmerSmooth smooth p xs =
(smooth (map (**p) xs))
(smooth (map (**(p-1)) xs))