1

次の行列のランダム分布が異なるプロットを生成する理由を知っている人はいますか? (これは、逆ウィシャート分布を使用してサンプリングされた 10x10 行列のセットから最初のセルの PDF のプロットを生成するコードです。驚くべきことに、逆行列を実行する方法によってプロットが異なります。正しいプロットはInverse[_] によって取得されるのはなぜですか?)

ベースコード:

   << MultivariateStatistics`;
   Module[{dist, p, k, data, samples, scale, graphics, distribution},
     p = 10;
     k = 13;
     samples = 500;
     dist = WishartDistribution[IdentityMatrix[p], k];
     (* a samples x p x p array *)
     data = Inverse[#] & /@ RandomVariate[dist, samples];
     (* distribution graphics *)
     distribution[i_, j_] := Module[{fiber, f, mean, rangeAll, colorHue},
       fiber = data[[All, i, j]];
       dist = SmoothKernelDistribution[fiber];
       f = PDF[dist];
       Plot[f[z], {z, -2, 2}, 
        PlotLabel -> ("Mean=" <> ToString[Mean[fiber]]), 
        PlotRange -> All]
       ];
     Grid @ Table[distribution[i, j], {i, 1, 3}, {j, 1, 5}]
     ]

コードバリアント: 上記、行を変更

data = Inverse[#] & /@ RandomVariate[dist, samples];

これで

data = #^(-1) & /@ RandomVariate[dist, samples];

プロットされた分布が異なることがわかります。

4

1 に答える 1

6

Inverse逆行列を計算します。つまり、aが正方行列の場合Inverse[a].a、単位行列になります。

a^(-1)と同じ1/aです。つまり、各行列要素の逆数が得られます。^演算子は要素ごとに力を与えます。行列パワーが必要な場合は、を使用しますMatrixPower

于 2012-04-10T07:42:43.817 に答える