mirror of
				https://github.com/saitohirga/WSJT-X.git
				synced 2025-10-29 20:10:28 -04: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). | ||
|  | ] | ||
|  | 
 |