誰かが互いに独立してとして分布する2つのガウスランダムベクトルの余弦の2次モーメント(またはモーメント生成関数全体)を計算する方法を誰かが提案できますか?IE、次の確率変数の瞬間
最も近い質問は、内積の MGFを導出する2つのガウスランダムベクトルの内積のモーメント生成関数です。この質問をサンプルの共分散行列の固有値の分布にリンクするmathoverflowからのこの回答もありますが、それらを使用して2次モーメントを計算する方法はすぐにはわかりません。
私は2次元の代数的操作と、推測とチェックから3次元の結果を得るので、2次モーメントは\ Sigmaの固有値の半分のノルムに比例してスケーリングすると思います。固有値合計が1になると、二次モーメントは次のようになります。
数値チェックに以下を使用
val1[a_, b_, c_] := (a + b + c)/(Sqrt[a] + Sqrt[b] + Sqrt[c])^2
val2[a_, b_, c_] := Block[{},
x := {x1, x2, x3};
y := {y1, y2, y3};
normal := MultinormalDistribution[{0, 0, 0}, ( {
{a, 0, 0},
{0, b, 0},
{0, 0, c}
} )];
vars := {x \[Distributed] normal, y \[Distributed] normal};
NExpectation[(x.y/(Norm[x] Norm[y]))^2, vars]]
val1[1.5,2.5,3.5] - val2[1.5,2.5,3.5]
4つの変数の数式を確認します(数値範囲内):
val1[a_, b_, c_,
d_] := (a + b + c + d)/(Sqrt[a] + Sqrt[b] + Sqrt[c] + Sqrt[d])^2
val2[a_, b_, c_, d_] := Block[{},
x := {x1, x2, x3, x4};
y := {y1, y2, y3, y4};
normal :=
MultinormalDistribution[{0, 0, 0,
0}, {{a, 0, 0, 0}, {0, b, 0, 0}, {0, 0, c, 0}, {0, 0, 0, d}}];
vars := {x \[Distributed] normal, y \[Distributed] normal};
NExpectation[(x.y/(Norm[x] Norm[y]))^2, vars]]
val1[0.5, 1.5, 2.5, 3.5] - val2[0.5, 1.5, 2.5, 3.5]