1

与えられたベクトルからゼロ平均ベクトルを取得することがわかっているので、このベクトルの各メンバーから与えられたベクトルの平均を減算する必要があります。たとえば、次の例を見てみましょう

r=rand(1,6)

我々が得る

0.8687    0.0844    0.3998    0.2599    0.8001    0.4314

次の操作で別のベクトル s を作成しましょう

s=r-mean(r(:));

この後、私たちは得る

 0.3947   -0.3896   -0.0743   -0.2142    0.3260   -0.0426 

次の式でsの平均を計算すると

  mean(s)


ans =を得る

 -5.5511e-017 

実際、私が確認したように、この数は非常に小さいです

     -5.5511*exp(-017)

ans =

 -2.2981e-007

したがって、ベクトルの平均はゼロであると考える必要があります。つまり、0 からのわずかな偏差は、丸め誤差によるものです。たとえば、ホワイト ノイズなどの無作為な無相関のデータ シーケンスを作成する場合、実際にはすでに想定されています。 0から遠く離れたこのような小さなデータでも、平均はゼロであり、この場合、たとえばこの場合

  -5.5511e-017 =0 ?

ほぼ当然

4

2 に答える 2

1

実際には eps コマンドを参照できます。matlab は数値を精度までエンコードできる double を使用します2.2251e-308が、数値のサイズが決定されます。

形式で使用しeps(number)ます。最下位ビットの影響がどの程度大きいかがわかります。

私のマシンで。eps(0.3)返品5.5511e-17- 正確に報告した数。

于 2013-03-29T10:10:55.273 に答える
1

e-017 は 10 の -17 乗 (10^-17) を意味しますが、それでも数値は非常に小さく、仮説的には 0 です。

format long;

Matlab で使用される実際の精度が表示されます

于 2013-03-29T05:57:21.823 に答える