├── README.md ├── articles └── mdp.39015086582122.pdf ├── book └── Chapter 1 -- Three Important Distributions.ipynb └── notebooks ├── AutoDiff-Jacobians ├── eig derivative.ipynb ├── gsvd derivative.ipynb └── svd derivative.ipynb ├── FreeProb.ipynb ├── HW1 Notebook.ipynb ├── Jack polynomials ├── compute_power.m ├── jackpowersum.m └── upperlowermatrix6.mat ├── Nonlinear RMT for DNN.ipynb ├── OutlierEigenvalues.ipynb ├── RSK.ipynb ├── SemiCircleLaw.ipynb └── Spiked Model Demo.ipynb /README.md: -------------------------------------------------------------------------------- 1 | # 18.338-Eigenvalues-of-Random-Matrices 2 | 3 | ## Course Description: 4 | 5 | We focus on the mathematics of random matrices - from the finite to the infinite, and beyond. 6 | 7 | Our emphasis will be on interplay between the varying mathematical tools that have come to play in the modern understanding of random matrix theory. We will also discuss applications of random matrix techniques to problems in engineering and science. 8 | 9 | Additional topics will be decided based on the interests of the students. No particular prerequisites are needed though a proficiency in linear algebra and basic probability will be assumed. A familiary with numerical computing languages such as Julia, MATLAB, or Mathematica may be useful .... our primary focus will be Julia and some Mathematica. 10 | 11 | This is a graduate course that is intended to be flexible so as to cover the backgrounds of different students. Generally grading will be based on satisfactory completion of problem sets and projects or equivalents. 12 | 13 | -------------------------------------------------------------------------------- /articles/mdp.39015086582122.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alanedelman/18.338-Eigenvalues-of-Random-Matrices/6870a17910b9d8713adc5e6f64c664e36441e674/articles/mdp.39015086582122.pdf -------------------------------------------------------------------------------- /book/Chapter 1 -- Three Important Distributions.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "markdown", 5 | "metadata": {}, 6 | "source": [ 7 | "## Plot of the Bell Curve" 8 | ] 9 | }, 10 | { 11 | "cell_type": "code", 12 | "execution_count": 54, 13 | "metadata": {}, 14 | "outputs": [ 15 | { 16 | "data": { 17 | "text/plain": [ 18 | "Plots.GRBackend()" 19 | ] 20 | }, 21 | "execution_count": 54, 22 | "metadata": {}, 23 | "output_type": "execute_result" 24 | } 25 | ], 26 | "source": [ 27 | "using Interact\n", 28 | "using Plots\n", 29 | "gr()" 30 | ] 31 | }, 32 | { 33 | "cell_type": "code", 34 | "execution_count": 57, 35 | "metadata": {}, 36 | "outputs": [ 37 | { 38 | "data": { 39 | "text/html": [ 40 | "\n", 41 | "\n", 42 | "\n", 43 | " \n", 44 | " \n", 45 | " \n", 46 | "\n", 47 | "\n", 50 | "\n", 51 | " \n", 52 | " \n", 53 | " \n", 54 | "\n", 55 | "\n", 58 | "\n", 59 | " \n", 60 | " \n", 61 | " \n", 62 | "\n", 63 | "\n", 66 | "\n", 69 | "\n", 72 | "\n", 75 | "\n", 78 | "\n", 81 | "\n", 84 | "\n", 87 | "\n", 90 | "\n", 93 | "\n", 96 | "\n", 99 | "\n", 102 | "\n", 105 | "\n", 108 | "\n", 111 | "\n", 114 | "\n", 117 | "\n", 120 | "\n", 123 | "\n", 124 | "-4\n", 125 | "\n", 126 | "\n", 127 | "-2\n", 128 | "\n", 129 | "\n", 130 | "0\n", 131 | "\n", 132 | "\n", 133 | "2\n", 134 | "\n", 135 | "\n", 136 | "4\n", 137 | "\n", 138 | "\n", 139 | "0.0\n", 140 | "\n", 141 | "\n", 142 | "0.1\n", 143 | "\n", 144 | "\n", 145 | "0.2\n", 146 | "\n", 147 | "\n", 148 | "0.3\n", 149 | "\n", 150 | "\n", 151 | "Bell Curve: #Trials=100000, \n", 152 | "\n", 153 | "\n", 156 | "\n", 159 | "\n", 162 | "\n", 165 | "\n", 168 | "\n", 171 | "\n", 174 | "\n", 177 | "\n", 180 | "\n", 183 | "\n", 186 | "\n", 189 | "\n", 192 | "\n", 195 | "\n", 198 | "\n", 201 | "\n", 204 | "\n", 207 | "\n", 210 | "\n", 213 | "\n", 216 | "\n", 219 | "\n", 222 | "\n", 225 | "\n", 228 | "\n", 231 | "\n", 234 | "\n", 237 | "\n", 240 | "\n", 243 | "\n", 246 | "\n", 249 | "\n", 252 | "\n", 255 | "\n", 258 | "\n", 261 | "\n", 264 | "\n", 267 | "\n", 270 | "\n", 273 | "\n", 276 | "\n", 279 | "\n", 282 | "\n", 285 | "\n", 288 | "\n", 291 | "\n", 294 | "\n", 297 | "\n", 300 | "\n", 303 | "\n", 306 | "\n", 309 | "\n", 312 | "\n", 315 | "\n", 318 | "\n", 321 | "\n", 324 | "\n", 327 | "\n", 330 | "\n", 333 | "\n", 336 | "\n", 339 | "\n", 342 | "\n", 345 | "\n", 348 | "\n", 351 | "\n", 354 | "\n", 357 | "\n", 360 | "\n", 363 | "\n", 366 | "\n", 369 | "\n", 372 | "\n", 375 | "\n", 378 | "\n", 381 | "\n", 384 | "\n", 387 | "\n", 390 | "\n", 393 | "\n", 396 | "\n", 399 | "\n", 402 | "\n", 405 | "\n", 408 | "\n", 411 | "\n", 414 | "\n", 417 | "\n", 424 | "\n", 427 | "\n", 430 | "\n", 433 | "\n", 436 | "\n", 437 | "experiment: histogram of randn\n", 438 | "\n", 439 | "\n", 442 | "\n", 443 | "theory: exp(-x^2/2) / √(2?)\n", 444 | "\n", 445 | "\n" 446 | ] 447 | }, 448 | "execution_count": 57, 449 | "metadata": {}, 450 | "output_type": "execute_result" 451 | } 452 | ], 453 | "source": [ 454 | "# Code 1.1\n", 455 | "\n", 456 | "# Experiment : Generate random samples from the normal distribution\n", 457 | "# Plot : Histogram of random samples\n", 458 | "# Theory : The normal distribution curve\n", 459 | "\n", 460 | "## Experiment\n", 461 | "t = 100000 # trials\n", 462 | "dx = .2 # binsize\n", 463 | "v = randn(t) # samples\n", 464 | "\n", 465 | "## Plot Histogram\n", 466 | "\n", 467 | "#histogram(v, bins = -4:dx:4, normed = true, color=\"yellow\", labels=\"experiment: histogram of randn\")\n", 468 | "histogram(v, nbins = 50, normed = true, color=\"yellow\", labels=\"experiment: histogram of randn\")\n", 469 | "\n", 470 | "## Theory\n", 471 | "plot!(x -> exp(-x^2/2)/√(2*π), \n", 472 | " linewidth = 2, \n", 473 | " color = \"blue\", \n", 474 | " xlim = (-4,4),\n", 475 | " labels=\"theory: exp(-x^2/2) / √(2π)\",\n", 476 | " title = \"Bell Curve: #Trials=$t, \")\n" 477 | ] 478 | }, 479 | { 480 | "cell_type": "code", 481 | "execution_count": 60, 482 | "metadata": {}, 483 | "outputs": [ 484 | { 485 | "data": { 486 | "text/html": [ 487 | "\n", 488 | "\n", 489 | "\n", 490 | " \n", 491 | " \n", 492 | " \n", 493 | "\n", 494 | "\n", 497 | "\n", 498 | " \n", 499 | " \n", 500 | " \n", 501 | "\n", 502 | "\n", 505 | "\n", 506 | " \n", 507 | " \n", 508 | " \n", 509 | "\n", 510 | "\n", 513 | "\n", 516 | "\n", 519 | "\n", 522 | "\n", 525 | "\n", 528 | "\n", 531 | "\n", 534 | "\n", 537 | "\n", 540 | "\n", 543 | "\n", 546 | "\n", 549 | "\n", 552 | "\n", 555 | "\n", 558 | "\n", 561 | "\n", 564 | "\n", 567 | "\n", 570 | "\n", 571 | "-2\n", 572 | "\n", 573 | "\n", 574 | "-1\n", 575 | "\n", 576 | "\n", 577 | "0\n", 578 | "\n", 579 | "\n", 580 | "1\n", 581 | "\n", 582 | "\n", 583 | "2\n", 584 | "\n", 585 | "\n", 586 | "0.0\n", 587 | "\n", 588 | "\n", 589 | "0.1\n", 590 | "\n", 591 | "\n", 592 | "0.2\n", 593 | "\n", 594 | "\n", 595 | "0.3\n", 596 | "\n", 597 | "\n", 598 | "Semi-Circle Law\n", 599 | "\n", 600 | "\n", 603 | "\n", 606 | "\n", 609 | "\n", 612 | "\n", 615 | "\n", 618 | "\n", 621 | "\n", 624 | "\n", 627 | "\n", 630 | "\n", 633 | "\n", 636 | "\n", 639 | "\n", 642 | "\n", 645 | "\n", 648 | "\n", 651 | "\n", 654 | "\n", 657 | "\n", 660 | "\n", 663 | "\n", 666 | "\n", 669 | "\n", 672 | "\n", 675 | "\n", 678 | "\n", 681 | "\n", 684 | "\n", 687 | "\n", 690 | "\n", 693 | "\n", 696 | "\n", 699 | "\n", 702 | "\n", 705 | "\n", 708 | "\n", 711 | "\n", 714 | "\n", 717 | "\n", 720 | "\n", 723 | "\n", 726 | "\n", 729 | "\n", 732 | "\n", 735 | "\n", 738 | "\n", 741 | "\n", 744 | "\n", 747 | "\n", 750 | "\n", 753 | "\n", 756 | "\n", 759 | "\n", 762 | "\n", 765 | "\n", 768 | "\n", 771 | "\n", 774 | "\n", 777 | "\n", 780 | "\n", 783 | "\n", 786 | "\n", 789 | "\n", 792 | "\n", 795 | "\n", 798 | "\n", 801 | "\n", 804 | "\n", 807 | "\n", 810 | "\n", 813 | "\n", 816 | "\n", 819 | "\n", 822 | "\n", 825 | "\n", 828 | "\n", 831 | "\n", 834 | "\n", 837 | "\n", 840 | "\n", 848 | "\n" 849 | ] 850 | }, 851 | "execution_count": 60, 852 | "metadata": {}, 853 | "output_type": "execute_result" 854 | } 855 | ], 856 | "source": [ 857 | "#semicircle.jl\n", 858 | "#Algorithm 1.2 of Random Eigenvalues by Alan Edelman\n", 859 | "\n", 860 | "#Experiment: Sample random symmetric Gaussian matrices\n", 861 | "#Plot: Histogram of the eigenvalues\n", 862 | "#Theory: Semicircle as n->infinity\n", 863 | "\n", 864 | "\n", 865 | "## Parameters\n", 866 | "n = 1000\n", 867 | "t = 1\n", 868 | "\n", 869 | "\n", 870 | "## Experiment\n", 871 | "vals = Float64[] # initialize result vector\n", 872 | "for i = 1:t\n", 873 | " A = randn(n, n) # draw n by n matrix with idependent gaussians\n", 874 | " S = (A + A')/2 # symmetrize matrix\n", 875 | " vals = append!(vals, eigvals(S)) # calculate eigenvalues and append to result vector\n", 876 | "end\n", 877 | "\n", 878 | "\n", 879 | "\n", 880 | "\n", 881 | "\n", 882 | "vals /= √(n/2) # scale eigenvalues\n", 883 | "\n", 884 | "xlim(-3, 3) # set limits for x axis in plot\n", 885 | "gr()\n", 886 | "histogram(vals, nbins=50, normed = true, color=\"yellow\", label=\"\") # make histogram\n", 887 | "xvals = linspace(-2, 2)\n", 888 | "plot!(xvals, sqrt.(4 - xvals.^2)/(2*π),color=\"blue\",linewidth = 2.0, title=\"Semi-Circle Law\", label=\"\") # plot semi circle" 889 | ] 890 | }, 891 | { 892 | "cell_type": "code", 893 | "execution_count": null, 894 | "metadata": { 895 | "collapsed": true 896 | }, 897 | "outputs": [], 898 | "source": [] 899 | } 900 | ], 901 | "metadata": { 902 | "kernelspec": { 903 | "display_name": "Julia 0.6.0", 904 | "language": "julia", 905 | "name": "julia-0.6" 906 | }, 907 | "language_info": { 908 | "file_extension": ".jl", 909 | "mimetype": "application/julia", 910 | "name": "julia", 911 | "version": "0.6.0" 912 | } 913 | }, 914 | "nbformat": 4, 915 | "nbformat_minor": 2 916 | } 917 | -------------------------------------------------------------------------------- /notebooks/AutoDiff-Jacobians/eig derivative.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "code", 5 | "execution_count": 5, 6 | "metadata": {}, 7 | "outputs": [], 8 | "source": [ 9 | "using LinearAlgebra, ForwardDiff" 10 | ] 11 | }, 12 | { 13 | "cell_type": "markdown", 14 | "metadata": {}, 15 | "source": [ 16 | "## Symmetric Eigenvalue Problem -- Hermite Ensembles\n", 17 | "$$ dA = \\prod_{i LinearAlgebra.EigenSelfAdjoint.eig(Hermitian(t, :L))[i], A) for i=1:2)\n", 40 | "dΛ,dQ = dΛ[:,lower],dQ[:,lower];" 41 | ] 42 | }, 43 | { 44 | "cell_type": "code", 45 | "execution_count": 17, 46 | "metadata": {}, 47 | "outputs": [], 48 | "source": [ 49 | "sublower = vec((tril(ones(n,n),-1))) .==1\n", 50 | "QᵀdQ = (kron(eye(A),Q')*dQ)[sublower,:];" 51 | ] 52 | }, 53 | { 54 | "cell_type": "code", 55 | "execution_count": 18, 56 | "metadata": {}, 57 | "outputs": [ 58 | { 59 | "data": { 60 | "text/plain": [ 61 | "(34.181104996022825, 34.18110499602615)" 62 | ] 63 | }, 64 | "execution_count": 18, 65 | "metadata": {}, 66 | "output_type": "execute_result" 67 | } 68 | ], 69 | "source": [ 70 | "# Experiment vs Theory\n", 71 | "1/abs(det([dΛ;QᵀdQ])),abs(prod([Λ[i]-Λ[j] for i=1:n, j=1:n if i gsvd(x,m₁)[i], AB) for i=1:4) \n", 70 | " U, σ, V = svd(A*pinv(B),thin=false)\n", 71 | " θ = acot.(σ[1:n]) \n", 72 | " Uk = kron(eye(n), U') * JU \n", 73 | " Vk = kron(eye(n), V') * JV \n", 74 | " rowsU = vec((tril(ones(m₁,n),-1))) .==1\n", 75 | " rowsV = vec((tril(ones(m₂,n),-1))) .==1 \n", 76 | " Uk = Uk[rowsU, :]; Vk = Vk[rowsV, :] \n", 77 | " 1/abs(det( [Jθ;JH;Uk;Vk] )) \n", 78 | "end" 79 | ] 80 | }, 81 | { 82 | "cell_type": "code", 83 | "execution_count": 11, 84 | "metadata": {}, 85 | "outputs": [ 86 | { 87 | "data": { 88 | "text/plain": [ 89 | "(96730.56500019798, 96730.56500019884)" 90 | ] 91 | }, 92 | "execution_count": 11, 93 | "metadata": {}, 94 | "output_type": "execute_result" 95 | } 96 | ], 97 | "source": [ 98 | "m₁,m₂,n = 5,4,4\n", 99 | "A = randn(m₁,n); B = randn(m₂,n)\n", 100 | "U,V,θ,H = gsvd([A;B],size(A,1))\n", 101 | "c = cos.(θ); s = sin.(θ)\n", 102 | "gsvd_auto(A,B), # Experiment (theory below)\n", 103 | "abs(det(H)^(m₁+m₂-n) * prod([c[i]^2-c[j]^2 for i=1:n, j=1:n if i svd(x)[i], A) for i=1:3) \n", 66 | " HᵀdU = kron(eye(V), H') * dU \n", 67 | " VᵀdV = kron(eye(V), V') * dV \n", 68 | " rowsU = vec((tril(ones(A),-1))) .==1\n", 69 | " rowsV = vec((tril(ones(V),-1))) .==1 \n", 70 | " HᵀdU = HᵀdU[rowsU, :]; VᵀdV = VᵀdV[rowsV, :] \n", 71 | " 1/abs(det( [dσ; HᵀdU; VᵀdV] )) \n", 72 | "end" 73 | ] 74 | }, 75 | { 76 | "cell_type": "code", 77 | "execution_count": 6, 78 | "metadata": {}, 79 | "outputs": [ 80 | { 81 | "data": { 82 | "text/plain": [ 83 | "(149824.04262999113, 149824.04262999224)" 84 | ] 85 | }, 86 | "execution_count": 6, 87 | "metadata": {}, 88 | "output_type": "execute_result" 89 | } 90 | ], 91 | "source": [ 92 | "# Experiment vs Theory (m≥n)\n", 93 | "A = randn(6,4)\n", 94 | "svd_auto(A), svd_theory(A)" 95 | ] 96 | } 97 | ], 98 | "metadata": { 99 | "kernelspec": { 100 | "display_name": "Julia 0.6.0", 101 | "language": "julia", 102 | "name": "julia-0.6" 103 | }, 104 | "language_info": { 105 | "file_extension": ".jl", 106 | "mimetype": "application/julia", 107 | "name": "julia", 108 | "version": "0.6.0" 109 | } 110 | }, 111 | "nbformat": 4, 112 | "nbformat_minor": 1 113 | } 114 | -------------------------------------------------------------------------------- /notebooks/Jack polynomials/compute_power.m: -------------------------------------------------------------------------------- 1 | function Po = compute_power(B) 2 | %% This function return the P_\kappa(B) in power sum basis 3 | p = @(A, k) trace(A^k); 4 | for i = 1:6, 5 | eval(['p', num2str(i), '=p(B, ', num2str(i), ');']); 6 | end 7 | 8 | %% po is the basis in the power basis (consistent with dominance order) 9 | Po = [p6; p5 * p1; p4 * p2; p4 * p1^2; p3^2; 10 | p3*p2*p1; p3*p1^3; p2^3; p2^2 * p1^2; p2 * p1^4; p1^6]; 11 | end -------------------------------------------------------------------------------- /notebooks/Jack polynomials/jackpowersum.m: -------------------------------------------------------------------------------- 1 | % this mat file saves the upper and lower triangular matrix 2 | load upperlowermatrix6; 3 | 4 | %% compute the Jack polynomials 5 | % compute_power is a function that gives P_\kappa(A) in power sum basis 6 | Jack = @(A) upper6 * lower6 * compute_power(A)/720; 7 | 8 | n = 6; % matrix size thus the symmetric polynomials live in a vector space of dimension 11 9 | t = 3000; % number of trials 10 | 11 | A = diag(rand(n,1)); 12 | B = diag(rand(n,1)); 13 | 14 | L = lower6; % P -> M (Power sum to Monomials) 15 | U = upper6; % M -> J (Monomials to Jack functions) 16 | 17 | D = diag(Jack(B)./Jack(eye(n))); % ``eigenvalue'' 18 | 19 | %% veriy the formular that Jack works 20 | % E_Q[J(Q'AQB)] = D * J(A) 21 | v = zeros(11, t); %LHS 22 | for i = 1:t 23 | [Q, ~] = qr(randn(n)); 24 | v(:,i) = Jack(Q' * A * Q * B); 25 | end 26 | 27 | [mean(v')', D * Jack(A)] 28 | 29 | %% the answer is correct! 30 | % 229.2511 229.0105 31 | % 39.8162 39.7712 32 | % 13.9076 13.8911 33 | % 5.9602 5.9580 34 | % 8.9769 8.9660 35 | % 2.6038 2.6037 36 | % 0.7206 0.7211 37 | % 1.1799 1.1807 38 | % 0.4124 0.4129 39 | % 0.0632 0.0633 40 | % 0.0033 0.0033 41 | %%--------------------------------------------------------- 42 | 43 | %% verify the dense matrix works 44 | % E_Q[P(Q'AQB)] = (L^{-1} * U^{-1} * D * U * L) P(A) 45 | PA = compute_power(A); 46 | LB = L\(U\D*U)*L; % the dense matrix that represents L_B 47 | 48 | for i = 1:t 49 | [Q, ~] = qr(randn(n)); 50 | v(:,i) = compute_power(Q' * A * Q * B); 51 | end 52 | 53 | [mean(v')', LB * PA] 54 | %% the answer is correct 55 | % 0.0167 0.0162 56 | % 0.0484 0.0472 57 | % 0.0353 0.0344 58 | % 0.1457 0.1425 59 | % 0.0323 0.0315 60 | % 0.1117 0.1094 61 | % 0.4640 0.4553 62 | % 0.0936 0.0917 63 | % 0.3896 0.3825 64 | % 1.6260 1.6003 65 | % 6.8097 6.7182 -------------------------------------------------------------------------------- /notebooks/Jack polynomials/upperlowermatrix6.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alanedelman/18.338-Eigenvalues-of-Random-Matrices/6870a17910b9d8713adc5e6f64c664e36441e674/notebooks/Jack polynomials/upperlowermatrix6.mat -------------------------------------------------------------------------------- /notebooks/OutlierEigenvalues.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "metadata": { 3 | "kernelspec": { 4 | "codemirror_mode": { 5 | "name": "ipython", 6 | "version": 2 7 | }, 8 | "display_name": "IPython (Python 2)", 9 | "language": "python", 10 | "name": "python2" 11 | }, 12 | "language": "Julia", 13 | "name": "", 14 | "signature": "sha256:088141b4aa80405908e7c0766a0a5e89f776b3ecf31f36dc47c2b686a4fcf868" 15 | }, 16 | "nbformat": 3, 17 | "nbformat_minor": 0, 18 | "worksheets": [ 19 | { 20 | "cells": [ 21 | { 22 | "cell_type": "markdown", 23 | "metadata": {}, 24 | "source": [ 25 | "Notebook inspired by
\n", 26 | "1. Outlier eigenvalues for deformed i.i.d. random matrices \n", 27 | "by Charles Bordenave, Mireille Capitaine
\n", 28 | "2. what I know about the early history of the numerical computation\n", 29 | "of eigenvalues, epsecially of non-normal matrices such as a Jordan block,
\n", 30 | "3. pseudospectra ,
\n", 31 | "4. the early work of Girko." 32 | ] 33 | }, 34 | { 35 | "cell_type": "code", 36 | "collapsed": false, 37 | "input": [ 38 | "# Load packages\n", 39 | "using PyPlot\n", 40 | "using Interact" 41 | ], 42 | "language": "python", 43 | "metadata": {}, 44 | "outputs": [ 45 | { 46 | "html": [ 47 | "" 202 | ], 203 | "metadata": {}, 204 | "output_type": "display_data" 205 | }, 206 | { 207 | "output_type": "stream", 208 | "stream": "stderr", 209 | "text": [ 210 | "INFO: Loading help data...\n" 211 | ] 212 | }, 213 | { 214 | "html": [ 215 | "" 314 | ], 315 | "metadata": {}, 316 | "output_type": "display_data" 317 | } 318 | ], 319 | "prompt_number": 1 320 | }, 321 | { 322 | "cell_type": "code", 323 | "collapsed": false, 324 | "input": [ 325 | "# Define convenient functions \n", 326 | "jordan(n) = eye(n + 1)[2:end,1:end-1] # Jordan block with eigenvalue 0\n", 327 | "randnc(n) = complex(randn(n,n), randn(n,n))/sqrt(2n); # random complex matrix\n", 328 | "function unitarilySimilar(A)\n", 329 | " n = Base.LinAlg.chksquare(A)\n", 330 | " Q = qr(randn(n,n))[1] # random Haar matrix\n", 331 | " return eigvals(Q*jordan(n)*Q')\n", 332 | "end;" 333 | ], 334 | "language": "python", 335 | "metadata": {}, 336 | "outputs": [], 337 | "prompt_number": 5 338 | }, 339 | { 340 | "cell_type": "code", 341 | "collapsed": false, 342 | "input": [ 343 | "# Plot 1.1 is the classic numerical eigenvalue experiment\n", 344 | "# the eigenvalues of a matrix similar to a Jordan block appear roughly on a circle of radius\n", 345 | "# machine epsilon of 1/n.\n", 346 | "f = figure(figsize=(6,6))\n", 347 | "@manipulate for n = 10:10:500; withfig(f) do\n", 348 | " xlim(-1,1)\n", 349 | " ylim(-1,1)\n", 350 | " vals = unitarilySimilar(jordan(n))\n", 351 | " plot(real(vals), imag(vals), \"o\")\n", 352 | " title(\"n=$n r=$(round(eps()^(1/n),2))\")\n", 353 | " tmp = plt.gca()\n", 354 | " tmp[:add_patch](plt.Circle((0,0), radius = eps()^(1/n), fill = false, color = \"red\", linewidth = 15))\n", 355 | " end\n", 356 | "end\n", 357 | "\n", 358 | "# This example has no stable outliers. The eigenvalues interior to the cirlce are spurious -- with no permanence." 359 | ], 360 | "language": "python", 361 | "metadata": {}, 362 | "outputs": [ 363 | { 364 | "html": [], 365 | "metadata": {}, 366 | "output_type": "display_data", 367 | "text": [ 368 | "Slider{Int64}([Input{Int64}] 250,\"n\",250,10:10:500)" 369 | ] 370 | }, 371 | { 372 | "metadata": { 373 | "comm_id": "b17c493f-7a41-46a1-8209-bebe71c72a9c", 374 | "reactive": true 375 | }, 376 | "output_type": "pyout", 377 | "png": "iVBORw0KGgoAAAANSUhEUgAAAhsAAAIeCAYAAAAS6s0OAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAPYQAAD2EBqD+naQAAIABJREFUeJzs3Xd8VFX+//HXhBCCgLiEhCZFeldAaRYU1K8FRXQFsQH2vuhK3N+q2F0XdHXd1bWLioANFFksCCgqARQrHZGm1A0CCSCQ5P7+OAzJZO690+4kM5P38/GYR+DeO5MzJMx85nM+53N8lmVZiIiIiMRJWmUPQERERFKbgg0RERGJKwUbIiIiElcKNkRERCSuFGyIiIhIXCnYEBERkbhSsCEiIiJxpWBDRERE4krBhoiIiMSVgg0RERGJKwUbIinoyy+/JDc3l+OOO46cnBwyMzNp2bIlV199NatXr7a9z4gRI0hLS3O8rVy50vZ+v/zyC1dccQWNGzcmMzOTo446iltvvZUdO3bE8ylGbe/evdxzzz20a9eOmjVr0qBBA4YOHcry5csjfqy8vDwuvPBCWrZsyWGHHcaRRx5J//79efPNNym/E8T48eNd/33T0tJIT0/36mmKJBSf9kYRST0NGzYkPz+fPn36cOyxx5Kens68efOYN28etWrV4uOPP6ZPnz4B9xkxYgSvvvoqo0aN4ogjjgh6zBtvvJGsrKyAY6tXr6Zv375s27aN8847j/bt27NgwQLmzJlDu3bt+PLLL6lXr15cn2sk9u3bx4ABA5g3bx7HHXcc/fv3Z/369bz11ltkZGQwe/ZsevbsGdZjvfrqq4wYMYIaNWpw7rnn0qpVK7Zt28bUqVPZvn07V155Jc8///yh67///nvee+8928eaO3cus2fPZuDAgUybNs2T5yqSUCwRSTl///vfrV9//TXo+MMPP2z5fD6rc+fOQeeGDx9u+Xw+a926dWF/n9NPP93y+XzWv//974Djt912m+Xz+azrrrsu8sHHkf/5DxkyJOD4e++9Z/l8PqtTp05WSUlJWI/VvHlzKy0tzZo7d27A8c2bN1sNGjSI6N+yd+/els/ns95///3wnohIklGwIRJHa9assXw+nzVixAhrzZo11tChQ62srCwrMzPT6tGjhzVt2rQKHU9xcbFVs2ZNKy0tzcrPzw84F2mw8dNPP1k+n89q1apV0LmCggKrVq1aVq1atazCwsKwHs/n81knn3yy9euvv1ojRoywGjZsaFWrVs0aP358WPcPpaSkxGrWrJmVlpZmrV27Nuj8SSedZPl8Pmv27NlhPV6tWrWsI444wvbcOeecY/l8Puubb74J+Tg//PCD5fP5rKZNm4Yd6IgkG9VsiFSAdevW0atXL9avX8/w4cMZOnQoS5Ys4bzzzmP27NkVOpbq1asDONYHTJ8+nUceeYRHH32U9957j4KCAtvr5syZA8Dpp58edK527docf/zx7NmzhwULFoQ9tvz8fPr27cuiRYsYMmQIN9xwAw0aNAj7/m5Wr17Nhg0baNeuHc2bNw86f+aZZwKlzyuUU089lZ07dzJ37tyA41u2bGHBggU0adKEjh07hnyc5557DoArr7wSn88X1vcWSTaqRhKpAJ9++in33Xcfd99996FjF198MWeccQaPPvoo/fv3P3R8586dPP744xE9/uDBgzn66KNDXvfWW29RUFBAnz59OPzww22vuemmmwL+XqdOHf72t79xww03BBxfsWIFAG3atLF9nDZt2jBz5kxWrVoV8PzcLF68mMsvv5yXXnqJtLTAz0Lfffcd7777bliP43frrbdSt27dsMbbunVrAFatWhXWYz/33HPs3buX008/nUGDBtGyZctDNRs5OTlMmDCBGjVquD7G3r17mTBhAunp6Vx11VXhPi2RpKNgQ6QCHHXUUdx1110Bx04//XSaNm3K119/HXD8t99+4/777w/7sX0+Hy1btgwZbKxZs4abb76Z9PR0HnvssaDz/fr1Y+DAgfTu3ZucnBx+/fVXpk6dyn333cdNN91E9erVufrqqw9dv3PnToBDb+bl+Y9HsiqlRo0aPProo0GBBpgCy0j/Xa644opD4/B6vDk5OYwYMYI1a9bw1ltvHTp++OGHc/nll9O5c+eQj/Hmm2+yc+dOBg4cSJMmTcL6viLJSNMoIhXgmGOOsU2RN23alN9++y3gWIsWLSgpKQn7VlxczOWXX+76/bds2cKZZ55Jfn4+jz/+OL179w66ZuTIkfzxj3/kyCOPJCMjg6OOOorbbruNiRMnAnDnnXdSUlISw79CaC1atKB+/fq254YPHx7xv0uzZs3iNtbc3FwuueQSWrVqxTfffMOePXtYvXo1V155JXfeeScDBgyguLjY9TH8UyjXXntt3MYpkggUbIhUAKdP0+np6XF/A9+8eTOnnHIKq1at4oknnuDGG2+M6P5nn302jRs3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ddNFRETEBwErkQIYcTj22GPZvHmz+WGBwOF6G4FAgM8++4x27doBMHbsWCZPnhyxDUy58vHjxzNr1iz2799Pjx49uOeeezwnq4qIiEjtSnmwISIiInVbWtfZEBERkcyX0cGGVpXNTuXl5dx88820adOGxo0b06NHD6ZNm+bpuSUlJeTk5Ng+ysrKUtzyui2Z66b7MP0kej11D6afZD8r/bg/03o2SiyhVWW7d+/OsGHDeOaZZxJaVXbv3r089thjtGjRgr/85S8MGjSId955h/79+6ew9eLkkksuYcmSJTz00EMUFxczZcoURo4cSTAYZOTIkZ5eo6SkhE6dOkVss6tGK/5J9LrpPkxPyd6HugfTRzKflb7dn1aW2LFjhxUIBKy7777b83MmTZpkBQIBa+HChYe3VVRUWF27drV69eqVimZKDG+88YYVCASsF154IWL7eeedZ7Vp08aqrKx0ff5zzz1nBQIBa+nSpalsplSTzHXTfZh+krmeugfTW7yflX7dnxk9jBLO0qqyWWHmzJnk5eVx2WWXRWwfO3YsW7du5cMPP/T0Oom8HyRxyVw33Yfpx4/7UPdgeor3uvh1f2ZNsJEIrSqbflauXEnnzp3JyYl8a8Z7TYYOHUpubi75+flceumlupYplsx1032Yfvy4D3UPZge/7s+MztlIllaVTT87d+7k+OOPj9ru9ZoUFhZyxx130Lt3b5o2bcrHH3/Mgw8+SO/evZk/f/7hG0T8lcx1032YfpK5nroHs4tf92faBBuZtqqsxFYb13TgwIEMHDjw8L9PP/10hgwZQrdu3bjzzjuZOXNm0j9DRJzpHhQ7aRNsZMqqsuJdPNc0VDU2Pz/fNlJO5pq0b9+efv36sXDhwrifK94kc910H6Yfv+9D3YOZy6/7M22CjUxZVVa8S+SannTSSZSWlhIMBiPGi/24JvFMi5b4JHPddB+mn1Tdh7oHM49f92edThAdNmwYa9asYdGiRYe3eVlVVlJn2LBhlJeXH16sL6SkpIQ2bdpEZER7tXHjRubOnUufPn38aqZUk8x1032Yfvy+D3UPZi7f7s+4JuimoTfffNOaPn269be//c0KBALW5Zdfbk2fPt2aPn26tX///sPHjRs3zsrNzbU+//zzw9sOHDhgnXjiiVa7du2sqVOnWm+//bY1bNgwq0GDBtb7779fG6cjlpnL37x5c+vpp5+2Zs+ebV177bVWIBCwpk6dGnGc3TUdMGCAdf/991uvvvqq9e6771p//OMfrdatW1vNmjWzVq1aVdOnUqd4uW66DzNHotdT92B68vJZmcr7M+ODjQ4dOliBQMAKBAJWTk5OxN83b958+LgxY8ZEbbMsy9q2bZs1evRoKz8/32rcuLHVt29f6913363p05Aw5eXl1i9+8QursLDQatiwodW9e3dr2rRpUcfZXdNf/vKXVteuXa2mTZta9evXt9q0aWP95Cc/sdavX1+Tp1Anebluug8zR6LXU/dgevLyWZnK+1OrvoqIiEhK1emcDREREUk9BRsiIiKSUgo2REREJKUUbIiIiEhKKdgQERGRlFKwISIiIimlYENERERSSsGGiIiIpJSCDREREUkpBRsiIiKSUgo2REREJKX+P7rqQFfI41x9AAAAAElFTkSuQmCC", 378 | "prompt_number": 12, 379 | "text": [ 380 | "Figure(PyObject )" 381 | ] 382 | } 383 | ], 384 | "prompt_number": 12 385 | }, 386 | { 387 | "cell_type": "code", 388 | "collapsed": false, 389 | "input": [ 390 | "# Plot An + \u03c3Yn\n", 391 | "f = figure()\n", 392 | "\u03c3 = sqrt(0.5)\n", 393 | "@manipulate for i = 10:10:500; withfig(f) do\n", 394 | " xlim(-2.0,3.5)\n", 395 | " axis(:equal)\n", 396 | " # M = jordan(i) + \u03c3*randnc(i) # the Jordan matrix\n", 397 | " # M = \u03c3*randnc(i) # the zero matrix\n", 398 | " M = [diagm([0,0,im/3,1,2]) zeros(5, i - 5); zeros(i - 5,5) [zeros(i-6,1) eye(i-6,i-6); eye(1, i-5)]] + \u03c3*randnc(i) #the circular matrix\n", 399 | " vals = eigvals(M)\n", 400 | " plot(real(vals), imag(vals), \"o\")\n", 401 | " tmp = plt.gca()\n", 402 | "# tmp[:add_patch](plt.Circle((0,0), radius = 1, fill = false, color = \"red\")) # the unit circle\n", 403 | " tmp[:add_patch](plt.Circle((0,0), radius = sqrt(1+\u03c3^2), fill = false, color = \"red\")) # the outer circle in annulus\n", 404 | " tmp[:add_patch](plt.Circle((0,0), radius = sqrt(1-\u03c3^2), fill = false, color = \"red\")) # the inner circle in annulus\n", 405 | " tmp[:add_patch](plt.Circle((0,1/3), radius = 0.1, fill = false, color = \"green\"))\n", 406 | " tmp[:add_patch](plt.Circle((2,0), radius = 0.1, fill = false, color = \"green\"))\n", 407 | " end\n", 408 | "end" 409 | ], 410 | "language": "python", 411 | "metadata": {}, 412 | "outputs": [ 413 | { 414 | "html": [], 415 | "metadata": {}, 416 | "output_type": "display_data", 417 | "text": [ 418 | "Slider{Int64}([Input{Int64}] 250,\"i\",250,10:10:500)" 419 | ] 420 | }, 421 | { 422 | "metadata": { 423 | "comm_id": "5a8a3c02-8a09-4941-be71-4304b6c8a70b", 424 | "reactive": true 425 | }, 426 | "output_type": "pyout", 427 | "png": "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zKWepU+jCyKlqZ6WcPLkSbRs2fK679tzZk+ePOnwviEhIXj++efRrVs31KhRAzt37sTMmTPRrVs3bN68+UqATGX44QeZS/XTT3qPxKd4nN6wapW81NuvH/D110ClStoMnMhdTZvKALdvXxngrlsHtG6t+G70bqerFDUfh8spD5UrAxMnyvrnL7wANGzo9r6JjMDQTRwGDRqEQVcVl+7RoweGDh2K9u3bY/r06Vi+fLmOozOJ114DIiOBPn30HonPcbvlZ1IScNddwNChwBdfyHaZRGbQqBHwyy/ySlGvXsD69TInV2F6ttNVklqPw63mNuPHy7zbt9/mDC6ZnurBbd26dUudnT116tSVn7uiadOmuOWWW7Bly5Yyf2/ixImoVatWie+NGjXKqeoMXiM1Vc6kLF8uaxqS8X3/PTBypOwctHgxS32R+dxwgwxq+/aVVx42bJBpC6QZt6q+1KwpA9x335ULzGrU0HbQ5NUWL16MxdcsWDx9+rRq+1M9uO3QoQMWL16MwsLCEnm3u3btAiArIbjDr5xgbfbs2aywMGeOXIAUHa33SMgZ69bJihaDBgGLFjGwJfOqV09W9ujdWwa5GzYAzZrpPSqf4XbKw+OPy1nbBQtkoEukkNImF3fs2IGIiAhV9qf6grLhw4cjNzcXX331VYnvJyYmolGjRuja1dGKztIdOHAAycnJiIqKUnKY3ufECWDJEuDRR2UfcZ04VUicZIeg6Gi52nzpUqBCBb1HROSZBg3kosgKFWSAe/So3iPyKW5VfbnxRllPe+5cuTiQyKRUn7kdPHgwBgwYgMceewxnz55FaGgoFi9ejDVr1mDhwoVXZmDHjh2Lzz77DAcOHEDjog5aAwYMQN++fREeHo5q1aph165dSEhIQGBgIF5++WW1h25u8+fLrw8+qNsQShYSnwxgFoB0ZGT8hoULe2PEiL54553pplkAoprUVGDIEJkbvWwZc2zJezRqJBez9upVPIN7ww16j4rKMn68zJlOTpbPG5EJabKgbNmyZXjuuecwffp0nDp1Cm3btsUXX3yBu++++8rvFBYWorCwsERN2/bt22PhwoU4cuQILly4gPr166N///6YNm1aqRUYqEhhoWzPevfd8vKgTooLibcAcA+A4m45eXmF+OKLLdi27apuOb7o8GHZArNdO2DFCqBKFb1HRKSspk1lyk2v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", 428 | "prompt_number": 19, 429 | "text": [ 430 | "Figure(PyObject )" 431 | ] 432 | } 433 | ], 434 | "prompt_number": 19 435 | }, 436 | { 437 | "cell_type": "markdown", 438 | "metadata": {}, 439 | "source": [ 440 | "There is an intimite link between the eigenvalues in the complex plane of M and\n", 441 | "the histogram of the singular values of M shifted by a multiple of the identity.\n", 442 | "(I think this idea is really Girko's, but it's also the idea that underlies \n", 443 | " pseudospectra.)\n", 444 | "\n", 445 | "Simply put, z is part of the limiting spectrum of M in the complex plane if\n", 446 | "the histogram of M-zI has non-zero height at 0.\n", 447 | "\n", 448 | "If z is an eigenvalue of M, then 0 is a singular value of M-zI, and therefore shows up with\n", 449 | "some positive mass when histogramming the singular values of M-zI.\n" 450 | ] 451 | }, 452 | { 453 | "cell_type": "code", 454 | "collapsed": false, 455 | "input": [ 456 | "\n", 457 | "\n", 458 | "# Histogram of svd(An + \u03c3Yn - zI)\n", 459 | "f = figure()\n", 460 | "\u03c3 = sqrt(0.5)\n", 461 | "i = 1000\n", 462 | "M = [diagm([0,0,im/3,1,2]) zeros(5, i - 5); zeros(i - 5,5) [zeros(i-6,1) eye(i-6,i-6); eye(1, i-5)]] + \u03c3*randnc(i)\n", 463 | "# M = \u03c3*randnc(500)\n", 464 | "@manipulate for realPart in -2:0.1:2, imaginaryPart = -2:0.1:2; withfig(f) do\n", 465 | " xlim(0,3)\n", 466 | " vals = svdvals(M - complex(realPart, imaginaryPart)*I) # Enough to take M-zI for z>0. Why? What happens for z<1,z>1\n", 467 | " plt.hist(vals, bins = 50, normed=true)\n", 468 | " end\n", 469 | "end" 470 | ], 471 | "language": "python", 472 | "metadata": {}, 473 | "outputs": [ 474 | { 475 | "html": [], 476 | "metadata": {}, 477 | "output_type": "display_data", 478 | "text": [ 479 | "Slider{Float64}([Input{Float64}] 0.0,\"realPart\",0.0,-2.0:0.1:2.0)" 480 | ] 481 | }, 482 | { 483 | "html": [], 484 | "metadata": {}, 485 | "output_type": "display_data", 486 | "text": [ 487 | "Slider{Float64}([Input{Float64}] 0.0,\"imaginaryPart\",0.0,-2.0:0.1:2.0)" 488 | ] 489 | }, 490 | { 491 | "metadata": { 492 | "comm_id": "c3eabab0-1697-4a40-8e85-0d1db6bf8ca3", 493 | "reactive": true 494 | }, 495 | "output_type": "pyout", 496 | "png": "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44yYPn36gH2GdO6UefusIfG2t72tMGXKlML69esL3/3udws33HBDoaKionDvvff29rn++usLEyZMKBw8eLC37de//nVh5syZhVe84hWFe++9t/Dggw8WlixZUnjJS15SePjhh0fjpYw5J3ts3vrWtxZuueWWwje+8Y3CQw89VGhqaipcdNFFhfPOO6+wb9++0XgpY1JbW1vhvvvuK9x9992FioqKwvLlywv33Xdf4b777iv84he/KBQK5s5oOdljY+4Mr89+9rOFioqKwtvf/vbCo48+WviP//iPPo/jzJvRcSrHx9wZXjfccEPhIx/5SGHz5s2F73//+4UtW7YU6urqChUVFYWPfexjvf2Ge+6MSlA9evRo4UMf+lBh6tSphbPOOqtw+eWXFzZv3tynz3XXXVeorKwsHDhwoE/7z372s8J73/veQnV1dWHixImFK6+8svDQQw+NZPlj2skemxtvvLFw2WWXFc4999zCmWeeWaipqSn81V/9VSGXy430SxjTXvWqVxUqKioKFRUVhcrKyj7/fPx4mDuj42SPjbkzvN70pjf1OR6/+6isrOztZ96MjlM5PubO8Gpubi688Y1vLFxwwQWFM888s3D++ecX3vzmNxdaW1v79BvuuVNRKLhTLgAA6Rnxz6gCAEApBFUAAJIkqAIAkCRBFQCAJAmqAAAkSVAFACBJgioAAEkSVAEASJKgCgBAkgRVAACSJKgCAJAkQRUAgCT9/2XNSQ7LHVl+AAAAAElFTkSuQmCC", 497 | "prompt_number": 22, 498 | "text": [ 499 | "Figure(PyObject )" 500 | ] 501 | } 502 | ], 503 | "prompt_number": 22 504 | }, 505 | { 506 | "cell_type": "markdown", 507 | "metadata": {}, 508 | "source": [ 509 | "In the case where we started with A=0 (the second commented matrix above), we obtain Girko's circular law in the \n", 510 | "complex plane, but also a law that we can know about the singular values.\n", 511 | "\n", 512 | "I believe the free cumulants are exactly \u03ba(n)=1+|z|^2*n" 513 | ] 514 | }, 515 | { 516 | "cell_type": "markdown", 517 | "metadata": {}, 518 | "source": [ 519 | "Next step is to write down the exact density for the singular values and note that the support includes 0, exactly\n", 520 | "when z is in the unit disk --- this is how Girko's circular law was essentially proved." 521 | ] 522 | }, 523 | { 524 | "cell_type": "markdown", 525 | "metadata": {}, 526 | "source": [ 527 | "A good project would be to explore the three cases here even more closely, dig up the math on the complex plane, the math on the real histograms of the svd, and look into the free cumulants and the distributions. This may already be in the surveys or in Girko's work." 528 | ] 529 | }, 530 | { 531 | "cell_type": "code", 532 | "collapsed": false, 533 | "input": [], 534 | "language": "python", 535 | "metadata": {}, 536 | "outputs": [] 537 | } 538 | ], 539 | "metadata": {} 540 | } 541 | ] 542 | } -------------------------------------------------------------------------------- /notebooks/RSK.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "code", 5 | "execution_count": 1, 6 | "metadata": { 7 | "collapsed": false 8 | }, 9 | "outputs": [ 10 | { 11 | "name": "stderr", 12 | "output_type": "stream", 13 | "text": [ 14 | "INFO: Loading help data...\n" 15 | ] 16 | } 17 | ], 18 | "source": [ 19 | "using PyPlot\n", 20 | "using StatsBase # has the countmap function" 21 | ] 22 | }, 23 | { 24 | "cell_type": "code", 25 | "execution_count": 22, 26 | "metadata": { 27 | "collapsed": false 28 | }, 29 | "outputs": [ 30 | { 31 | "data": { 32 | "text/plain": [ 33 | "rsk (generic function with 1 method)" 34 | ] 35 | }, 36 | "execution_count": 22, 37 | "metadata": {}, 38 | "output_type": "execute_result" 39 | } 40 | ], 41 | "source": [ 42 | "function rsk(seq)\n", 43 | " ## Input: seq ... a sequence of whole numbers (all >= 0)\n", 44 | " ## Output: A partition P capturing large scale sorting structure\n", 45 | "\n", 46 | " n = length(seq)\n", 47 | " m1 = iround(2*sqrt(n))\n", 48 | " m2 = iround(2*sqrt(n))\n", 49 | " P = fill(NaN, m1, m2)\n", 50 | "\n", 51 | " for i = 1:n\n", 52 | " nw = seq[i]\n", 53 | "\n", 54 | " for j = 1:n\n", 55 | " if j > m2\n", 56 | " P = hcat(P, fill(NaN, m1, m2))\n", 57 | " m2 = 2*m2\n", 58 | " end\n", 59 | " k = 1\n", 60 | " while P[k,j] <= nw\n", 61 | " k += 1\n", 62 | " if k > m1\n", 63 | " P = vcat(P, fill(NaN, m1, m2))\n", 64 | " m1 = 2*m1\n", 65 | " break\n", 66 | " end\n", 67 | " end\n", 68 | "\n", 69 | " old = P[k,j]\n", 70 | " P[k,j] = nw\n", 71 | " nw = old\n", 72 | " if isnan(nw)\n", 73 | " break\n", 74 | " end\n", 75 | " end\n", 76 | " end\n", 77 | "\n", 78 | " return P\n", 79 | "end" 80 | ] 81 | }, 82 | { 83 | "cell_type": "code", 84 | "execution_count": 23, 85 | "metadata": { 86 | "collapsed": false 87 | }, 88 | "outputs": [ 89 | { 90 | "data": { 91 | "text/plain": [ 92 | "5x5 Array{Float64,2}:\n", 93 | " 1.0 3.0 4.0 NaN NaN\n", 94 | " 2.0 NaN NaN NaN NaN\n", 95 | " 5.0 NaN NaN NaN NaN\n", 96 | " 6.0 NaN NaN NaN NaN\n", 97 | " NaN NaN NaN NaN NaN" 98 | ] 99 | }, 100 | "execution_count": 23, 101 | "metadata": {}, 102 | "output_type": "execute_result" 103 | } 104 | ], 105 | "source": [ 106 | "rsk(randperm(6))" 107 | ] 108 | }, 109 | { 110 | "cell_type": "code", 111 | "execution_count": 24, 112 | "metadata": { 113 | "collapsed": false 114 | }, 115 | "outputs": [], 116 | "source": [ 117 | "n = 1000\n", 118 | "p = randperm(n)\n", 119 | "pygui(true) # Necessary for animation effect\n", 120 | "clf()\n", 121 | "xlim(0,60)\n", 122 | "ylim(0,60)\n", 123 | "for i = 100:5:n\n", 124 | " plt.imshow(rsk(p[1:i]), interpolation = \"none\")\n", 125 | " sleep(0.001)\n", 126 | "end" 127 | ] 128 | }, 129 | { 130 | "cell_type": "markdown", 131 | "metadata": {}, 132 | "source": [ 133 | "Count frequencies of shapes of the RSK for each of the `6!=720` permutations of `{1,2,3,4,5,6}`" 134 | ] 135 | }, 136 | { 137 | "cell_type": "code", 138 | "execution_count": 30, 139 | "metadata": { 140 | "collapsed": false 141 | }, 142 | "outputs": [ 143 | { 144 | "data": { 145 | "text/plain": [ 146 | "Dict{Array{Int64,1},Int64} with 11 entries:\n", 147 | " [3,3,0,0,0] => 25\n", 148 | " [5,1,0,0,0] => 25\n", 149 | " [2,2,2,0,0] => 25\n", 150 | " [4,2,0,0,0] => 81\n", 151 | " [1,1,1,1,1,1,0,0,0,0] => 1\n", 152 | " [3,1,1,1,0] => 100\n", 153 | " [2,1,1,1,1] => 25\n", 154 | " [2,2,1,1,0] => 81\n", 155 | " [6,0,0,0,0] => 1\n", 156 | " [3,2,1,0,0] => 256\n", 157 | " [4,1,1,0,0] => 100" 158 | ] 159 | }, 160 | "execution_count": 30, 161 | "metadata": {}, 162 | "output_type": "execute_result" 163 | } 164 | ], 165 | "source": [ 166 | "countmap([vec(sum(rsk(p) .> 0, 2)) for p in permutations(1:6)])" 167 | ] 168 | } 169 | ], 170 | "metadata": { 171 | "kernelspec": { 172 | "display_name": "Julia 0.3.7-pre", 173 | "language": "julia", 174 | "name": "julia 0.3" 175 | }, 176 | "language_info": { 177 | "name": "julia", 178 | "version": "0.3.7" 179 | } 180 | }, 181 | "nbformat": 4, 182 | "nbformat_minor": 0 183 | } 184 | -------------------------------------------------------------------------------- /notebooks/SemiCircleLaw.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "code", 5 | "execution_count": 30, 6 | "metadata": {}, 7 | "outputs": [], 8 | "source": [ 9 | "using RandomMatrices" 10 | ] 11 | }, 12 | { 13 | "cell_type": "code", 14 | "execution_count": 32, 15 | "metadata": {}, 16 | "outputs": [ 17 | { 18 | "data": { 19 | "text/html": [ 20 | "
\n", 21 | " \n" 25 | ] 26 | }, 27 | "execution_count": 32, 28 | "metadata": {}, 29 | "output_type": "execute_result" 30 | } 31 | ], 32 | "source": [ 33 | "#semicircle.jl\n", 34 | "#Algorithm 1.2 of Random Eigenvalues by Alan Edelman\n", 35 | "\n", 36 | "#Experiment: Sample random symmetric Gaussian matrices\n", 37 | "#Plot: Histogram of the eigenvalues\n", 38 | "#Theory: Semicircle as n->infinity\n", 39 | "\n", 40 | "using Plots\n", 41 | "plotly()\n", 42 | "\n", 43 | "## Parameters\n", 44 | "n = 1000\n", 45 | "t = 1\n", 46 | "\n", 47 | "## Experiment\n", 48 | "vals = Float64[] # initialize result vector\n", 49 | "for i = 1:t\n", 50 | " A = randn(n, n) # draw n by n matrix with idependent gaussians\n", 51 | " S = (A + A')/2 # symmetrize matrix\n", 52 | " vals = append!(vals, eigvals(S)) # calculate eigenvalues and append to result vector\n", 53 | "end\n", 54 | "vals /= √(n/2) # scale eigenvalues\n", 55 | "\n", 56 | " # set limits for x axis in plot\n", 57 | "histogram(vals, xlim=(-2,2), nbins=50, normed=true ) # make histogram\n", 58 | "xvals = -2:.1:2\n", 59 | "plot!(xvals, sqrt.(4 - xvals.^2)/(2*π),color=:red) # plot semi circle" 60 | ] 61 | }, 62 | { 63 | "cell_type": "code", 64 | "execution_count": null, 65 | "metadata": {}, 66 | "outputs": [], 67 | "source": [] 68 | } 69 | ], 70 | "metadata": { 71 | "kernelspec": { 72 | "display_name": "Julia 0.6.0", 73 | "language": "julia", 74 | "name": "julia-0.6" 75 | }, 76 | "language_info": { 77 | "file_extension": ".jl", 78 | "mimetype": "application/julia", 79 | "name": "julia", 80 | "version": "0.6.0" 81 | } 82 | }, 83 | "nbformat": 4, 84 | "nbformat_minor": 2 85 | } 86 | --------------------------------------------------------------------------------