WishartDistribution的Inverse [_]和(_)^( - 1)之间的mathematica差异

时间:2012-04-10 04:34:46

标签: wolfram-mathematica mathematica-8

有谁知道为什么下面的矩阵随机分布会产生不同的图? (这是为使用逆Wishart分布采样的一组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];

你会看到绘制的分布是不同的。

1 个答案:

答案 0 :(得分:6)

Inverse计算矩阵求逆,即如果a是方阵,则Inverse[a].a将是单位矩阵。

a^(-1)1/a相同,即它为您提供每个矩阵元素的倒数。 ^运算符以元素为单位提供幂。如果您想要矩阵功率,请使用MatrixPower