mirror of
				https://github.com/saitohirga/WSJT-X.git
				synced 2025-10-30 20:40:28 -04:00 
			
		
		
		
	
		
			
	
	
		
			120 lines
		
	
	
		
			4.5 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
		
		
			
		
	
	
			120 lines
		
	
	
		
			4.5 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
|  | [section:rayleigh Rayleigh Distribution] | ||
|  | 
 | ||
|  | 
 | ||
|  | ``#include <boost/math/distributions/rayleigh.hpp>`` | ||
|  | 
 | ||
|  |    namespace boost{ namespace math{ | ||
|  | 
 | ||
|  |    template <class RealType = double, | ||
|  |              class ``__Policy``   = ``__policy_class`` > | ||
|  |    class rayleigh_distribution; | ||
|  | 
 | ||
|  |    typedef rayleigh_distribution<> rayleigh; | ||
|  | 
 | ||
|  |    template <class RealType, class ``__Policy``> | ||
|  |    class rayleigh_distribution | ||
|  |    { | ||
|  |    public: | ||
|  |       typedef RealType value_type; | ||
|  |       typedef Policy   policy_type; | ||
|  |       // Construct: | ||
|  |       rayleigh_distribution(RealType sigma = 1) | ||
|  |       // Accessors: | ||
|  |       RealType sigma()const; | ||
|  |    }; | ||
|  | 
 | ||
|  |    }} // namespaces | ||
|  | 
 | ||
|  | The [@http://en.wikipedia.org/wiki/Rayleigh_distribution Rayleigh distribution] | ||
|  | is a continuous distribution with the | ||
|  | [@http://en.wikipedia.org/wiki/Probability_density_function probability density function]: | ||
|  | 
 | ||
|  | f(x; sigma) = x * exp(-x[super 2]/2 [sigma][super 2]) / [sigma][super 2] | ||
|  | 
 | ||
|  | For sigma parameter [sigma][space] > 0, and x > 0. | ||
|  | 
 | ||
|  | The Rayleigh distribution is often used where two orthogonal components | ||
|  | have an absolute value, | ||
|  | for example, wind velocity and direction may be combined to yield a wind speed, | ||
|  | or real and imaginary components may have absolute values that are Rayleigh distributed. | ||
|  | 
 | ||
|  | The following graph illustrates how the Probability density Function(pdf) varies with the shape parameter [sigma]: | ||
|  | 
 | ||
|  | [graph rayleigh_pdf] | ||
|  | 
 | ||
|  | and the Cumulative Distribution Function (cdf) | ||
|  | 
 | ||
|  | [graph rayleigh_cdf] | ||
|  | 
 | ||
|  | [h4 Related distributions] | ||
|  | 
 | ||
|  | The absolute value of two independent normal distributions X and Y, [radic] (X[super 2] + Y[super 2]) | ||
|  | is a Rayleigh distribution. | ||
|  | 
 | ||
|  | The [@http://en.wikipedia.org/wiki/Chi_distribution Chi], | ||
|  | [@http://en.wikipedia.org/wiki/Rice_distribution Rice] | ||
|  | and [@http://en.wikipedia.org/wiki/Weibull_distribution Weibull] distributions are generalizations of the | ||
|  | [@http://en.wikipedia.org/wiki/Rayleigh_distribution Rayleigh distribution]. | ||
|  | 
 | ||
|  | [h4 Member Functions] | ||
|  | 
 | ||
|  |    rayleigh_distribution(RealType sigma = 1); | ||
|  | 
 | ||
|  | Constructs a [@http://en.wikipedia.org/wiki/Rayleigh_distribution | ||
|  | Rayleigh distribution] with [sigma] /sigma/. | ||
|  | 
 | ||
|  | Requires that the [sigma] parameter is greater than zero, | ||
|  | otherwise calls __domain_error. | ||
|  | 
 | ||
|  |    RealType sigma()const; | ||
|  | 
 | ||
|  | Returns the /sigma/ 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, max_value\]. | ||
|  | 
 | ||
|  | [h4 Accuracy] | ||
|  | 
 | ||
|  | The Rayleigh distribution is implemented in terms of the | ||
|  | standard library `sqrt` and `exp` and as such should have very low error rates. | ||
|  | Some constants such as skewness and kurtosis were calculated using | ||
|  | NTL RR type with 150-bit accuracy, about 50 decimal digits. | ||
|  | 
 | ||
|  | [h4 Implementation] | ||
|  | 
 | ||
|  | In the following table [sigma][space] is the sigma parameter of the distribution, | ||
|  | /x/ is the random variate, /p/ is the probability and /q = 1-p/. | ||
|  | 
 | ||
|  | [table | ||
|  | [[Function][Implementation Notes]] | ||
|  | [[pdf][Using the relation: pdf = x * exp(-x[super 2])/2 [sigma][super 2] ]] | ||
|  | [[cdf][Using the relation: p = 1 - exp(-x[super 2]/2) [sigma][super 2][space] = -__expm1(-x[super 2]/2) [sigma][super 2]]] | ||
|  | [[cdf complement][Using the relation: q =  exp(-x[super 2]/ 2) * [sigma][super 2] ]] | ||
|  | [[quantile][Using the relation: x = sqrt(-2 * [sigma] [super 2]) * log(1 - p)) = sqrt(-2 * [sigma] [super 2]) * __log1p(-p))]] | ||
|  | [[quantile from the complement][Using the relation: x = sqrt(-2 * [sigma] [super 2]) * log(q)) ]] | ||
|  | [[mean][[sigma] * sqrt([pi]/2) ]] | ||
|  | [[variance][[sigma][super 2] * (4 - [pi]/2) ]] | ||
|  | [[mode][[sigma] ]] | ||
|  | [[skewness][Constant from [@http://mathworld.wolfram.com/RayleighDistribution.html Weisstein, Eric W. "Weibull Distribution." From MathWorld--A Wolfram Web Resource.] ]] | ||
|  | [[kurtosis][Constant from [@http://mathworld.wolfram.com/RayleighDistribution.html Weisstein, Eric W. "Weibull Distribution." From MathWorld--A Wolfram Web Resource.] ]] | ||
|  | [[kurtosis excess][Constant from [@http://mathworld.wolfram.com/RayleighDistribution.html Weisstein, Eric W. "Weibull Distribution." From MathWorld--A Wolfram Web Resource.] ]] | ||
|  | ] | ||
|  | 
 | ||
|  | [h4 References] | ||
|  | * [@http://en.wikipedia.org/wiki/Rayleigh_distribution ] | ||
|  | * [@http://mathworld.wolfram.com/RayleighDistribution.html Weisstein, Eric W. "Rayleigh Distribution." From MathWorld--A Wolfram Web Resource.] | ||
|  | 
 | ||
|  | [endsect] [/section:Rayleigh Rayleigh] | ||
|  | 
 | ||
|  | [/ | ||
|  |   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). | ||
|  | ] | ||
|  | 
 |