MATLABで分散を逐次計算しようとしてうまくいかなかった。
分散の逐次計算は
\begin{align}
\sigma_{n+1}^2=\dfrac{n(\sigma_n^2+\mu_n^2)+x_{n+1}^2}{n+1}-\mu_{n+1}^2
\end{align}
で求まる。
以下コード
N=2000;
x=normrnd(0,1,1,N);
mu=zeros(1,N);
sigma=zeros(1,N);
mu(1,1)=x(1,1);
for n=1:1:N-1
mu(1,n+1)=(n*mu(1,n)+x(1,n+1))/(n+1);
sigma(1,n+1)=(n*(sigma(1,n)^2+mu(1,n)^2)+x(1,n+1)^2)/(n+1)-mu(1,n+1)^2;
end
figure
plot(mu);
hold on
plot(sigma);
コメント