3 <meta http-equiv=
"Content-Type" content=
"text/html; charset=US-ASCII">
4 <title>Normal (Gaussian) Distribution
</title>
5 <link rel=
"stylesheet" href=
"../../../math.css" type=
"text/css">
6 <meta name=
"generator" content=
"DocBook XSL Stylesheets V1.77.1">
7 <link rel=
"home" href=
"../../../index.html" title=
"Math Toolkit 2.5.1">
8 <link rel=
"up" href=
"../dists.html" title=
"Distributions">
9 <link rel=
"prev" href=
"nc_t_dist.html" title=
"Noncentral T Distribution">
10 <link rel=
"next" href=
"pareto.html" title=
"Pareto Distribution">
12 <body bgcolor=
"white" text=
"black" link=
"#0000FF" vlink=
"#840084" alink=
"#0000FF">
13 <table cellpadding=
"2" width=
"100%"><tr>
14 <td valign=
"top"><img alt=
"Boost C++ Libraries" width=
"277" height=
"86" src=
"../../../../../../../boost.png"></td>
15 <td align=
"center"><a href=
"../../../../../../../index.html">Home
</a></td>
16 <td align=
"center"><a href=
"../../../../../../../libs/libraries.htm">Libraries
</a></td>
17 <td align=
"center"><a href=
"http://www.boost.org/users/people.html">People
</a></td>
18 <td align=
"center"><a href=
"http://www.boost.org/users/faq.html">FAQ
</a></td>
19 <td align=
"center"><a href=
"../../../../../../../more/index.htm">More
</a></td>
22 <div class=
"spirit-nav">
23 <a accesskey=
"p" href=
"nc_t_dist.html"><img src=
"../../../../../../../doc/src/images/prev.png" alt=
"Prev"></a><a accesskey=
"u" href=
"../dists.html"><img src=
"../../../../../../../doc/src/images/up.png" alt=
"Up"></a><a accesskey=
"h" href=
"../../../index.html"><img src=
"../../../../../../../doc/src/images/home.png" alt=
"Home"></a><a accesskey=
"n" href=
"pareto.html"><img src=
"../../../../../../../doc/src/images/next.png" alt=
"Next"></a>
26 <div class=
"titlepage"><div><div><h4 class=
"title">
27 <a name=
"math_toolkit.dist_ref.dists.normal_dist"></a><a class=
"link" href=
"normal_dist.html" title=
"Normal (Gaussian) Distribution">Normal (Gaussian)
29 </h4></div></div></div>
30 <pre class=
"programlisting"><span class=
"preprocessor">#include
</span> <span class=
"special"><</span><span class=
"identifier">boost
</span><span class=
"special">/
</span><span class=
"identifier">math
</span><span class=
"special">/
</span><span class=
"identifier">distributions
</span><span class=
"special">/
</span><span class=
"identifier">normal
</span><span class=
"special">.
</span><span class=
"identifier">hpp
</span><span class=
"special">></span></pre>
31 <pre class=
"programlisting"><span class=
"keyword">namespace
</span> <span class=
"identifier">boost
</span><span class=
"special">{
</span> <span class=
"keyword">namespace
</span> <span class=
"identifier">math
</span><span class=
"special">{
</span>
33 <span class=
"keyword">template
</span> <span class=
"special"><</span><span class=
"keyword">class
</span> <span class=
"identifier">RealType
</span> <span class=
"special">=
</span> <span class=
"keyword">double
</span><span class=
"special">,
</span>
34 <span class=
"keyword">class
</span> <a class=
"link" href=
"../../../policy.html" title=
"Chapter 15. Policies: Controlling Precision, Error Handling etc">Policy
</a> <span class=
"special">=
</span> <a class=
"link" href=
"../../pol_ref/pol_ref_ref.html" title=
"Policy Class Reference">policies::policy
<></a> <span class=
"special">></span>
35 <span class=
"keyword">class
</span> <span class=
"identifier">normal_distribution
</span><span class=
"special">;
</span>
37 <span class=
"keyword">typedef
</span> <span class=
"identifier">normal_distribution
</span><span class=
"special"><></span> <span class=
"identifier">normal
</span><span class=
"special">;
</span>
39 <span class=
"keyword">template
</span> <span class=
"special"><</span><span class=
"keyword">class
</span> <span class=
"identifier">RealType
</span><span class=
"special">,
</span> <span class=
"keyword">class
</span> <a class=
"link" href=
"../../../policy.html" title=
"Chapter 15. Policies: Controlling Precision, Error Handling etc">Policy
</a><span class=
"special">></span>
40 <span class=
"keyword">class
</span> <span class=
"identifier">normal_distribution
</span>
41 <span class=
"special">{
</span>
42 <span class=
"keyword">public
</span><span class=
"special">:
</span>
43 <span class=
"keyword">typedef
</span> <span class=
"identifier">RealType
</span> <span class=
"identifier">value_type
</span><span class=
"special">;
</span>
44 <span class=
"keyword">typedef
</span> <span class=
"identifier">Policy
</span> <span class=
"identifier">policy_type
</span><span class=
"special">;
</span>
45 <span class=
"comment">// Construct:
</span>
46 <span class=
"identifier">normal_distribution
</span><span class=
"special">(
</span><span class=
"identifier">RealType
</span> <span class=
"identifier">mean
</span> <span class=
"special">=
</span> <span class=
"number">0</span><span class=
"special">,
</span> <span class=
"identifier">RealType
</span> <span class=
"identifier">sd
</span> <span class=
"special">=
</span> <span class=
"number">1</span><span class=
"special">);
</span>
47 <span class=
"comment">// Accessors:
</span>
48 <span class=
"identifier">RealType
</span> <span class=
"identifier">mean
</span><span class=
"special">()
</span><span class=
"keyword">const
</span><span class=
"special">;
</span> <span class=
"comment">// location.
</span>
49 <span class=
"identifier">RealType
</span> <span class=
"identifier">standard_deviation
</span><span class=
"special">()
</span><span class=
"keyword">const
</span><span class=
"special">;
</span> <span class=
"comment">// scale.
</span>
50 <span class=
"comment">// Synonyms, provided to allow generic use of find_location and find_scale.
</span>
51 <span class=
"identifier">RealType
</span> <span class=
"identifier">location
</span><span class=
"special">()
</span><span class=
"keyword">const
</span><span class=
"special">;
</span>
52 <span class=
"identifier">RealType
</span> <span class=
"identifier">scale
</span><span class=
"special">()
</span><span class=
"keyword">const
</span><span class=
"special">;
</span>
53 <span class=
"special">};
</span>
55 <span class=
"special">}}
</span> <span class=
"comment">// namespaces
</span>
58 The normal distribution is probably the most well known statistical distribution:
59 it is also known as the Gaussian Distribution. A normal distribution with
60 mean zero and standard deviation one is known as the
<span class=
"emphasis"><em>Standard
61 Normal Distribution
</em></span>.
64 Given mean
μ  and standard deviation
σ  it has the PDF:
67   <span class=
"inlinemediaobject"><img src=
"../../../../equations/normal_ref1.svg"></span>
70 The variation the PDF with its parameters is illustrated in the following
74 <span class=
"inlinemediaobject"><img src=
"../../../../graphs/normal_pdf.svg" align=
"middle"></span>
77 The cumulative distribution function is given by
80   <span class=
"inlinemediaobject"><img src=
"../../../../equations/normal_cdf.svg"></span>
83 and illustrated by this graph
86 <span class=
"inlinemediaobject"><img src=
"../../../../graphs/normal_cdf.svg" align=
"middle"></span>
89 <a name=
"math_toolkit.dist_ref.dists.normal_dist.h0"></a>
90 <span class=
"phrase"><a name=
"math_toolkit.dist_ref.dists.normal_dist.member_functions"></a></span><a class=
"link" href=
"normal_dist.html#math_toolkit.dist_ref.dists.normal_dist.member_functions">Member
93 <pre class=
"programlisting"><span class=
"identifier">normal_distribution
</span><span class=
"special">(
</span><span class=
"identifier">RealType
</span> <span class=
"identifier">mean
</span> <span class=
"special">=
</span> <span class=
"number">0</span><span class=
"special">,
</span> <span class=
"identifier">RealType
</span> <span class=
"identifier">sd
</span> <span class=
"special">=
</span> <span class=
"number">1</span><span class=
"special">);
</span>
96 Constructs a normal distribution with mean
<span class=
"emphasis"><em>mean
</em></span> and
97 standard deviation
<span class=
"emphasis"><em>sd
</em></span>.
100 Requires sd
> 0, otherwise
<a class=
"link" href=
"../../error_handling.html#math_toolkit.error_handling.domain_error">domain_error
</a>
103 <pre class=
"programlisting"><span class=
"identifier">RealType
</span> <span class=
"identifier">mean
</span><span class=
"special">()
</span><span class=
"keyword">const
</span><span class=
"special">;
</span>
104 <span class=
"identifier">RealType
</span> <span class=
"identifier">location
</span><span class=
"special">()
</span><span class=
"keyword">const
</span><span class=
"special">;
</span>
107 both return the
<span class=
"emphasis"><em>mean
</em></span> of this distribution.
109 <pre class=
"programlisting"><span class=
"identifier">RealType
</span> <span class=
"identifier">standard_deviation
</span><span class=
"special">()
</span><span class=
"keyword">const
</span><span class=
"special">;
</span>
110 <span class=
"identifier">RealType
</span> <span class=
"identifier">scale
</span><span class=
"special">()
</span><span class=
"keyword">const
</span><span class=
"special">;
</span>
113 both return the
<span class=
"emphasis"><em>standard deviation
</em></span> of this distribution.
114 (Redundant location and scale function are provided to match other similar
115 distributions, allowing the functions find_location and find_scale to be
119 <a name=
"math_toolkit.dist_ref.dists.normal_dist.h1"></a>
120 <span class=
"phrase"><a name=
"math_toolkit.dist_ref.dists.normal_dist.non_member_accessors"></a></span><a class=
"link" href=
"normal_dist.html#math_toolkit.dist_ref.dists.normal_dist.non_member_accessors">Non-member
124 All the
<a class=
"link" href=
"../nmp.html" title=
"Non-Member Properties">usual non-member accessor
125 functions
</a> that are generic to all distributions are supported:
126 <a class=
"link" href=
"../nmp.html#math_toolkit.dist_ref.nmp.cdf">Cumulative Distribution Function
</a>,
127 <a class=
"link" href=
"../nmp.html#math_toolkit.dist_ref.nmp.pdf">Probability Density Function
</a>,
128 <a class=
"link" href=
"../nmp.html#math_toolkit.dist_ref.nmp.quantile">Quantile
</a>,
<a class=
"link" href=
"../nmp.html#math_toolkit.dist_ref.nmp.hazard">Hazard Function
</a>,
<a class=
"link" href=
"../nmp.html#math_toolkit.dist_ref.nmp.chf">Cumulative Hazard Function
</a>,
129 <a class=
"link" href=
"../nmp.html#math_toolkit.dist_ref.nmp.mean">mean
</a>,
<a class=
"link" href=
"../nmp.html#math_toolkit.dist_ref.nmp.median">median
</a>,
130 <a class=
"link" href=
"../nmp.html#math_toolkit.dist_ref.nmp.mode">mode
</a>,
<a class=
"link" href=
"../nmp.html#math_toolkit.dist_ref.nmp.variance">variance
</a>,
131 <a class=
"link" href=
"../nmp.html#math_toolkit.dist_ref.nmp.sd">standard deviation
</a>,
132 <a class=
"link" href=
"../nmp.html#math_toolkit.dist_ref.nmp.skewness">skewness
</a>,
<a class=
"link" href=
"../nmp.html#math_toolkit.dist_ref.nmp.kurtosis">kurtosis
</a>,
<a class=
"link" href=
"../nmp.html#math_toolkit.dist_ref.nmp.kurtosis_excess">kurtosis_excess
</a>,
133 <a class=
"link" href=
"../nmp.html#math_toolkit.dist_ref.nmp.range">range
</a> and
<a class=
"link" href=
"../nmp.html#math_toolkit.dist_ref.nmp.support">support
</a>.
136 The domain of the random variable is [-[max_value], +[min_value]]. However,
137 the pdf of +
∞ and -
∞ =
0 is also supported, and cdf at -
∞ =
0, cdf at +
∞ =
1, and
138 complement cdf -
∞ =
1 and +
∞ =
0, if RealType permits.
141 <a name=
"math_toolkit.dist_ref.dists.normal_dist.h2"></a>
142 <span class=
"phrase"><a name=
"math_toolkit.dist_ref.dists.normal_dist.accuracy"></a></span><a class=
"link" href=
"normal_dist.html#math_toolkit.dist_ref.dists.normal_dist.accuracy">Accuracy
</a>
145 The normal distribution is implemented in terms of the
<a class=
"link" href=
"../../sf_erf/error_function.html" title=
"Error Functions">error
146 function
</a>, and as such should have very low error rates.
149 <a name=
"math_toolkit.dist_ref.dists.normal_dist.h3"></a>
150 <span class=
"phrase"><a name=
"math_toolkit.dist_ref.dists.normal_dist.implementation"></a></span><a class=
"link" href=
"normal_dist.html#math_toolkit.dist_ref.dists.normal_dist.implementation">Implementation
</a>
153 In the following table
<span class=
"emphasis"><em>m
</em></span> is the mean of the distribution,
154 and
<span class=
"emphasis"><em>s
</em></span> is its standard deviation.
156 <div class=
"informaltable"><table class=
"table">
182 Using the relation: pdf = e
<sup>-(x-m)
<sup>2</sup>/(
2s
<sup>2</sup>)
</sup> / (s * sqrt(
2*pi))
194 Using the relation: p =
0.5 *
<a class=
"link" href=
"../../sf_erf/error_function.html" title=
"Error Functions">erfc
</a>(-(x-m)/(s*sqrt(
2)))
206 Using the relation: q =
0.5 *
<a class=
"link" href=
"../../sf_erf/error_function.html" title=
"Error Functions">erfc
</a>((x-m)/(s*sqrt(
2)))
218 Using the relation: x = m - s * sqrt(
2) *
<a class=
"link" href=
"../../sf_erf/error_inv.html" title=
"Error Function Inverses">erfc_inv
</a>(
2*p)
225 quantile from the complement
230 Using the relation: x = m + s * sqrt(
2) *
<a class=
"link" href=
"../../sf_erf/error_inv.html" title=
"Error Function Inverses">erfc_inv
</a>(
2*p)
237 mean and standard deviation
242 The same as
<code class=
"computeroutput"><span class=
"identifier">dist
</span><span class=
"special">.
</span><span class=
"identifier">mean
</span><span class=
"special">()
</span></code> and
<code class=
"computeroutput"><span class=
"identifier">dist
</span><span class=
"special">.
</span><span class=
"identifier">standard_deviation
</span><span class=
"special">()
</span></code>
254 The same as the mean.
266 The same as the mean.
309 <table xmlns:
rev=
"http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width=
"100%"><tr>
310 <td align=
"left"></td>
311 <td align=
"right"><div class=
"copyright-footer">Copyright
© 2006-
2010,
2012-
2014 Nikhar Agrawal,
312 Anton Bikineev, Paul A. Bristow, Marco Guazzone, Christopher Kormanyos, Hubert
313 Holin, Bruno Lalande, John Maddock, Jeremy Murphy, Johan R
åde, Gautam Sewani,
314 Benjamin Sobotta, Thijs van den Berg, Daryle Walker and Xiaogang Zhang
<p>
315 Distributed under the Boost Software License, Version
1.0. (See accompanying
316 file LICENSE_1_0.txt or copy at
<a href=
"http://www.boost.org/LICENSE_1_0.txt" target=
"_top">http://www.boost.org/LICENSE_1_0.txt
</a>)
321 <div class=
"spirit-nav">
322 <a accesskey=
"p" href=
"nc_t_dist.html"><img src=
"../../../../../../../doc/src/images/prev.png" alt=
"Prev"></a><a accesskey=
"u" href=
"../dists.html"><img src=
"../../../../../../../doc/src/images/up.png" alt=
"Up"></a><a accesskey=
"h" href=
"../../../index.html"><img src=
"../../../../../../../doc/src/images/home.png" alt=
"Home"></a><a accesskey=
"n" href=
"pareto.html"><img src=
"../../../../../../../doc/src/images/next.png" alt=
"Next"></a>