\(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-\mu)^* (a_n-\mu) \nonumber \\
&=& \frac{1}{N} \sum_{n=0}^{N-1}
(a_n^* a_n - \mu^* a_n -\mu a_n^* + \mu^* \mu) \nonumber \\
&=& \frac{1}{N} \sum_{n=0}^{N-1} a_n^* a_n
- \mu^* \frac{1}{N} \sum_{n=0}^{N-1} a_n
- \mu \frac{1}{N} \sum_{n=0}^{N-1} a_n^*
+ \mu^* \mu \frac{1}{N} \sum_{n=0}^{N-1} 1 \nonumber \\
&=& \frac{1}{N} \sum_{n=0}^{N-1} a_n^* a_n
- \mu^* \mu - \mu \mu^* + \mu^* \mu \nonumber \\
&=& \frac{1}{N} \sum_{n=0}^{N-1} |a_n|^2 -|\mu|^2
\label{eq.sigma2.arrange1}
\end{eqnarray}\]
この\(\mu\)は関数imsequence_average (sequence/statistics.h)によって計算でき、
\[\begin{equation}
\frac{1}{N}\sum_{n=0}^{N-1} |a_n|^2
\label{eq.an2.summation}
\end{equation}\]
は関数imsequence_power2_average (sequence/statistics.h)によって計算できる。
したがって、関数imsequence_averageの戻り値を\(a\)、
imsequence_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 imsequence_average
and imsequence_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
imsequence_average and imsequence_power2_average, respectively.
This function calculates the dispersion by this approach.