2012-04-10 3 views
1

Weiß jemand, warum die folgenden zufälligen Verteilungen von Matrizen unterschiedliche Plots generieren? (Dies ist ein Code zum Erzeugen eines Plots der PDFs für erste Zellen aus einem Satz von 10 × 10 Matrizen, die unter Verwendung einer inversen Wishart-Verteilung abgetastet wurden; erstaunlicherweise sind die Plots unterschiedlich, abhängig von der Art, wie die Matrix umgekehrt wird) und es scheinen die richtigen Plots zu sein durch Inverse erhalten [_], warum)Unterschied in Mathematica zwischen Inverse [_] und (_)^(- 1) für WishartDistribution

Basiscode:

<< 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}] 
    ] 

Codevariante: oben, ändern Linie

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

dieses

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

und Sie werden sehen, die geplotteten Verteilungen sind unterschiedlich.

Antwort

6

Inverse berechnet eine inverse Matrix, das heißt, wenn a eine quadratische Matrix ist, dann wird Inverse[a].a die Identitätsmatrix ist.

a^(-1) ist das gleiche wie 1/a, d. H. Es gibt Ihnen den Kehrwert jedes Matrixelements. Der Operator ^ gibt Elemente elementweise an. Wenn Sie eine Matrix-Stromversorgung wünschen, verwenden Sie MatrixPower.

+0

das erklärt es! Danke @Szabolcs – carlosayam