{"id":6177,"date":"2026-02-05T17:08:00","date_gmt":"2026-02-05T17:08:00","guid":{"rendered":"https:\/\/sinatootoonian.com\/?p=6177"},"modified":"2026-02-06T15:54:23","modified_gmt":"2026-02-06T15:54:23","slug":"eigenvalue-density-via-the-stieltjes-transform","status":"publish","type":"post","link":"https:\/\/sinatootoonian.com\/index.php\/2026\/02\/05\/eigenvalue-density-via-the-stieltjes-transform\/","title":{"rendered":"Eigenvalue Density via the Stieltjes Transform"},"content":{"rendered":"\n<p>These are my notes on how to compute the eigenvalue density of a random matrix using the Stieltes transform. They&#8217;re based on Chapter 2 of &#8220;<em>A First Course in Random Matrix Theory,<\/em>&#8221; and conversations with ChatGPT. I am new to this topic so these notes may contain errors.<\/p>\n\n\n\n<p>We&#8217;re interested in the distribution of eigenvalues of a symmetric $N \\times N$ random matrix $X_N$. We&#8217;ll ultimately be interested in the limit of infinitely large $N$, but we&#8217;ll start with the finite case.<\/p>\n\n\n\n<p>There are lots of ways we can encode the eigenvalues. One natural way is to encode them as a probability distribution. Since we (for now) only have a discrete set of eigenvalues, we can put a delta function at each eigenvalue, so $$ \\rho_N(\\lambda) = {1 \\over N} \\sum_{i=1}^N \\delta(\\lambda &#8211; \\lambda_i).$$ <\/p>\n\n\n\n<p>We will want to bring in tools from complex analysis, so another way to encode the eigenvalues is to create an &#8220;indicator&#8221; function which has poles at the eigenvalues: $$g_N(z) ={1 \\over N} \\sum_{i=1}^N {1 \\over z &#8211; \\lambda_i}.$$<\/p>\n\n\n\n<p>We can relate these two encodings by thinking of our indicator function as the expectation of $1\/(z &#8211; \\lambda)$ relative to the probability distribution we defined: $$ g_N(z) = \\int_{-\\infty}^\\infty { \\rho_N(\\lambda) \\over z &#8211; \\lambda} d\\lambda.$$ <\/p>\n\n\n\n<p>It&#8217;s then natural to take the $N \\to \\infty$ limit, and arrive at the <strong>Stieltjes transform <\/strong>of our density, $$ g(z)= \\int_{-\\infty}^\\infty { \\rho(\\lambda) \\over z &#8211; \\lambda} d\\lambda,$$ where our discrete distribution $\\rho_N$  has now been replaced by the density, $\\rho$, that we&#8217;re after.<\/p>\n\n\n\n<p>Two questions arise at this point:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>The function $g(z)$ encodes the density, but we don&#8217;t know the density! So how do we compute $g$ without that knowledge?<\/li>\n\n\n\n<li>If we somehow manage to compute $g(z)$ by some other means, how do we extraction the density from it?<\/li>\n<\/ol>\n\n\n\n<p>To answer the first, we return to the finite dimensional case and notice that $g_N(z)$ is the trace of the <strong>resolvent<\/strong>:<\/p>\n\n\n\n<p>$$g_N(z) = {1 \\over N} \\sum_{i=1}^N {1 \\over z &#8211; \\lambda_i} = {1 \\over N} \\tr((zI &#8211; X_N)^{-1}).$$ So, by analogy, $$g(z) \\propto \\tr((zI &#8211; X)^{-1}).$$ The general strategy will then be to compute the finite dimensional trace, and extend somehow to the infinite-dimensional case. The main point is that this doesn&#8217;t require direct knowledge of the density.<\/p>\n\n\n\n<p>So now for our second question: Suppose we have $g(z)$, how do we extract the density?<\/p>\n\n\n\n<p>This is where complex analysis comes in. Notice that our function $g(z)$ is undefined <em>on<\/em> the real line in the ordinary sense, due to the $(z &#8211; \\lambda)$ in the denominator. However, it&#8217;s well-behaved (analytic i.e. complex differentiable &#8211; we haven&#8217;t shown this) everywhere else, in particular above and below the line. The real line in this case is called a &#8220;jump&#8221;, because the value of the function &#8220;jumps&#8221; across it.<\/p>\n\n\n\n<p>We can&#8217;t evaluate our function <em>on<\/em> the real line, but we can consider taking limit values of our function from <em>below<\/em> the real line: $$g(x &#8211; 0 i) \\triangleq \\lim_{\\veps \\to 0^+} g(x &#8211; \\veps i),$$ where by $0^+$ I mean taking the limit from the right.<\/p>\n\n\n\n<p>The <a href=\"https:\/\/en.wikipedia.org\/wiki\/Sokhotski%E2%80%93Plemelj_theorem\">Sokhotski\u2013Plemelj theorem<\/a> then relates this limit to the value of our density on the line. In particular, it says that, for any interval $[a,b]$ containing 0, $$ \\im\\left[ \\lim_{\\veps \\to 0^+} \\int_{a}^b {f(x) \\over x &#8211; \\veps i} dx \\right] = \\pi f(0).$$<\/p>\n\n\n\n<p>To apply this to our problem, we first extend the integration interval to $[-\\infty, \\infty]$. We then have $$ g(x &#8211; 0 i) = \\lim_{\\veps \\to 0^+} \\int_{-\\infty}^\\infty {\\rho(t) \\over t &#8211; \\veps i &#8211; \\lambda} dt = \\lim_{\\veps \\to 0^+} \\int_{-\\infty}^\\infty {\\rho(t &#8211; \\lambda) \\over t &#8211; \\veps i} dt.$$<\/p>\n\n\n\n<p>This is just the form needed to apply the theorem, so we get $$ \\im{g(x &#8211; 0 i)} = \\pi \\rho(x).$$<\/p>\n\n\n\n<p>So, the recipe is:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Use the resolvent to determine $g(z)$.<\/li>\n\n\n\n<li>Evaluate directional limits of $g(z)$ on the real line.<\/li>\n\n\n\n<li>Use the S-P theorem to read off the density from those limits.<\/li>\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\">Miscellaneous Statements<\/h2>\n\n\n\n<p>Below are some elaborations on miscellaneous statements from the book chapter.<\/p>\n\n\n\n<p>They state the definition of the finite dimensional transform $$g_N(z) = \\int_{-\\infty}^\\infty {\\rho_N(\\lambda) \\over z &#8211; \\lambda} d\\lambda,$$ then say that&#8217;s well behaved at infinity, and give a series expansion. The expansion can be derived by using the series representation $$ {1 \\over z- \\lambda} = {1 \\over z}{1 \\over 1 &#8211; {\\lambda \\over z}} = {1 \\over z} \\sum_{k=0}^\\infty {\\lambda^k \\over z^k} = \\sum_{k=0}^\\infty {\\lambda^k \\over z^{k+1}}.$$ Then $$g_N(z) = \\int_{-\\infty}^\\infty \\rho_N(\\lambda)\\sum_{k=0}^\\infty {\\lambda^k \\over z^{k+1}} d\\lambda = \\sum_{k=0}^\\infty {1 \\over z^{k+1}} \\int \\rho_N(\\lambda) \\lambda^k d\\lambda = \\sum_{k=0}^\\infty {1 \\over z^{k+1}} {1 \\over N} \\tr(A^k).$$ <\/p>\n\n\n\n<p>The importance of infinity is that $z$ will then be beyond all the eigenvalues, so there is no risk of $g_N(z)$ blowing up.  <\/p>\n\n\n\n<p>Later, they mention that &#8220;knowledge of $g(z)$  near infinity is equivalent to knowledge of all the moments of $A$. What they mean by this is in the moment expansion above.<\/p>\n\n\n\n<p>$$\\blacksquare$$<\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Notes on how to compute the eigenvalue density of a random matrix using the Stieltes transform. based on Chapter 2 of &#8220;A First Course in Random Matrix Theory,&#8221; and conversations with ChatGPT. <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1,30],"tags":[],"class_list":["post-6177","post","type-post","status-publish","format-standard","hentry","category-blog","category-notes-blog"],"_links":{"self":[{"href":"https:\/\/sinatootoonian.com\/index.php\/wp-json\/wp\/v2\/posts\/6177","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sinatootoonian.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/sinatootoonian.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/sinatootoonian.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/sinatootoonian.com\/index.php\/wp-json\/wp\/v2\/comments?post=6177"}],"version-history":[{"count":47,"href":"https:\/\/sinatootoonian.com\/index.php\/wp-json\/wp\/v2\/posts\/6177\/revisions"}],"predecessor-version":[{"id":6235,"href":"https:\/\/sinatootoonian.com\/index.php\/wp-json\/wp\/v2\/posts\/6177\/revisions\/6235"}],"wp:attachment":[{"href":"https:\/\/sinatootoonian.com\/index.php\/wp-json\/wp\/v2\/media?parent=6177"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/sinatootoonian.com\/index.php\/wp-json\/wp\/v2\/categories?post=6177"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/sinatootoonian.com\/index.php\/wp-json\/wp\/v2\/tags?post=6177"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}