\(a_n=\)seq.value[n], \(N=\)seq.sizeとおく。
この\(a_n\) (\(n=0,1,2,\cdots,N-1\))
の分散\(\sigma^2\)を計算すれば良く、
定義式は以下の通りである。
\[\begin{equation}
\sigma^2=\frac{1}{N}\sum_{n=0}^{N-1} (a_n-\mu)^2
\label{eq.sigma2.definition}
\end{equation}\]
\[\begin{equation}
\mu=\frac{1}{N}\sum_{n=0}^{N-1} a_n
\label{eq.mu.definition}
\end{equation}\]
(\ref{eq.mu.definition})式を用いると(\ref{eq.sigma2.definition})式は
以下のように変形できる。
\[\begin{eqnarray}
\sigma^2
&=& \frac{1}{N} \sum_{n=0}^{N-1} (a_n^2 - 2\mu a_n + \mu^2) \nonumber \\
&=& \frac{1}{N} \sum_{n=0}^{N-1} a_n^2
-2\mu \frac{1}{N} \sum_{n=0}^{N-1} a_n
+\mu^2 \frac{1}{N} \sum_{n=0}^{N-1} 1 \nonumber \\
&=& \frac{1}{N} \sum_{n=0}^{N-1} a_n^2 -2\mu^2 + \mu^2 \nonumber \\
&=& \frac{1}{N} \sum_{n=0}^{N-1} a_n^2 -\mu^2
\label{eq.sigma2.arrange1}
\end{eqnarray}\]
この\(\mu\)は関数sequence_average (sequence/statistics.h)によって計算でき、
\[\begin{equation}
\frac{1}{N}\sum_{n=0}^{N-1} a_n^2
\label{eq.an2.summation}
\end{equation}\]
は関数sequence_power2_average (sequence/statistics.h)によって計算できる。
したがって、関数sequence_averageの戻り値を\(a\)、
sequence_power2_averageの戻り値を\(a_2\)とおけば、
分散は
\[\begin{equation}
\sigma^2=a_2-a^2
\label{eq.sigma2.final}
\end{equation}\]
によって計算できる。
この関数ではこの方法により分散を計算する。
Let us introduce notations \(a_n=\)seq.value[n]
and \(N=\)seq.size.
Then the quantity required is the dispersion \(\sigma^2\)
for this \(a_n\) (\(n=0,1,2,\cdots,N-1\)),
which is defined by eqs. (\ref{eq.sigma2.definition})
and (\ref{eq.mu.definition}).
Using eq. (\ref{eq.mu.definition}),
eq. (\ref{eq.sigma2.definition}) can be arranged as (\ref{eq.sigma2.arrange1}).
The value of \(\mu\) and the quantity defined by eq. (\ref{eq.an2.summation})
can be computed by functions sequence_average
and sequence_power2_average
(both in sequence/statistics.h), respectively.
Then the dispersion can be computed by eq. (\ref{eq.sigma2.final}),
where \(a\) and \(a_2\) are the return values of functions
sequence_average and sequence_power2_average, respectively.
This function calculates the dispersion by this approach.