In[]:=
(*deployswithcanonicalname*)​​deploy:=Module[{notebookFn,parentDir,cloudFn,result},​​Print[DateString[]];​​notebookFn=FileNameSplit[NotebookFileName[]][[-1]];​​parentDir=FileNameSplit[NotebookFileName[]][[-2]];​​cloudFn=parentDir~StringJoin~"/"~StringJoin~notebookFn;​​result=CloudDeploy[SelectedNotebook[],CloudObject[cloudFn],Permissions"Public",SourceLinkNone];​​Print["Uploading to ",cloudFn];​​result​​];​​deploy
Thu 2 Mar 2023 16:47:12

Eigenvalue decay for semi-circle law

Background on semi-circle law https://math.stackexchange.com/a/4187243/998
In[]:=
d=1000;​​eigs=Reverse@Sort@Abs@Eigenvalues@N@AdjacencyMatrix@RandomGraph@BernoulliGraphDistribution[d,0.5];​​eigs=Rest[eigs];(*Firsteigenvalueisoutlier*)​​eigs=eigs/First[eigs];(*Normalizetohavefirsteigenvalueat1*)​​xvals=Range[0,1-2/d,1/d];(*remapfrom0..dtoto0..1range*)​​observed=ListPlot[{xvals,eigs},PlotStyle->Directive[Opacity[.2],Red],PlotLegends->{"observed"}];​​​​Assuming[{0<y<1},icdf[y_]=InverseCDF[WignerSemicircleDistribution[1],y]//Refine];​​g[x_]=icdf[(1-x/2)];(*reversesort,map0.5->1rangeto0..1*)​​Print["Predicted law: ",g[x_]];​​​​predicted=Plot[g[x],{x,0,1},FillingAxis,PlotRangeAll,PlotStyle->Black,PlotLegends{"predicted"}];​​Show[observed,predicted]​​​​harmonic=1/(2x+1);​​LogPlot[{g[x],harmonic},{x,0,.9},FillingAxis,PlotRangeAll,PlotLegends->{"semicircle",harmonic},PlotLabel->"Harmonic approximation of spectrum"]​​​​
Predicted law: -1+2InverseBetaRegularized1-
x_
2
,
3
2
,
3
2

Out[]=
observed
predicted
Out[]=
semicircle
1
2x+1