{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": { "hide_input": true, "internals": {}, "slideshow": { "slide_type": "skip" }, "tags": [ "hide-cell" ] }, "outputs": [], "source": [ "# for lecture use notebook\n", "%matplotlib inline\n", "qr_setting = None\n", "qrviz_setting = 'save'\n", "#\n", "%config InlineBackend.figure_format='retina'\n", "# import libraries\n", "import numpy as np\n", "import matplotlib as mpf\n", "import pandas as pd\n", "import matplotlib.pyplot as plt\n", "import laUtilities as ut\n", "import slideUtilities as sl\n", "import demoUtilities as dm\n", "import pandas as pd\n", "from importlib import reload\n", "from datetime import datetime\n", "from IPython.display import Image\n", "from IPython.display import display_html\n", "from IPython.display import display\n", "from IPython.display import Math\n", "from IPython.display import Latex\n", "from IPython.display import HTML;" ] }, { "cell_type": "markdown", "metadata": { "internals": { "slide_type": "subslide" }, "slideshow": { "slide_type": "slide" } }, "source": [ "# The Characteristic Equation" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "hide_input": true, "tags": [ "hide-cell" ] }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "image/png": { "height": 248, "width": 383 }, "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "A = np.array([[0.8, 0.5],[-0.1, 1.0]])\n", "\n", "x = np.array([1,500.])\n", "fig = plt.figure()\n", "ax = plt.axes(xlim=(-500,500),ylim=(-500,500))\n", "plt.plot(-500, -500,''),\n", "plt.plot(500, 500,'')\n", "plt.axis('equal')\n", "for i in range(75):\n", " newx = A @ x\n", " plt.plot([x[0],newx[0]],[x[1],newx[1]],'r-')\n", " plt.plot(newx[0],newx[1],'ro')\n", " x = newx" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "Today we deepen our study of _linear dynamical systems,_ \n", "\n", "systems that evolve according to the equation:\n", "\n", "$$\\mathbf{x}_{k+1} = A\\mathbf{x}_k.$$" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "Let's look at some examples of how such dynamical systems can evolve in $\\mathbb{R}^2$.\n", "\n", "First we'll look at the system corresponding to:\n", "\n", "$$ A = \\begin{bmatrix}\\cos 0.1&-\\sin 0.1\\\\\\sin 0.1&\\cos 1.0\\end{bmatrix} $$" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "hide_input": true, "slideshow": { "slide_type": "fragment" }, "tags": [ "hide-input" ] }, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sl.display_saved_anim('images/L17-ex1.mp4')" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "Next let's look at the system corresponding to:\n", "\n", "$$ A = \\begin{bmatrix}1.1&0\\\\0&0.9\\end{bmatrix} $$" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "hide_input": true, "tags": [ "hide-input" ] }, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sl.display_saved_anim('images/L17-ex2.mp4')" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "Next let's look at the system corresponding to:\n", "\n", "$$ A = \\begin{bmatrix}0.8&0.5\\\\-0.1&1.0\\end{bmatrix} $$" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "hide_input": true, "tags": [ "hide-input" ] }, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sl.display_saved_anim('images/L17-ex3.mp4')" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "There are very different things happening in these three cases!\n", "\n", "Can we find a general method for understanding what is going on in each case? " ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "The study of eigenvalues and eigenvectors is the key to acquiring that understanding." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "We will see that to understand each case, we need to learn how to __extract the eigenvalues and eigenvectors of $A$.__" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "## Finding $\\lambda$" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "In the last lecture we saw that, if we know an eigenvalue $\\lambda$ of a matrix $A,$ then computing the corresponding eigenspace can be done by constructing a basis for $\\operatorname{Nul}\\, (A-\\lambda I).$" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "Today we'll discuss how to determine the eigenvalues of a matrix $A$." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "The theory will make use of the __determinant__ of a matrix." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "Let's recall that the determinant of a $2\\times 2$ matrix $A = \\begin{bmatrix}a&b\\\\c&d\\end{bmatrix}$ is $ad-bc.$" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "We also have learned that $A$ is invertible if and only if its determinant is not zero. \n", "\n", "(Recall that the inverse of of $A$ is $\\frac{1}{ad-bc}\\begin{bmatrix}d&-b\\\\-c&a\\end{bmatrix}).$" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "Let's use these facts to help us find the eigenvalues of a $2\\times 2$ matrix." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "__Example.__ Find the eigenvalues of $A = \\begin{bmatrix}2&3\\\\3&-6\\end{bmatrix}.$" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "__Solution.__ We must find all scalars $\\lambda$ such that the matrix equation\n", "\n", "$$(A-\\lambda I)\\mathbf{x} = {\\bf 0}$$\n", "\n", "has a nontrivial solution. \n", "\n", "By the Invertible Matrix Theorem, this problem is equivalent to finding all $\\lambda$ such that the matrix $A-\\lambda I$ is _not_ invertible." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "Now,\n", "\n", "$$ A - \\lambda I = \\begin{bmatrix}2&3\\\\3&-6\\end{bmatrix} - \\begin{bmatrix}\\lambda&0\\\\0&\\lambda\\end{bmatrix} = \\begin{bmatrix}2-\\lambda&3\\\\3&-6-\\lambda\\end{bmatrix}.$$" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "We know that $A$ is not invertible exactly when its determinant is zero. " ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "So the eigenvalues of $A$ are the solutions of the equation\n", "\n", "$$\\det(A-\\lambda I) = \\det\\begin{bmatrix}2-\\lambda&3\\\\3&-6-\\lambda\\end{bmatrix} = 0.$$" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "Since $\\det\\begin{bmatrix}a&b\\\\c&d\\end{bmatrix} = ad-bc,$ then\n", "\n", "$$\\det(A-\\lambda I) = (2-\\lambda)(-6-\\lambda)-(3)(3)$$" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "$$ = -12 + 6\\lambda -2\\lambda + \\lambda^2 - 9$$" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "$$= \\lambda^2+4\\lambda-21$$" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "$$=(\\lambda-3)(\\lambda + 7)$$" ] }, { "cell_type": "markdown", "metadata": { "collapsed": true, "slideshow": { "slide_type": "fragment" } }, "source": [ "If $\\det(A-\\lambda I) = 0,$ then $\\lambda = 3$ or $\\lambda = -7.$ So the eigenvalues of $A$ are $3$ and $-7$." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "``` {toggle}\n", "Question Time! Q17.1\n", "```" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "The same idea works for $n\\times n$ matrices -- but, for that, we need to define a _determinant_ for larger matrices." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "__Determinants.__\n", "\n", "Previously, we've defined a determinant for a $2\\times 2$ matrix. " ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "To find eigenvalues for larger matrices, we need to define the determinant for any sized (ie, $n\\times n$) matrix." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "__Definition.__ Let $A$ be an $n\\times n$ matrix, and let $U$ be any echelon form obtained from $A$ by row replacements and row interchanges (no row scalings), and let $r$ be the number of such row interchanges." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "Then the __determinant__ of $A$, written as $\\det A$, is $(-1)^r$ times the product of the diagonal entries $u_{11},\\dots,u_{nn}$ in $U$." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "If $A$ is invertible, then $u_{11},\\dots,u_{nn}$ are all _pivots_. " ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "If $A$ is not invertible, then at least one diagonal entry is zero, and so the product $u_{11} \\dots u_{nn}$ is zero." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "In other words:\n", "\n", "$$\\det\\ A = \\left\\{\\begin{array}{ll}(-1)^r\\cdot\\left(\\mbox{product of pivots in $U$}\\right),&\\mbox{when $A$ is invertible}\\\\\n", "0,&\\mbox{when $A$ is not invertible}\\end{array}\\right.$$" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "__Example.__ Compute $\\det A$ for $A = \\begin{bmatrix}1&5&0\\\\2&4&-1\\\\0&-2&0\\end{bmatrix}.$" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "__Solution.__ The following row reduction uses __one__ row interchange:\n", "\n", "$$A \\sim \\begin{bmatrix}1&5&0\\\\0&-6&-1\\\\0&-2&0\\end{bmatrix} \\sim \\begin{bmatrix}1&5&0\\\\0&-2&0\\\\0&-6&-1\\end{bmatrix} \\sim \\begin{bmatrix}1&5&0\\\\0&-2&0\\\\0&0&-1\\end{bmatrix}.$$" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "So $\\det A$ equals $(-1)^1(1)(-2)(-1) = (-2).$ " ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "The remarkable thing is that __any other__ way of computing the echelon form gives the same determinant. For example, this row reduction does not use a row interchange:\n", "\n", "$$A \\sim \\begin{bmatrix}1&5&0\\\\0&-6&-1\\\\0&-2&0\\end{bmatrix} \\sim \\begin{bmatrix}1&5&0\\\\0&-6&-1\\\\0&0&1/3\\end{bmatrix}.$$" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "Using this echelon form to compute the determinant yields $(-1)^0(1)(-6)(1/3) = -2,$ the same as before." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "skip" } }, "source": [ "``` {toggle}\n", "Question Time! Q17.2\n", "```" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "__Invertibility.__" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "The formula for the determinant shows that $A$ is invertible if and only if $\\det A$ is nonzero. " ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "We have __yet another__ part to add to the Invertible Matrix Theorem:" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "Let $A$ be an $n\\times n$ matrix. Then $A$ is invertible if and only if:\n", "\n", "1. The number 0 is _not_ an eigenvalue of $A$.\n", "2. The determinant of $A$ is _not_ zero." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "Some facts about determinants (proved in the book):\n", "\n", "1. $\\det AB = (\\det A) (\\det B).$\n", "1. $\\det A^T = \\det A.$\n", "1. If $A$ is triangular, then $\\det A$ is the product of the entries on the main diagonal of $A$." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "## The Characteristic Equation" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "So, $A$ is invertible if and only if $\\det A$ is not zero." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "To return to the question of how to compute eigenvalues of $A,$ recall that $\\lambda$ is an eigenvalue if and only if $(A-\\lambda I)$ is _not_ invertible." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "We capture this fact using the __characteristic equation:__\n", "\n", "$$\\det(A-\\lambda I) = 0.$$" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "We can conclude that $\\lambda$ is an eigenvalue of an $n\\times n$ matrix $A$ if and only if $\\lambda$ satisfies the characteristic equation $\\det(A-\\lambda I) = 0.$" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "__Example.__ Find the characteristic equation of \n", "\n", "$$A = \\begin{bmatrix}5&-2&6&-1\\\\0&3&-8&0\\\\0&0&5&4\\\\0&0&0&1\\end{bmatrix}$$" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "__Solution.__ Form $A - \\lambda I,$ and note that $\\det A$ is the product of the entries on the diagonal of $A,$ if $A$ is triangular." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "$$\\det(A-\\lambda I) = \\det\\begin{bmatrix}5-\\lambda&-2&6&-1\\\\0&3-\\lambda&-8&0\\\\0&0&5-\\lambda&4\\\\0&0&0&1-\\lambda\\end{bmatrix}$$" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "$$=(5-\\lambda)(3-\\lambda)(5-\\lambda)(1-\\lambda).$$" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "So the characteristic equation is:\n", "\n", "$$(\\lambda-5)^2(\\lambda-3)(\\lambda-1) = 0.$$" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "Expanding this out we get:\n", "\n", "$$\\lambda^4 - 14\\lambda^3 + 68 \\lambda^2 - 130\\lambda + 75 = 0.$$" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "Notice that, once again, $\\det(A-\\lambda I)$ is a polynomial in $\\lambda$." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "In fact, for any $n\\times n$ matrix, $\\det(A-\\lambda I)$ is a polynomial of degree $n$, called the __characteristic polynomial__ of $A$." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "We say that the eigenvalue 5 in this example has __multiplicity__ 2, because $(\\lambda -5)$ occures two times as a factor of the characteristic polynomial. In general, the mutiplicity of an eigenvalue $\\lambda$ is its multiplicity as a root of the characteristic equation." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "__Example.__ The characteristic polynomial of a $6\\times 6$ matrix is $\\lambda^6 - 4\\lambda^5 - 12\\lambda^4.$ Find the eigenvalues and their multiplicity." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "__Solution__ Factor the polynomial\n", "\n", "$$\\lambda^6 - 4\\lambda^5 - 12\\lambda^4 = \\lambda^4(\\lambda^2-4\\lambda-12) = \\lambda^4(\\lambda-6)(\\lambda+2)$$\n", "\n", "So the eigenvalues are 0 (with multiplicity 4), 6, and -2." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "Since the characteristic polynomial for an $n\\times n$ matrix has degree $n,$ the equation has $n$ roots, counting multiplicities -- provided complex numbers are allowed." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "Note that even for a real matrix, eigenvalues may sometimes be complex." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "__Practical Issues.__\n", "\n", "These facts show that there is, in principle, a way to find eigenvalues of any matrix. However, you need not compute eigenvalues for matrices larger than $2\\times 2$ by hand. For any matrix $3\\times 3$ or larger, you should use a computer." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "## Similarity\n", "\n", "An important concept for things that come later is the notion of __similar__ matrices." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "__Definition.__ If $A$ and $B$ are $n\\times n$ matrices, then $A$ __is similar to__ $B$ if there is an invertible matrix $P$ such that $P^{-1}AP = B,$ or, equivalently, $A = PBP^{-1}.$ " ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ " Similarity is symmetric, so if $A$ is similar to $B$, then $B$ is similar to $A$. Hence we just say that $A$ and $B$ __are similar.__\n", " \n", "Changing $A$ into $B$ is called a __similarity transformation.__" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "An important way to think of similarity between $A$ and $B$ is that they __have the same eigenvalues.__" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "__Theorem.__ If $n\\times n$ matrices $A$ and $B$ are similar, then they have the same characteristic polynomial, and hence the same eigenvalues (with the same multiplicities.)" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "__Proof.__ If $B = P^{-1}AP,$ then\n", "\n", "$$B - \\lambda I = P^{-1}AP - \\lambda P^{-1}P$$" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "$$ = P^{-1}(AP-\\lambda P)$$" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "$$ = P^{-1}(A-\\lambda I)P$$" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "Now let's construct the characteristic polynomial by taking the determinant:\n", "\n", "$$\\det(B-\\lambda I) = \\det[P^{-1}(A-\\lambda I)P]$$" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "Using the properties of determinants we discussed earlier, we compute:\n", "\n", "$$ = \\det(P^{-1})\\cdot\\det(A-\\lambda I)\\cdot\\det(P).$$" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "Since $\\det(P^{-1})\\cdot\\det(P) = \\det(P^{-1}P) = \\det I = 1,$ we can see that \n", "\n", "$$\\det(B-\\lambda I) = \\det(A - \\lambda I).$$" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "## Markov Chains\n", "\n", "Let's return to the problem of solving a Markov Chain. " ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "At this point, we can place the theory of Markov Chains into the broader context of eigenvalues and eigenvectors." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "__Theorem.__ The largest eigenvalue of a Markov Chain is 1." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "__Proof.__ First of all, it is obvious that 1 is __an__ eigenvalue of a Markov chain since we know that every Markov Chain $A$ has a steady-state vector $\\mathbf{v}$ such that $A\\mathbf{v} = \\mathbf{v}.$" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "To prove that 1 is the __largest__ eigenvalue, recall that each column of a Markov Chain sums to 1. " ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "Then, consider the sum of the values in the vector $A\\mathbf{x}$.\n", "\n", "$$A\\mathbf{x} = \\begin{bmatrix}a_{11}&\\dots &a_{1n}\\\\\\vdots&\\ddots&\\vdots\\\\a_{n1}&\\dots&a_{nn}\\end{bmatrix}\\begin{bmatrix}x_1\\\\\\vdots\\\\x_n\\end{bmatrix} = \\begin{bmatrix}a_{11}x_1 + \\dots + a_{1n}x_n\\\\\\vdots\\\\ a_{n1}x_1 + \\dots + a_{nn}x_n\\end{bmatrix}.$$" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "Let's just sum the first terms in each component of $A\\mathbf{x}$: \n", "\n", "$$ a_{11}x_1 + a_{21}x_1 + \\dots + a_{n1}x_1 = x_1 \\sum_i a_{i1} = x_1. $$" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "So we can see that the sum of all terms in $A\\mathbf{x}$ is equal to $x_1 + x_2 + \\dots + x_n$ -- i.e., the sum of all terms in $\\mathbf{x}$. \n", "\n", "So there can be no $\\lambda > 1$ such that $A\\mathbf{x} = \\lambda \\mathbf{x}.$" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "__A complete solution for the evolution of a Markov Chain.__" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "Previously, we were only able to ask about the \"eventual\" steady state of a Markov Chain. \n", "\n", "But a crucial question is: __how long does it take__ for a particular Markov Chain to reach steady state from some initial starting condition?" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "Let's use an example: we previously studied the Markov Chain defined by $A = \\begin{bmatrix}0.95&0.03\\\\0.05&0.97\\end{bmatrix}.$ " ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "Let's ask how long until it reaches steady state, from the starting point defined as $\\mathbf{x}_0 = \\begin{bmatrix}0.6\\\\0.4\\end{bmatrix}.$" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "Remember that $x_0$ is probability vector -- its entries are nonnegative and sum to 1." ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "hide_input": true, "slideshow": { "slide_type": "fragment" }, "tags": [ "hide-input" ] }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAsoAAAHXCAYAAAClNnyYAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8vihELAAAACXBIWXMAABYlAAAWJQFJUiTwAABetElEQVR4nO3deVxU1f/H8ddlERER933BXdRyN5cUl8K+LZr5tTKtzBYtzSVb9GtpWpmWpVmWpX0rbc/Ub6uSgqa4pVmm4hJKLr8UNRXFBYT7++MK48iACDPcAd7Px4NHzLl3znxmrtLbw7nnGKZpIiIiIiIiznzsLkBERERExBspKIuIiIiIuKCgLCIiIiLigoKyiIiIiIgLCsoiIiIiIi4oKIuIiIiIuKCgLCIiIiLigoKyiIiIiIgLCsoiIiIiIi4oKIuIiIiIuKCgLCIiIiLigoKyiIiIiIgLCsoiIiIiIi4oKIuIiIiIuOCxoGwYxr8Nw3jTMIxVhmEkGoZhGobx8VX2Uc4wjIcMw1hkGMafhmGcNQzjpGEYqw3DeNAwDAV9EREREfEIPw/2/SzQDDgNHAAa5aKPvsA7wN9ANLAPqATcAcwF/mUYRl/TNE23VCwiIiIicpHhqYxpGEZXrID8JxCOFXQ/MU1zwFX00Q0IAr43TTPtkvbKwAagBvBv0zS/dmftIiIiIiIem7pgmma0aZq78zLaa5pmlGma314aki+2HwJmX3zYJQ9lioiIiIi4VJDn+KZc/O8FW6sQERERkUKpQAZlwzD8gPsuPlxiZy0iIiIiUjh58mY+T5oCNAV+ME1zaU6fZBjGpiwOhQJLTNPs74baRERERKQQyEtQzvHc4+joaLp27Ur//v37A3kKozNnzgSgUaNGxMTE3Hw1dbRs2dJle2xsLGFhYfcA9+SlNhERERHxCMOOFy1QI8qzZs1ixIgRNG7cmOXLl1O2bNmrev6mTa4HlFu1auWO8kRERESkECkwc5RnzJjBsGHDaNq0KdHR0VSuXNnukkRERESkECsQQXnq1KmMGjWK5s2bEx0dTcWKFe0uSUREREQKOa8IyikpKezYsYO4uLhMx1544QXGjBlDq1atWL58OeXLl7ehQhEREREpajw2R3nx4sUsXrwYgEOHDgGwdu1aBg4cCED58uWZNm0aAAcPHiQsLIxatWoRHx+f0cdHH33E+PHj8fX1pVOnThk38l0qNDQ0o08REREREXfxWFD+7bff+Oijj5za9uzZw549ewCoVatWRlDOyt69ewFITU1lxowZLs8JDw9XUBYRERERtzPyssO0OwuxU/qqF1mtiiEiIiIitrJleTivmKMsIiIiIuJtFJRFRERERFxQUBYRERERcUFBWURERETEBQVlEREREREXFJRFRERERFxQUBYRERERcUFBWURERETEBQVlEREREREXFJRFRERERFxQUBYRERERcUFBWURERETEBQVlEREREREXFJRFRERERFxQUBYRERERcUFBWURERETEBQVlEREREREXFJRFRERERFxQUBYRERERcUFBWURERETEBQVlEREREREXFJRFRERERFxQUBYRERERcUFBWURERETEBQVlEREREREXFJRFRERERFxQUBYRERERcUFBWURERETEBQVlEREREREXFJRFRERERFxQUBYRERERcUFBWURERETEBQVlEREREREXFJRFRERERFxQUBYRERERcUFBWURERETEBQVlEREREREXFJRFRERERFxQUBYRERERcUFBWURERETEBQVlEREREREXFJRFRERERFxQUBYRERERcUFBWURERETEBQVlEREREREXFJRFRERERFxQUBYRERERcUFBWURERETEBQVlEREREREXFJRFRERERFxQUBYRERERcUFBWURERETEBY8F5QULFvD444/TqVMnSpUqhWEYDBgwIFd9HThwgEGDBlG1alUCAgIIDQ1l5MiRHD9+3M1Vi4iIiIhY/DzV8Ysvvsjvv/9OyZIlqV69Ojt27MhVP3FxcXTo0IGEhAR69epFo0aN2LBhA2+88QZLliwhJiaGcuXKubl6ERERESnqPDaiPH36dHbt2kViYiLvvPNOrvt57LHHSEhIYObMmSxevJgpU6YQFRXFqFGj2LlzJ+PGjXNj1SIiIiIiFo8F5a5du1K/fn0Mw8h1H3v27CEyMpLQ0FCGDh3qdGzixIkEBQUxf/58kpKS8lquiIiIiIgTr76ZLyoqCoCIiAh8fJxLDQ4OpmPHjpw5c4Z169bZUZ6IiIiIFGJeHZR37twJQIMGDVwer1+/PgC7du3K82slJkJsbJ67EREREZFCwmM387nDyZMnAQgJCXF5PL39xIkTOeqvVatWLtu3b99NSkp9mjeH8ePh6afB3/+qyxURERGRQsSrR5SvxDRNgDzNgwZISalEaiokJ8Ozz0Lr1rBpkzsqFBEREZGCyqtHlNNHjNNHli+XmJjodN6VbMoi/TZu3Iq//oIzZ6zHW7bAddfBk0/ChAkQGHiVhYuIiIhIgefVI8oNGzYEsp6DvHv3biDrOcw5FRgIjRrBtGmOUJyaClOnQrNm8PPPeepeRERERAogrw7KXbt2BSAyMpK0tDSnY6dOnSImJobAwEDatWvnltcbPdoaTe7SxdG2ezeEh8PQoVZ4FhEREZGiwSuCckpKCjt27CAuLs6pvW7dukRERBAfH8+sWbOcjk2YMIGkpCTuu+8+goKC3FZLvXqwfDm89x6UKuVoP3UKfH3d9jIiIiIi4uWM9BviciHbJy5evJjFixcDcOjQIZYuXUqdOnXo1KkTAOXLl2fatGkAxMfHU7t2bWrVqkV8fLxTP5dvYR0WFsb69euJjo6mQYMGrFmzJs9bWKevhnH5HOaDB+HRR2HdOmvpOO2ULSIiImKLvK3ckNsX9VRQfv7555k4cWKWxy8NxdkFZYD9+/czfvx4lixZwrFjx6hSpQq33347EyZMoGzZsrmtP0NWQRnANK3AXL26c/vJk7BsGdxxB+Rx0Q0RERERyV7hCsoFSXZBOStDhsC770KvXvD221C1qqeqExERESnybAnKXjFHuaD5+WcrJAP873/QuDG8/741+iwiIiIihYOCci40awaDBzsenzwJDz0EN9wAe/bYV5eIiIiIuI+Cci6EhMDs2RAdDXXrOtqjouCaa2D6dC0lJyIiIlLQKSjnQZcu1rrLTz4JPhc/yTNn4IknoGNH2LbN1vJEREREJA8UlPOoRAl49VVrCblrrnG0r18PLVrAr7/aV5uIiIiI5J6Cspu0aQMbN8KkSeDvb7V17AjNm9taloiIiIjkkoKyGxUrBs89B5s3Q9euMGeOY0qGiIiIiBQsinEe0KSJdWNfvXrO7Skp0KcPrFhhS1kiIiIichUUlPPRq6/CwoXWaPOQIdayciIiIiLinRSU88mZMzBzpuPxu+9aI8/ffWdfTSIiIiKSNQXlfFKihLUCRq9ejraDB+G22+Cee+DIEftqExEREZHMFJTzUdWqsGgRfPklVKzoaP/sM2sb7M8+0zbYIiIiIt5CQTmfGQb07Qvbt8O99zrajx61RpZ79oQDB+yrT0REREQsCso2KVcO5s2DH36AGjUc7d99B++/b19dIiIiImJRULbZv/4FW7fCY49Zj8PCYMwYe2sSEREREfCzuwCBUqVg1iy4+24oXhwCApyPHz8OwcHgp6slIiIikm80ouxFOnWytsK+lGlac5c7dIA//rCnLhEREZGiSEHZy82fD0uWwC+/QMuWMGECnD9vd1UiIiIihZ+Cspc7cQKKFbO+v3ABJk2CVq1g/XpbyxIREREp9BSUvdzw4fDbb9C+vaNt2zbr8RNPQFKSbaWJiIiIFGoKygVAWBisWmVtgR0UZLWZJkyfDtdcA8uX21ufiIiISGGkoFxA+PrC449bS8ndeKOjfe9euOEGePhhSE21rz4RERGRwkZBuYAJDYWlS+GDD6B0aUd7SooVpkVERETEPRSUCyDDgIEDITYW7rgDKlaE11+3uyoRERGRwkVBuQCrXBm+/tq62a9sWedjJ07A559bc5lFRERE5OopKBcCVapkbnv6aejXD269Ffbvz/+aRERERAo6BeVCaOVKmDPH+v6HH6BJE3jnHUhLs7cuERERkYJEQbkQatXKWiHDMKzHp07BY49B166we7e9tYmIiIgUFArKhVDJktaay6tWQcOGjvaff4Zrr4VXXrF2+RMRERGRrCkoF2IdO1o3+v3nP46l486dg2eegXbt4PffbS1PRERExKspKBdyxYvDSy/Bxo3QooWjfdMmaN3a+q+IiIiIZKagXEQ0bw7r18PLL0NAgNXWuTO0bGlrWSIiIiJeS0G5CPH3hzFjrCkXERHWyhjpN/yJiIiIiDMF5SKoYUNrG+w6dZzbk5OhZ0/46Sd76hIRERHxJgrKkmHqVPj2W2u0edAgOH7c7opERERE7KOgLACcOWNtSpLugw+gcWNYtMi+mkRERETspKAsAJQoAZs3w513OtoOHYI77oC+fa3vRbxFfHw8hmFgGAYDBw50S5+hoaEYhkFoaKhb+stOeu1dunTx+GuJiEju+dldgHiPSpXgiy+gXz949FFHOF6wAJYvhxkz4N57dQOguGZc8gfDNE0bK7F8+OGHxMfHA/D888/bWounbdu2jQ8//JDVq1eze/duTp48iZ+fH2XKlKF27dpcc801XHfdddx4441Ur1490/NPnDjBjBkzAGjevDm33357vtWefm1CQ0Pd9o8eERF3MfLwPzT7/0/oJq1atQJgkxYVznD8ODz1FLz/vnN7jx7w7rtQq5Y9dYn3ys+gHB8fT+3atQG4//77+fDDDzOd06VLF1auXJnjekJDQ/nrr7+oVatWRsD2lPTPKjw8nBUrVuS6n+TkZEaOHMns2bNz/Jlv376dsLAwp7acfJ6e4q7PQkQKPVuG6TSiLC6VKQNz58Ldd8PDD0N6bli6FD76CMaPt7U8KeJCQ0PdHsY9HY49oV+/fixcuBCwAmePHj3o1q0bNWrUwDAMjhw5wu+//050dDRxcXEApKam2lmyiEiBoqAs2brhBti6FZ59Ft54w7rB75ln7K5KRBYvXpwRksuWLcu3335Lhw4dsjz/999/57333qN48eL5VaKISIGnoCxXFBQE06dbN/oVK+bY2S/dsWNQqpS1oYmI5I9PPvkk4/uXXnop25AM0KxZM2bNmuXpskREChWteiE51r49XJzOncE0rZv/2ra1Vs0QycqKFSsyVntIv4Fr3759jB49mkaNGhEUFETp0qXp0KEDb7/9NhcuXMiyr+xWvejSpQuGYWTMTwbHKhOXfl1+g19OVr3Yt28fb731Fn379qVhw4aULFmSYsWKUbFiRbp06cLUqVM5efLk1X40ubJjx46M78PDw3PVR/rnmD4/GeCjjz5y+XldPjXlyJEjzJ07lwEDBtC0aVNKlSqFv78/5cuXp127djz33HMcyma5nPR+061cudLl62Y1b/n06dPMmDGDG2+8kapVqxIQEEDZsmVp06YN48eP58iRI7n6TERELqURZcmTjz5y7OTXpo11A+CECaDf7sqVLFmyhH79+nHixAmn9rVr17J27VoWL17Mt99+S8Dlv8KwyYoVK+jWrZvLudFHjhxh5cqVrFy5ktdee42FCxdy/fXXe7SeS+caHzlyJNMNep60Z88eGjRo4HK+87Fjxzh27Bjr169n+vTpzJs3jzvuuMOtr//jjz8ycOBAEhISnNqTk5PZuHEjGzduZMaMGXz88cf07NnTra8tIkWLgrLkyZkzVig+dw5SU2HKFFi40Fotw8M5QQqw3377jVdffRXTNBk8eDDt27cnICCAjRs3Mnv2bJKSkvjpp5946aWXmDRp0lX1/eKLL3L06FGeffZZtm3bBsAiFzvnNGrU6Kr6PXfuHKZp0qRJE7p27UpYWBjlypXj3Llz7N+/n8WLF7Np0yaOHDnCrbfeym+//ebRNZnr1q1LbGwsAG+99RadO3e+6j4qVqzIokWLSEhIYPDgwQB07dqV4cOHuzw3XXJyMqmpqdSpU4fu3bvTtGlTKlSoQFpaGvv27WPZsmVERUWRlJTE3XffzerVq2nbtq1Tf+nXpHfv3gA0adKEF198MdPrNm3a1Onx119/zV133UVqaiq+vr7ceuutdO/encqVK3Pq1Cmio6P54osvOHXqFL179+ann36iW7duV/3ZiIgA1rJJufwqNFq2bGm2bNnS7jIKrF27TLNzZ9O0JmI4voYONc3ERLurk/yCtWSkaf1YySw6OtrpnJo1a5q7du3KdN769etNPz8/EzDLlCljnjt3LtM5e/fuzejn/vvvd/l64eHh2dZzuVq1apmAWatWLZfH4+PjzS1btmTbx6effmr6+PiYgDlw4MAsz0uvKzw8PEe1ufLJJ584fZ7h4eHm559/bh47duyq+8rJ53mpY8eOmatXr872nKioKDMoKMgEzC5dumR53tV8Fvv27TNLlSplAmalSpXMDRs2uDxvw4YNZkhIiAmY1atXN5OTk6/Yt4h4vbxk1lx/aY6y5Fn9+hAdbW2BHRzsaJ81C5o2tZaUE7ncxx9/TP369TO1t23blrvuuguA48ePs2HDhvwuzaVatWpxzTXXZHtOv379GDBgAABffPEFKSkpHqvn7rvvplevXhmPV65cyd133025cuWoV68ed999N9OnT/fI+vBly5alY8eO2Z7TtWtXRo8eDVjTVvbv35/n13311VdJTEwE4KuvvqJNmzYuz2vTpg2vv/46AAcOHOCrr77K82uLSNGkoCxu4eMDQ4bAtm1w882O9n374Kab4P77rakZIgAtWrSgU6dOWR6/9Ffl27dvz4+S3CZ99YmzZ8+yZcsWj72Oj48PX3/9NS+++CIhISFOx+Li4vjiiy944oknaN26NfXq1ePdd9/N9zWUL12JI6//4DFNM2Olj7Zt22b75wfgrrvuws/Pml0YGRmZp9cWkaJLc5TFrWrUgO++g08/hREjrKXjAHx9rS8RgHbt2mV7vFq1ahnfHz9+3NPlXJX169fz8ccfs27dOvbs2cOpU6eyHDk+cOBAxs6fnuDr68u4ceMYMWIEixcvZunSpcTExLB3716n8+Li4hgyZAhff/01ixcvpkSJEm55/W3btvHRRx8RExOTsXV2cnKyy3MPHDiQ59f6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\n", "text/plain": [ "
" ] }, "metadata": { "image/png": { "height": 235, "width": 357 }, "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "ax = ut.plotSetup(-0.1,1.2,-0.1,1.2)\n", "ut.centerAxes(ax)\n", "A = np.array([[0.95,0.03],[0.05,0.97]])\n", "v1 = np.array([0.375,0.625])\n", "v2 = np.array([0.225,-0.225])\n", "x0 = v1 + v2\n", "#\n", "ax.plot([1,0],[0,1],'b--')\n", "ax.plot(x0[0],x0[1],'bo')\n", "ax.text(x0[0]+0.02,x0[1]+0.02,r'${\\bf x_0}$',size=16)\n", "#ax.text(A.dot(x0)[0]+0.2,A.dot(x0)[1]+0.2,r'$A{\\bf x_0}$',size=16)\n", "# ax.plot([-10,10],[5*10/6.0,-5*10/6.0],'b-')\n", "#\n", "ax.annotate('Initial State', xy=(x0[0], x0[1]), xycoords='data',\n", " xytext=(0.4, 0.8), textcoords='data',\n", " size=15,\n", " #bbox=dict(boxstyle=\"round\", fc=\"0.8\"),\n", " arrowprops={'arrowstyle': 'simple',\n", " 'fc': '0.5', \n", " 'ec': 'none',\n", " 'connectionstyle' : 'arc3,rad=-0.3'},\n", " );" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "Using the methods we studied today, we can find the characteristic equation:\n", " \n", "$$\\lambda^2 -1.92\\lambda +0.92 $$" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "Using the quadratic formula, we find the roots of this equation to be 1 and 0.92. (Note that, as expected, 1 is the largest eigenvalue.)" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "Next, using the methods in the previous lecture, we find a basis for each eigenspace of $A$ (each nullspace of $A-\\lambda I$). \n", "\n", "For $\\lambda = 1$, a corresponding eigenvector is $\\mathbf{v}_1 = \\begin{bmatrix}3\\\\5\\end{bmatrix}.$\n", "\n", "For $\\lambda = 0.92$, a corresponding eigenvector is $\\mathbf{v}_2 = \\begin{bmatrix}1\\\\-1\\end{bmatrix}.$" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "Next, we write $\\mathbf{x}_0$ as a linear combination of $\\mathbf{v}_1$ and $\\mathbf{v}_2.$ This can be done because $\\{\\mathbf{v}_1,\\mathbf{v}_2\\}$ is obviously a basis for $\\mathbb{R}^2.$" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "To write $\\mathbf{x}_0$ this way, we want to solve the vector equation \n", "\n", "$$c_1\\mathbf{v}_1 + c_2\\mathbf{v}_2 = \\mathbf{x}_0$$\n", "\n", "In other words:\n", "\n", "$$[\\mathbf{v}_1\\;\\mathbf{v}_2]\\begin{bmatrix}c_1\\\\c_2\\end{bmatrix} = \\mathbf{x}_0.$$" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "The matrix $[\\mathbf{v}_1\\;\\mathbf{v}_2]$ is invertible, so, \n", "\n", "$$\\begin{bmatrix}c_1\\\\c_2\\end{bmatrix} = [\\mathbf{v}_1\\;\\mathbf{v}_2]^{-1} \\mathbf{x}_0 = \\begin{bmatrix}3&1\\\\5&-1\\end{bmatrix}^{-1}\\begin{bmatrix}0.6\\\\0.4\\end{bmatrix}.$$" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "$$ = \\frac{1}{-8}\\begin{bmatrix}-1&-1\\\\-5&3\\end{bmatrix}\\begin{bmatrix}0.6\\\\0.4\\end{bmatrix} = \\begin{bmatrix}0.125\\\\0.225\\end{bmatrix}.$$" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "So, now we can put it all together.\n", "\n", "We know that \n", "\n", "$$\\mathbf{x}_0 = c_1\\mathbf{v}_1 + c_2\\mathbf{v}_2$$\n", "\n", "and we know the values of $c_1, c_2$ that make this true." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "So let's compute each $\\mathbf{x}_k$:\n", "\n", "$$\\mathbf{x}_1 = A\\mathbf{x}_0 = c_1A\\mathbf{v}_1 + c_2A\\mathbf{v}_2$$" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "$$ = c_1\\mathbf{v}_1 + c_2(0.92)\\mathbf{v}_2.$$" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "Now note the power of the eigenvalue approach:\n", "\n", "$$\\mathbf{x}_2 = A\\mathbf{x}_1 = c_1A\\mathbf{v}_1 + c_2(0.92)A\\mathbf{v}_2$$" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "$$=c_1\\mathbf{v}_2 + c_2(0.92)^2\\mathbf{v}_2.$$" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "And so in general:\n", "$$\\mathbf{x}_k = c_1\\mathbf{v}_1 + c_2(0.92)^k\\mathbf{v}_2\\;\\;\\;(k = 0, 1, 2, \\dots)$$" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "And using the $c_1$ and $c_2$ and $\\mathbf{v}_1,$ $\\mathbf{v}_2$ we computed above:" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "$$\\mathbf{x}_k = 0.125\\begin{bmatrix}3\\\\5\\end{bmatrix} + 0.225(0.92)^k\\begin{bmatrix}1\\\\-1\\end{bmatrix}\\;\\;\\;(k = 0, 1, 2, \\dots)$$" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "This explicit formula for $\\mathbf{x}_k$ gives the solution of the Markov Chain $\\mathbf{x}_{k+1} = A\\mathbf{x}_k$ starting from the initial state $\\mathbf{x}_0$." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In other words:\n", " $$\\mathbf{x}_0 = 0.125\\begin{bmatrix}3\\\\5\\end{bmatrix} + 0.225\\begin{bmatrix}1\\\\-1\\end{bmatrix}$$ \n", " $$\\mathbf{x}_1 = 0.125\\begin{bmatrix}3\\\\5\\end{bmatrix} + 0.207\\begin{bmatrix}1\\\\-1\\end{bmatrix}$$ \n", " $$\\mathbf{x}_2 = 0.125\\begin{bmatrix}3\\\\5\\end{bmatrix} + 0.190\\begin{bmatrix}1\\\\-1\\end{bmatrix}$$ \n", " $$\\mathbf{x}_3 = 0.125\\begin{bmatrix}3\\\\5\\end{bmatrix} + 0.175\\begin{bmatrix}1\\\\-1\\end{bmatrix}$$ \n", " $$ ... $$ \n", " $$\\mathbf{x}_\\infty = 0.125\\begin{bmatrix}3\\\\5\\end{bmatrix}$$" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "As $k\\rightarrow\\infty$, $(0.92)^k\\rightarrow0$. " ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "Thus $\\mathbf{x}_k \\rightarrow 0.125\\mathbf{v}_1 = \\begin{bmatrix}0.375\\\\0.625\\end{bmatrix}.$" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "hide_input": true, "slideshow": { "slide_type": "fragment" }, "tags": [ "hide-input" ] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAsoAAAHXCAYAAAClNnyYAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8vihELAAAACXBIWXMAABYlAAAWJQFJUiTwAACJUUlEQVR4nOzdd3hU1dbH8e+kBxJKQm8JoYYivXdRUFEQsBdEBOGKIljxoqAoWC4qoqgIvChFRRFQQQGBgPQmRToEQofQQiAEUua8fwyZZMhMEpKZTMrv8zzzkNn7zD5r5kBY2Vlnb5NhGIiIiIiIiC0PdwcgIiIiIpIXKVEWEREREbFDibKIiIiIiB1KlEVERERE7FCiLCIiIiJihxJlERERERE7lCiLiIiIiNihRFlERERExA4lyiIiIiIidihRFhERERGxQ4myiIiIiIgdSpRFREREROxQoiwiIiIiYocSZRERERERO1yWKJtMpgdMJtPnJpNplclkijWZTIbJZJp5i2MEm0ym/iaTaZ7JZDpoMpniTSbTJZPJtNpkMj1jMpmU6IuIiIiIS3i5cOw3gQbAFeA4UDsbYzwIfAWcAiKAo0BZoBcwBbjbZDI9aBiG4ZSIRURERERuMLkqxzSZTJ2wJMgHgQ5YEt1ZhmE8cQtj3A4UBRYahmFO014O2AhUBh4wDOMXZ8YuIiIiIuKy0gXDMCIMwziQk9lewzCWG4bxe9ok+Ub7aeDrG0875iBMERERERG78nONb+KNP5PcGoWIiIiIFEj5MlE2mUxeQJ8bTxe5MxYRERERKZhceTOfK30A1AP+MAxjcVZfZDKZtjjoCgUWGYbxuBNiExEREZECICeJcpZrjyMiIujUqROPP/7440COktEJEyYAULt2bdasWXPPrcTRuHFju+179uwhPDz8MeCxnMQmIiIiIi5hcsdJ89WM8sSJE3nxxRepU6cOy5YtIygo6JZev2WL/QnlJk2aOCM8ERERESlA8k2N8vjx43n++eepV68eERERlCtXzt0hiYiIiEgBli8S5Q8//JBhw4bRsGFDIiIiKFOmjLtDEhEREZECLk8kyomJiezdu5fIyMh0fe+++y7Dhw+nSZMmLFu2jFKlSrkhQhEREREpbFxWozx//nzmz58PwOnTpwFYt24dffv2BaBUqVKMGzcOgBMnThAeHk5ISAhRUVHWMb777jtGjhyJp6cn7dq1s97Il1ZoaKh1TBERERERZ3FZorxt2za+++47m7ZDhw5x6NAhAEJCQqyJsiOHDx8GIDk5mfHjx9s9pkOHDkqURURERMTpTDnZYdqZgbhTyqoXjlbFEBERERG3csvycHmiRllEREREJK9RoiwiIiIiYocSZRERERERO5Qoi4iIiIjYoURZRERERMQOJcoiIiIiInYoURYRERERsUOJsoiIiIiIHUqURURERETsUKIsIiIiImKHEmURERERETuUKIuIiIiI2KFEWURERETEDiXKIiIiIiJ2KFEWEREREbFDibKIiIiIiB1KlEVERERE7FCiLCIiIiJihxJlERERERE7lCiLiIiIiNihRFlERERExA4lyiIiIiIidihRFhERERGxQ4myiIiIiIgdSpRFREREROxQoiwiIiIiYocSZRERERERO5Qoi4iIiIjYoURZRERERMQOJcoiIiIiInYoURYRERERsUOJsoiIiIiIHUqURURERETsUKIsIiIiImKHEmURERERETuUKIuIiIiI2KFEWURERETEDiXKIiIiIiJ2KFEWEREREbFDibKIiIiIiB1KlEVERERE7FCiLCIiIiJihxJlERERERE7lCiLiIiIiNihRFlERERExA4lyiIiIiIidihRFhERERGxQ4myiIiIiIgdSpRFREREROxQoiwiIiIiYocSZRERERERO5Qoi4iIiIjY4bJEec6cObzwwgu0a9eOYsWKYTKZeOKJJ7I11vHjx+nXrx8VKlTA19eX0NBQhg4dysWLF50ctYiIiIiIhZerBn7vvffYvn07AQEBVKpUib1792ZrnMjISFq3bk10dDQ9evSgdu3abNy4kc8++4xFixaxZs0agoODnRy9iIiIiBR2LptR/vTTT9m/fz+xsbF89dVX2R7nueeeIzo6mgkTJjB//nw++OADli9fzrBhw9i3bx8jRoxwYtQiIiIiIhYuS5Q7depEjRo1MJlM2R7j0KFDLFmyhNDQUAYPHmzT984771C0aFFmzJhBXFxcTsMVEREREbGRp2/mW758OQBdunTBw8M21MDAQNq0acPVq1dZv369O8ITERERkQIsTyfK+/btA6BmzZp2+2vUqAHA/v37c3yu2FjYsyfHw4iIiIhIAeGym/mc4dKlSwAUL17cbn9Ke0xMTJbGa9Kkid323bsPkJhY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NmjdOrV9927L802b3BaaiF1+fn40aNDAbt+WLVtITEzM5YhERPIvJcoiWVC7NqxaBZ9/DkWLWtq6dIGmTd0bl4g9zZs3t9seHx/Pzp07czkaEZH8S4mySBZ5eMDzz8OuXdCzJ0yaZNm8RCSvKVWqlMPd+jZu3Kil4kREskiJssgtCgmxbIMdEmLbfv063HknzJ/vlrBEbDiaVT59+jTHjh3L5WhERPInJcoiTjJ2LCxdapltfvhhOHPG3RFJYVajRg1Klixpt09LxYmIZI0SZREniI9P3aQE4KefoE4dmDED9FtucQeTyeRwVnn37t3ExsbmckQiIvmPEmURJ/D3t6yM8fTTqW0XLkCfPtCtG2hTNHGHhg0b4u3tna5dS8WJiGSNEmURJylZEv7v/2DxYtv65T//hLp14csvwWx2X3xS+GS2VJxZfyFFRDKkRFnEybp0gZ07YciQ1FUxrlyBwYOhY0fYv9+t4Ukh46j84urVqxzVrzpERDKkRFnEBQIC4LPPYPVqyxrMKVatstQvi+SW0qVLExoaardv7969uRuMiEg+o0RZxIVat4atW2HECPDygttug9dec3dUOTdnzhxMJlO6x4oVKzJ83eTJk+2+7p9//smdwAup8PBwu+179+7VmsoiIhlQoiziYn5+8N57lu2up08HHx/b/jNn4No198SWXd27d6dUqVLp2r///vsMX/fDDz+ka2vQoAGNGzd2WmySXq1atey2X7p0iTNax1BExCElyiK5pGFDuPm+KsOARx+FRo1g7Vq3hJUtPj4+PP744+naf/nlFxISEuy+5uTJk6xcuTJde79+/Zwen9gqXrw4FSpUsNun8gsREceUKIu40ZQpEBEBe/dC27aWGwCvXHF3VFljL8G9cOECixcvtnv87Nmz062y4CjhFudzNKusRFlExDElyiJu5OVlufEPLLPLn38O9erBkiXujSsrbrvtNpo0aZKu3VH5hb32Hj16EBwc7PTYJL3aae8qTePMmTNcvHgxl6MREckflCiLuNHTT8OuXXDXXaltR45A166WvryevzyddoeVG3777Tfi4uJs2g4ePGh3gwuVXeSe0qVLExQUZLdv3759uRyNiEj+oERZxM2qVIE//rDc6Jc2j/n2W8s22HPnui20TD322GP4+fnZtF29epX58+fbtNm7ia9SpUp06dIlXfvx48f5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fHz44YcfKFKkSIbx7Nmzh0GDBlG9enWKFClC8eLFadSoESNHjuTiRfeuBCIikhHVKIu4gKPZ5FKlStn8mlvyj7CwMMLCwoiOjubQoUNcv36dxC3nKXvWP8Oa5BQmk4no+KPEJp6z2398907WzNmAb5EyePt5Ual2SYIrZD6uPcWLF8fb25vExEROnDjhsFbe29ubqlXtl4q8++67LF++nE2bNjk8zwcffEDDhg0zjGXSpEm88MILJCambvcdHx/Ptm3b2LZtG19//TV//vknTZo0yfyNiYjkMiXKIk5mNpvZuXOn3b769eur7CKfK1OmDGXKlAHgWsWLnJtq/1rfzDDM7IpZm+ExmxeswsuvsfV5hRolaNotlMq1My7nuJnJZKJ06dKcPHkyw+MCAwM5d+4cZcuWTff30tvbm1mzZlGnTh2726+3a9eOoUOHZjj+woUL+c9//mOdTQcoWrQoiYmJ1k14zp49S5cuXdi1axflyjl3QxYRkZxS6YWIkx09epTLly/b7atXr14uRyOu5Fe9JCV71bDuyHezlATRMMxsOreI6GuZLAln2NYvnzwQw++fbWP3mowTXnuCg4MzPebChQtMmjSJzz//nL/++ivdzPPSpUvtJslg+a2Jo+2wAZKTk3n++edtkuQPPviA2NhYzp8/T+/evW3i0PrLIpIXKVEWcTJHaydXqlSJoKBbmxmUvK9os3KUeqYePlWLp+tLKbdYcfonDl+xX45j+wKfdE2GAStm7uXY3gt2XuBYsWLFsnzsxYsXWbt2LadPn7a27dmzh5dfftnha2JiYnjiiSdITk62279kyRKioqKsz8PDw3n99dfx8PAgICCAzz//3OaGwR9//JGYmJgsxywikhuUKIs4UVJSEnv27LHbp9nkgsuveknKDLyNssMaU/y+MLxaFOef80v58/hUIk7/kPlM8g0e3lXsthsGbF4YdUsxFS+ePnHPSPfu3a11wtevX+fRRx91uKtkilWrVjncsvqvv/6yed6pUyeb5+XLl7e5kfDatWusXr36lmIWEXE1JcoiTnTw4EGuXbuWrt1kMlG3bl03RCS5ybtsUQLbVKRcz9uIr3jd4Y179pi8KuHhWcph/8kDMZxet5sL02dw7quvuDB9BtcdrI0Mt5Yo9+jRg0aNGlmfv/baa2zfvt3mGG9vb+677750rx09ejTr1q1L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\n", "text/plain": [ "
" ] }, "metadata": { "image/png": { "height": 235, "width": 357 }, "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "ax = ut.plotSetup(-0.1,1.2,-0.1,1.2)\n", "ut.centerAxes(ax)\n", "A = np.array([[0.95,0.03],[0.05,0.97]])\n", "v1 = np.array([0.375,0.625])\n", "v2 = np.array([0.225,-0.225])\n", "x0 = v1 + v2\n", "#\n", "ax.plot([1,0],[0,1],'b--')\n", "ax.text(v1[0]+0.02,v1[1]+0.02,r'${\\bf v_1}$',size=16)\n", "ax.plot(x0[0],x0[1],'bo')\n", "v = np.zeros((40,2))\n", "for i in range(40):\n", " v[i] = v1+(0.92**i)*v2\n", " ax.plot(v[i,0],v[i,1],'o')\n", "ax.text(v[4][0]+0.02,v[4][1]+0.02,r'${\\bf x_4}$',size=12)\n", "ax.text(v[10][0]+0.02,v[10][1]+0.02,r'${\\bf x_{10}}$',size=12)\n", "ax.text(x0[0]+0.02,x0[1]+0.02,r'${\\bf x_0}$',size=16)\n", "ax.plot(v1[0],v1[1],'ro')\n", "#ax.text(A.dot(x0)[0]+0.2,A.dot(x0)[1]+0.2,r'$A{\\bf x_0}$',size=16)\n", "# ax.plot([-10,10],[5*10/6.0,-5*10/6.0],'b-')\n", "#\n", "ax.annotate('Steady State', xy=(v1[0], v1[1]), xycoords='data',\n", " xytext=(0.1, 0.2), textcoords='data',\n", " size=15,\n", " #bbox=dict(boxstyle=\"round\", fc=\"0.8\"),\n", " arrowprops={'arrowstyle': 'simple',\n", " 'fc': '0.5', \n", " 'ec': 'none',\n", " 'connectionstyle' : 'arc3,rad=-0.3'},\n", " )\n", "ax.annotate('Initial State', xy=(v[0,0], v[0,1]), xycoords='data',\n", " xytext=(0.4, 0.8), textcoords='data',\n", " size=15,\n", " #bbox=dict(boxstyle=\"round\", fc=\"0.8\"),\n", " arrowprops={'arrowstyle': 'simple',\n", " 'fc': '0.5', \n", " 'ec': 'none',\n", " 'connectionstyle' : 'arc3,rad=-0.3'},\n", " )\n", "print('')" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "celltoolbar": "Tags", "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.8.5" } }, "nbformat": 4, "nbformat_minor": 1 }