In[]:=
CompoundExpression[
]
​​deploy
Sat 25 Nov 2023 18:49:14
- random-matrix-moments colab​
​
In[]:=
d=1000;​​getNorm[n_]:=​​x:=RandomVariate[NormalDistribution[0,
-1/2
d
],{d,d}];​​Cn=Nest[x.#&,x,n-1];​​
2
Norm[Cn.Cn,"Frobenius"]
​​;​​TableForm[Table[{n,getNorm[n],getNorm[n],getNorm[n],getNorm[n]},{n,1,5}],TableHeadings->{{},{"n","sample1","sample2","sample3","sample4"}}]
Out[]//TableForm=
n
sample1
sample2
sample3
sample4
1
2003.99
1998.66
1999.51
1998.14
2
3029.97
2990.12
3008.21
2999.13
3
3967.81
3995.46
4022.33
4005.2
4
5027.41
5075.39
4941.94
5057.4
5
6143.21
5964.35
5844.76
6015.08

Moments

​

Comparing XX’XX’ vs XXX’X’

In[]:=
n=40;​​numTrials=10;​​maxMoment=5;​​sq[mat_]:=mat.mat;​​​​randMat:=RandomVariate[NormalDistribution[],{n,n}]
n
;​​sq[mat_]:=mat.mat;​​method1:=With[{X=randMat},X.X.X.X];​​method2:=With[{X=randMat},X.X.X.X];​​​​method1f:=With[{X=randMat,Y=randMat},X.X.Y.X];​​method2f:=With[{X=randMat,Y=randMat},X.X.Y.X];​​​​(*momentofamatrix*)​​moment[mat_,s_]:=Tr[MatrixPower[mat,s]]/n;​​(*Estimatessmoment*)​​momentEstimate[s_,method_]:=If[s==0,0,Mean@Table[moment[method,s],{numTrials}]];​​momentsXY=Table[momentEstimate[s,sq@randMat],{s,1,maxMoment+1}];​​momentsXYXY=Table[momentEstimate[s,method1],{s,0,maxMoment}];​​momentsXXYY=Table[momentEstimate[s,method2],{s,0,maxMoment}];​​​​momentsXYXYf=Table[momentEstimate[s,method1f],{s,0,maxMoment}];​​momentsXXYYf=Table[momentEstimate[s,method2f],{s,0,maxMoment}];​​​​TableForm[{momentsXY,momentsXYXY,momentsXXYY,momentsXYXYf,momentsXXYYf},TableHeadings->{{"s=1","s=2","s=3"},{"XY","XYXY","XXYY","fXYXY","fXXYY"}}]
Out[]//TableForm=
XY
XYXY
XXYY
fXYXY
fXXYY
s=1
0.97476
0
0
0
0
s=2
1.98833
2.13488
0.999894
-0.0203797
-0.0203088
s=3
4.87907
14.1091
3.00952
0.168681
0.0596858
15.19
276.574
11.4956
-0.557789
0.0810549
53.1827
1190.91
60.2259
1.24756
0.211215
102.676
23461.2
276.462
7.67704
0.122226
In[]:=
momentsXXYYf
Out[]=
0,
1
40
Tr[
⋯1⋯
],
1
40
Tr[MatrixPower[
⋯1⋯
,2]],
1
40
Tr[MatrixPower[
⋯1⋯
,3]],
1
40
Tr[MatrixPower[
⋯1⋯
,4]],
1
40
Tr[MatrixPower[
⋯1⋯
,5]]
Full expression not available
(
original memory size:
136.1 kB)