diff --git a/_site/atom.xml b/_site/atom.xml index 48c855c..bd82b6c 100644 --- a/_site/atom.xml +++ b/_site/atom.xml @@ -50,18 +50,16 @@
I find this mildly fascinating that such a straightforward definition of a random matrix can exhibit such non-random properties in their spectrum.
I ran a quick simulation, thanks to Julia’s great ecosystem for linear algebra and statistical distributions:
-using Distributions
-using LinearAlgebra
-using UnicodePlots
-
-function ginibre(n)
-d = Normal(0, sqrt(1/2n))
-reshape(rand(d, n^2), (n,n)) + im*reshape(rand(d, n^2), (n,n))
-end
+using LinearAlgebra
+using UnicodePlots
+
+function ginibre(n)
+ return randn((n, n)) * sqrt(1/2n) + im * randn((n, n)) * sqrt(1/2n)
+end
+
+v = eigvals(ginibre(2000))
-v = eigvals(ginibre(2000))
-
-scatterplot(real(v), imag(v), xlim=[-1.5,1.5], ylim=[-1.5,1.5])
+scatterplot(real(v), imag(v), xlim=[-1.5,1.5], ylim=[-1.5,1.5])
I like using UnicodePlots
for this kind of quick-and-dirty plots, directly in the terminal. Here is the output:
I find this mildly fascinating that such a straightforward definition of a random matrix can exhibit such non-random properties in their spectrum.
I ran a quick simulation, thanks to Julia’s great ecosystem for linear algebra and statistical distributions:
-using Distributions
-using LinearAlgebra
-using UnicodePlots
-
-function ginibre(n)
-d = Normal(0, sqrt(1/2n))
-reshape(rand(d, n^2), (n,n)) + im*reshape(rand(d, n^2), (n,n))
-end
+using LinearAlgebra
+using UnicodePlots
+
+function ginibre(n)
+ return randn((n, n)) * sqrt(1/2n) + im * randn((n, n)) * sqrt(1/2n)
+end
+
+v = eigvals(ginibre(2000))
-v = eigvals(ginibre(2000))
-
-scatterplot(real(v), imag(v), xlim=[-1.5,1.5], ylim=[-1.5,1.5])
+scatterplot(real(v), imag(v), xlim=[-1.5,1.5], ylim=[-1.5,1.5])
I like using UnicodePlots
for this kind of quick-and-dirty plots, directly in the terminal. Here is the output:
I find this mildly fascinating that such a straightforward definition of a random matrix can exhibit such non-random properties in their spectrum.
I ran a quick simulation, thanks to Julia’s great ecosystem for linear algebra and statistical distributions:
-using Distributions
-using LinearAlgebra
-using UnicodePlots
-
-function ginibre(n)
-d = Normal(0, sqrt(1/2n))
-reshape(rand(d, n^2), (n,n)) + im*reshape(rand(d, n^2), (n,n))
-end
+using LinearAlgebra
+using UnicodePlots
+
+function ginibre(n)
+ return randn((n, n)) * sqrt(1/2n) + im * randn((n, n)) * sqrt(1/2n)
+end
+
+v = eigvals(ginibre(2000))
-v = eigvals(ginibre(2000))
-
-scatterplot(real(v), imag(v), xlim=[-1.5,1.5], ylim=[-1.5,1.5])
+scatterplot(real(v), imag(v), xlim=[-1.5,1.5], ylim=[-1.5,1.5])
I like using UnicodePlots
for this kind of quick-and-dirty plots, directly in the terminal. Here is the output: