| [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.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.special.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 it's 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). |
| ] |
| |