car*_*yam 1 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}]
]
Run Code Online (Sandbox Code Playgroud)
代码变体:上面,更改行
data = Inverse[#] & /@ RandomVariate[dist, samples];
Run Code Online (Sandbox Code Playgroud)
这样
data = #^(-1) & /@ RandomVariate[dist, samples];
Run Code Online (Sandbox Code Playgroud)
你会看到绘制的分布是不同的.
Inverse计算矩阵逆,即if a是方阵,Inverse[a].a则将是单位矩阵.
a^(-1)是相同的1/a,即它给出了每个矩阵元素的倒数.该^经营者给权力逐元素.如果您想要矩阵电源,请使用MatrixPower.