mirror of
https://github.com/saitohirga/WSJT-X.git
synced 2024-11-17 17:42:02 -05:00
120 lines
4.0 KiB
Plaintext
120 lines
4.0 KiB
Plaintext
[section:lognormal_dist Log Normal Distribution]
|
|
|
|
``#include <boost/math/distributions/lognormal.hpp>``
|
|
|
|
namespace boost{ namespace math{
|
|
|
|
template <class RealType = double,
|
|
class ``__Policy`` = ``__policy_class`` >
|
|
class lognormal_distribution;
|
|
|
|
typedef lognormal_distribution<> lognormal;
|
|
|
|
template <class RealType, class ``__Policy``>
|
|
class lognormal_distribution
|
|
{
|
|
public:
|
|
typedef RealType value_type;
|
|
typedef Policy policy_type;
|
|
// Construct:
|
|
lognormal_distribution(RealType location = 0, RealType scale = 1);
|
|
// Accessors:
|
|
RealType location()const;
|
|
RealType scale()const;
|
|
};
|
|
|
|
}} // namespaces
|
|
|
|
The lognormal distribution is the distribution that arises
|
|
when the logarithm of the random variable is normally distributed.
|
|
A lognormal distribution results when the variable is the product
|
|
of a large number of independent, identically-distributed variables.
|
|
|
|
For location and scale parameters /m/ and /s/ it is defined by the
|
|
probability density function:
|
|
|
|
[equation lognormal_ref]
|
|
|
|
The location and scale parameters are equivalent to the mean and
|
|
standard deviation of the logarithm of the random variable.
|
|
|
|
The following graph illustrates the effect of the location
|
|
parameter on the PDF, note that the range of the random
|
|
variable remains \[0,+[infin]\] irrespective of the value of the
|
|
location parameter:
|
|
|
|
[graph lognormal_pdf1]
|
|
|
|
The next graph illustrates the effect of the scale parameter on the PDF:
|
|
|
|
[graph lognormal_pdf2]
|
|
|
|
[h4 Member Functions]
|
|
|
|
lognormal_distribution(RealType location = 0, RealType scale = 1);
|
|
|
|
Constructs a lognormal distribution with location /location/ and
|
|
scale /scale/.
|
|
|
|
The location parameter is the same as the mean of the logarithm of the
|
|
random variate.
|
|
|
|
The scale parameter is the same as the standard deviation of the
|
|
logarithm of the random variate.
|
|
|
|
Requires that the scale parameter is greater than zero, otherwise calls
|
|
__domain_error.
|
|
|
|
RealType location()const;
|
|
|
|
Returns the /location/ parameter of this distribution.
|
|
|
|
RealType scale()const;
|
|
|
|
Returns the /scale/ parameter of this distribution.
|
|
|
|
[h4 Non-member Accessors]
|
|
|
|
All the [link math_toolkit.dist_ref.nmp usual non-member accessor functions] that are generic to all
|
|
distributions are supported: __usual_accessors.
|
|
|
|
The domain of the random variable is \[0,+[infin]\].
|
|
|
|
[h4 Accuracy]
|
|
|
|
The lognormal distribution is implemented in terms of the
|
|
standard library log and exp functions, plus the
|
|
[link math_toolkit.sf_erf.error_function error function],
|
|
and as such should have very low error rates.
|
|
|
|
[h4 Implementation]
|
|
|
|
In the following table /m/ is the location parameter of the distribution,
|
|
/s/ is its scale parameter, /x/ is the random variate, /p/ is the probability
|
|
and /q = 1-p/.
|
|
|
|
[table
|
|
[[Function][Implementation Notes]]
|
|
[[pdf][Using the relation: pdf = e[super -(ln(x) - m)[super 2 ] \/ 2s[super 2 ] ] \/ (x * s * sqrt(2pi)) ]]
|
|
[[cdf][Using the relation: p = cdf(normal_distribtion<RealType>(m, s), log(x)) ]]
|
|
[[cdf complement][Using the relation: q = cdf(complement(normal_distribtion<RealType>(m, s), log(x))) ]]
|
|
[[quantile][Using the relation: x = exp(quantile(normal_distribtion<RealType>(m, s), p))]]
|
|
[[quantile from the complement][Using the relation: x = exp(quantile(complement(normal_distribtion<RealType>(m, s), q)))]]
|
|
[[mean][e[super m + s[super 2 ] / 2 ] ]]
|
|
[[variance][(e[super s[super 2] ] - 1) * e[super 2m + s[super 2 ] ] ]]
|
|
[[mode][e[super m - s[super 2 ] ] ]]
|
|
[[skewness][sqrt(e[super s[super 2] ] - 1) * (2 + e[super s[super 2] ]) ]]
|
|
[[kurtosis][e[super 4s[super 2] ] + 2e[super 3s[super 2] ] + 3e[super 2s[super 2] ] - 3]]
|
|
[[kurtosis excess][e[super 4s[super 2] ] + 2e[super 3s[super 2] ] + 3e[super 2s[super 2] ] - 6 ]]
|
|
]
|
|
|
|
[endsect][/section:normal_dist Normal]
|
|
|
|
[/
|
|
Copyright 2006 John Maddock and Paul A. Bristow.
|
|
Distributed under the Boost Software License, Version 1.0.
|
|
(See accompanying file LICENSE_1_0.txt or copy at
|
|
http://www.boost.org/LICENSE_1_0.txt).
|
|
]
|
|
|