{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "## Eigenvalues and Eigenvectors with PSD matrices\n", "We will explore the explore the relationship between PSD matrices and its interaction on its eigenvectors as well as non-eigenvectors" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "from numpy import linalg as LA\n", "import matplotlib.pyplot as plt\n", "import numpy as np" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let us consider a positive semi definite matrix $$A = \\begin{bmatrix} 2 & 0 \\\\ 0 & 3 \\end{bmatrix}$$\n", "We will compute their eigenvalues and corresponding eigenvectors." ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "lambda_1: 2.0, v_1: [1. 0.]\n", "lambda_2: 3.0, v_2: [0. 1.]\n" ] } ], "source": [ "A = np.array([[2,0],[0,3]])\n", "eigenvalues, eigenvectors = LA.eig(A)\n", "print('lambda_1: {}, v_1: {}'.format(eigenvalues[0], eigenvectors[:, 0]))\n", "print('lambda_2: {}, v_2: {}'.format(eigenvalues[1], eigenvectors[:, 1]))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "To show that these eigenvectors are orthogonal, we will compute their dot product to show that!" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.0" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "np.dot(eigenvectors[:, 0], eigenvectors[:, 1])" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "#Defining our plotting function\n", "def plot(x_comp, y_comp, colors, x_lim, y_lim, x_label, y_label, title, labels, offsets={}):\n", " plt.figure(figsize=(10,10))\n", " ax = plt.gca()\n", " origins = [0 for i in range(len(x_comp))]\n", " ax.quiver(origins, origins, x_comp, y_comp, color=colors, angles='xy', scale_units='xy', scale=1)\n", " ax.set_xlim(x_lim)\n", " ax.set_ylim(y_lim)\n", " ax.set_aspect('equal')\n", " ax.set_xlabel(x_label)\n", " ax.set_ylabel(y_label)\n", " ax.set_title(title)\n", " \n", " if len(labels) != len(colors):\n", " raise ValueError('len(labels) {} should equal len(colors) {}'.format(len(labels), len(colors)))\n", " for i, label in enumerate(labels):\n", " if i in offsets:\n", " plt.text(x_comp[i] + offsets[i][0], y_comp[i] + offsets[i][1], label, fontsize=20)\n", " else:\n", " plt.text(x_comp[i], y_comp[i], label, fontsize=20)\n", " \n", " plt.draw()\n", " plt.show()" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "image/png": "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ygAAOiDKAAA6IMoAADogygAAOiDKAAA6IMoAADogygAAOiDKAAA6IMoAADogygAAOiDKAAA6IMoAADogygAAOiDKAAA6IMoAADogygAAOiDKAAA6IMoAADogygAAOiDKAAA6IMoAADogygAAOiDKAAA6IMoAADogygAAOiDKAAA6IMoAADogygAAOiDKAAA6IMoAADogygAAOiDKAAA6IMoAADogygAAOiDKAAA6IMoAADogygAAOiDKAAA6IMoAADogygAAOiDKAAA6IMoAADogygAAOiDKAAA6IMoAADogygAAOiDKAGCBOOuss1JVectb3jLp/evWrcuSJUty0EEHpbU24ukQZQCwQBxwwAFJkmuuuWbS+1/1qlflrrvuyjnnnJOqGuVoRJQBwIKx//77J0nWrFlzv/suv/zyXHjhhTnuuONy8MEHj3o0IsoAYMHYfffds8MOO9wvylprOe2007JkyZKcffbZY5oOUQYAC8j++++fW2+9NevXr7/3thUrVuSKK67Iqaeemj322CNJ8ulPfzpHH310dtttt1RVzj///PEMvICIMgDoSWvJKackZ5+dXHvt4Pos2nhc2catZT/60Y9yxhlnZOedd84ZZ5xx73J33HFH9ttvv7zpTW/Kwx/+8FmdgcmJMgDoSVVy6KHJ6acn++6bPPGJyamnJp/8ZHLXXQ/66TceV7bxYP9zzz03119/ff70T/80S5cuvXe5I488MmeeeWaOPfbYPOQhcmEUrGUA6M1RRyVPecrg8rp1yZvelBx2WLLTTslxxyUXXJDccssDeuqJn8C8+eabc9ZZZ2W//fbLiSeeOFvT8wBNO8qq6rCqemdVHTi8ftJsDVFVz66qL1fV2qo6fZL7l1TVB4f3/3tV7TFbrw0A3alK/viP73/7bbclf/d3yYtfnOyyS/LLvzzj3Zz77rtvFi1alDVr1mT58uW57bbb8sY3vjGLFi2a3b+BGVs8g2VfkeSlSV5TVTskOXA2BqiqRUneluSwJOuTfK6qVrbWrp2w2IlJvttae2JVHZ/k7CQvmI3XB5jSC16QPPzqcU/BQrWlyLrnnuTyywc/p5+e7Lln8tznDray/eqvJg972KQP22abbbL33nvn6quvzpVXXpnnPOc5Oeyww+bgD2CmZhJlG1prtyb5w6p6fZKnztIMByVZ21pblyRV9YEkxySZ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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "x_comp = eigenvectors[0, :]\n", "y_comp = eigenvectors[1, :]\n", "labels = ['$v_1$', '$v_2$']\n", "plot(x_comp, y_comp, ['r','b'], [-1.5,1.5], [-1.5,1.5], '$x_1$', '$x_2$', 'Plot of eigenvectors', labels)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Since we know the vectors are orthogonal, we will now explore their effect on PSD matrix A" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Note that in the above example, the blue vector corresponds to $$\\begin{bmatrix}0 && 1\\end{bmatrix}^T$$ with $\\lambda = 3.0$, and the red vector corresponds to $$\\begin{bmatrix}1 && 0\\end{bmatrix}^T$$ with eigenvalue of $\\lambda = 2.0$. Notice how geometrically we can see that they are orthonogonal with each other." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let us see, geometrically, what happens when we multiply the eigenvectors of A with A." ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[1. 0. 2. 0.]\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "transformed_vectors = np.array([np.dot(A, eigenvectors[:, 0]), np.dot(A, eigenvectors[:, 1])])\n", "x_comp = np.append(eigenvectors[0, :], transformed_vectors[:, 0])\n", "y_comp = np.append(eigenvectors[1, :], transformed_vectors[:, 1])\n", "print(x_comp)\n", "labels += ['$\\lambda_1 v_1$', '$\\lambda_2 v_2$']\n", "offsets = {0: (-0.1,-0.2), 2: (-0.2, -0.2), 3: (0.1, -0.1)}\n", "plot(x_comp, y_comp, ['r','b','g','y'], [-1, 3.5], [-1, 3.5], '$x_1$', '$x_2$', 'Plot of eigenvectors scaled by $\\lambda$', labels, offsets)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "To interpret this plot, we will use this equation to explain the observation. \n", "\n", "$$Ax = \\lambda x$$\n", "\n", "Let us start with the red arrow, which is the same arrow from the previous plot. This corresponds to the eigenvector \n", "\n", "$$\\begin{bmatrix}1 && 0\\end{bmatrix}^T$$\n", "\n", "We will denote this vector as $V_1$ and its corresponding $\\lambda_1$ to be the eigenvalue of that vector. Note that the operation $Ax$ resulted in the green arrow, which is the same as $ 2 * V_1 $.\n", "\n", "Similarly, for the yellow arrow which is denoted by the eigenvector \n", "\n", "$$\\begin{bmatrix}0 && 1\\end{bmatrix}^T$$\n", "\n", "it was \"stretched\" by a factor which is equivalent to its eigenvalue of 3\n", "\n", "However, we must note that eigenvectors are special vectors that only gets stretched when transformed by A, there are many more vectors that do not have the same effect as the eigenvectors. We will use \n", "\n", "$$z = \\begin{bmatrix}0.987 && 0.665\\end{bmatrix}^T$$\n", "\n", "to demonstrate our point." ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "z_trans [1.974 1.995]\n" ] }, { "data": { "image/png": "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RrmUCgD8H4UMASGzhYyn9rsnOjpabdu29ShjL774okaPHu1OKAAIEBQy+L0jR6QNG66/bt8+acsW7+eBp5iYGLVp00YX0t3IN3ToUI0ZM0aGDx8FgGuikMHvpX2kRaFCntsLFvz/31/rnZjwji+++EKtW7fW+fPnHfPBgwdr7NixlDEAyAQKGfze0qUpRWzUKGnPHs/ta9ZI48dLJUtyH5mvffXVV2rVqpVHGRs4cKBeffVVyhgAZBKFDH4tOVlq1CiliI0eLRUt6rkmXz5p0CDpjz+kTp0yfngsst/XX3+tli1b6ly6f+DPPfecxo8fTxkDgCwIcTsAcC1BQSllKzPy55eef967eZDim2++UcuWLXX27FnH/Nlnn9WECRMoYwCQRZwhA5Al3377rVq0aKEzZ8445v369dPEiRMpYwBwAyhkADJtw4YNat68ueLj4x3zPn366M0336SMAcANopAByJSNGzeqWbNmiouLc8x79+6tt956izIGADeBQgbgujZt2qSmTZvq9OnTjvmTTz6pd955R0FB/CoBgJvBb1EA1/Tjjz+qSZMmOnXqlGP+xBNPaOrUqZQxAMgG/CYFcFU///yzmjRpopMnTzrmPXr00LvvvksZA4Bswm9TABnavHmzoqKidOLECce8e/fumj59OmUMALIRv1EBeNi6dauioqIUGxvrmD/66KOaMWOGgoODXUoGADkThQyAw7Zt2xQZGanjx4875l26dNHMmTMpYwDgBRQyAFds375dkZGROnbsmGPeuXNnffjhhwoJ8f2HezRq1EjGmKt+/f3vf/d5JgDIbnx0EgBJ0s6dOxUZGamjR4865g899JA++ugjV8qYJLVv315Nmzb1mM+YMUP79u1TRESEC6kAIHtRyADo119/VUREhI4cOeKYd+jQQXPmzHGtjEnSoAw+zPSFF17Qvn371LNnT40cOdKFVACQvbhkCeRyv/32myIiInT48GHH/MEHH9TcuXMVGhrqUjJP1lo988wzeu2119S3b1+9//77vNsTQI7AbzIgF9u1a5ciIiJ06NAhx7xt27b6+OOPlSdPHpeSeUpKSlLPnj31zjvvaPDgwXxcE4AchUIG5FK7d+9WRESEDh486Ji3bt1a8+fP96sylpCQoC5duuiDDz7Q6NGjNW7cOLcjAUC24h4yIBfas2ePIiIitH//fse8ZcuW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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "z = np.array([0.987, 0.665])\n", "x_comp = np.append(x_comp, z[0])\n", "y_comp = np.append(y_comp, z[1])\n", "z_trans = np.dot(A, z)\n", "print('z_trans', z_trans)\n", "x_comp = np.append(x_comp, z_trans[0])\n", "y_comp = np.append(y_comp, z_trans[1])\n", "labels += ['$z$', '$Az$']\n", "plot(x_comp, y_comp, ['r','b','g','y','c','k'], [-1,3.5], [-1,3.5], '$x_1$', '$x_2$', 'plot of $z$ and $Az$', labels, offsets)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "As we can see here, the cyan vector was $\\begin{bmatrix}0.987 && 0.665\\end{bmatrix}^T$, and the black vector was the cyan vector after transformation by the matrix A. " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Interaction between eigenbasis and the non-eigenvectors component\n", "Now we will project the cyan vector down into the eigenbases, ie: the red and blue vector and see the transformation/\"stretches\" of the projected vector by PSD matrix A, and then reform the the black vector from the addition of those components. We know that in this case the projection of the cyan vector onto the component of the green eigenbasis is the same as projecting to the x-axis, and similarly with the y-component to the y-axis." ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "x_comp = eigenvectors[0, :]\n", "y_comp = eigenvectors[1, :]\n", "\n", "z_transX = np.array([z[0], 0])\n", "z_transY = np.array([0, z[1]])\n", "\n", "x_comp = np.append(x_comp, z_transX[0])\n", "x_comp = np.append(x_comp, z_transY[0])\n", "y_comp = np.append(y_comp, z_transX[1])\n", "y_comp = np.append(y_comp, z_transY[1])\n", "x_comp = np.append(x_comp, z[0])\n", "y_comp = np.append(y_comp, z[1])\n", "\n", "labels = ['$v_1$', '$v_2$', '$v_1$ comp of $z$', '$v_2$ comp of $z$', '$z$']\n", "offsets = {0: (-0.1, -0.2), 2: (-0.2, 0.2), 3: (-0.9, -0.1)}\n", "\n", "plot(x_comp, y_comp, ['r','b','g','m', 'c'], [-1,2.5], [-1,2.5], '$x_1$', '$x_2$', 'plot of components', labels, offsets)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now, we will see the scaling of the projected components of the cyan vector by let it be transformed by the PSD matrix, and note that this is equivalent ot scaling the components of the cyan vector since $$Ax = \\lambda x$$, and now the components which was projected down into the eigenbasis now is in the span of the eigenbasis. Therefore, we know for the green component vector, which corresponds to the eigenvalue of 2 and the magenta vector which corresponds to the eigen value of 3. We will now show the scaling on a plot." ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "image/png": "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xIfAL04AUoCnIj1pxwDPu/srZnYPkOHuLwM3m9ko4DAFdzufGFi0IiIiIgGJu6HSmqKhUhEREQmL0AyVioiIiEhslLiJiIiIhIQSNxEREZGQUOImIiIiEhJK3ERERERCQombiIiISEgocRMREREJCSVuIiIiIiGhxE1EREQkJJS4iYiIiISEEjcRERGRkFDiJiIiIhISStxEREREQkKJm4iIiEhIKHETERERCQklbiIiIiIhocRNREREJCSUuImIiIiEhBI3ERERkZBQ4iYiIiISEkrcREREREJCiZuIiIhISChxExEREQkJJW4iIiIiIaHETURERCQklLiJiIiIhETgiZuZJZvZh2a2yszWmtkvo9RJMrM/m9lGM/vAzLrVfaQiIiIiwQo8cQMOABe4ez+gP3CJmZ1Zqs41wDfufiIwC7i/jmMUERERCVzgiZsXyI18bBR5ealqo4GnIu9fAC40M6ujEEVERETiQuCJG4CZJZjZSmAXsMjdPyhVpROwFcDdDwPfAm3qNkoRERGRYMVF4ubuR9y9P9AZGGhmqaWqROtdK90rh5lNMrMMM8v46quvaiNUERERkcDEReJWyN2zgbeBS0oVbQO6AJhZItAC2BNl/kfcfYC7D2jXrl0tRysiIiJStwJP3MysnZm1jLxvDFwEfFqq2svAhMj7scBb7l6mx01ERESkPksMOgAgBXjKzBIoSCSfd/dXzOweIMPdXwYeA542s40U9LSNDy5cERERkWAEnri5+2ogLcr0u4u93w/8sC7jEhEREYk3gQ+VioiIiEhslLiJiIiIhIQSNxEREZGQUOImIiIiEhJK3ERERERCQombiIiISEgocRMREREJCSVuIiIiIiGhxE1EREQkJJS4iYiIiISEEjcRERGRkFDiJiIiIhISStxEREREQkKJm4iIiEhIKHETERERCQklbiIiIiIhocRNREREJCSUuImIiIiEhBI3ERERkZBQ4iYiIiISEkrcREREREJCiZuIiIhISChxExEREQkJJW4iIiIiIaHETURERCQklLiJiIiIhETgiZuZdTGzJWa23szWmtnkKHWGmNm3ZrYy8ro7iFhFREREgpQYdADAYeBWd880s2bAR2a2yN3Xlar3nruPCCA+ERERkbgQeI+bu+9w98zI+73AeqBTsFGJiIiIxJ/AE7fizKwbkAZ8EKX4LDNb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ySefTEZGBllZWeV+ye7du5f8/HxatWpVYnpKSgrt2rVjw4YN5a73aNpGeeuNRm2jdrelqsf5hg0bcHf69+9/VOsVkVoSy3hqGF+xnuOWl5fnCQkJfvrppxedQ/Tmm29WOE+TJk2qfI5b8Svn1q5dW6a8+HlE77//ftHJ1Lt27SqafvjwYR89enSZq+MKz7sp7yR3wM8777yoZccff7wff/zxJabFcuVcixYtYrpyrqrb4l7183gmT55c6Tk7K1ascKDoKsrs7Gw/++yzPSEhwZ966qmY11XX3nvvPT/mmGN85MiRZcoKT25/6aWXyp3/hz/8offv37/MOX/u7mPGjKnwHKvqtI1Y1ltabbYN95ptH2FrG9U5zh9//HEH/KGHHop5PSJy9IjxHLcG3+OWnJxMz549Wb16NZmZmVx22WVR73d0tPr06cPcuXO5/vrrSUtLY/To0fTo0YPdu3eTkZFBs2bNim6uefbZZ3PHHXfw29/+ltTUVMaOHUuTJk14/fXXWbNmDeeccw633357jcdY2uDBg3n00Uf54IMPGDRoUNG9qvLz86MOl0VT29vyySef8Lvf/Y4uXbpw9913l1svNTWVhIQE1q9fT15eHldeeSXLli1j4MCBbNq0ienTp5eZZ+rUqSQlJVU7tqOVl5fHNddcU2KItLjCHrFVq1YxevToMuU///nPWbp0KUuXLi1zzh/AmDFj+Otf/8rChQs58cQTy5RXt21Utt7S1DZqb1uqc5y/+eabJCQkRD2mRCQOxJLdhfEVa4+bu/v48eMd8MTExJiubKtOj1uhZcuW+Q9+8ANv166dN2rUyFNSUvziiy/2v/zlL2XqLliwwAcNGuRNmzb1pKQk79Onj997772el5dXol5t9bhNmDDB161b56NGjfKWLVt648aN/eyzz/Y33nijytsd67a4V61X4dxzz3XA//a3v1Vat1evXg748uXLvWnTphXeoqN9+/ZV3saaduuttzrg8+fPj1r+3nvvOeBjxowpUzZlyhQ/7rjjKjyeDxw44B06dPCBAweWW6eqbSOW9ZanNtqGe+30uIWhbRw5cqTKx3l2drYnJyf76NGjq7wdInJ00O1AYk/cqupoErcwqOyLTuLbzTff7O3bt/d169ZVWve+++5zwDMzM+t0vWFV39vGnDlzHPB333036FBEGpxYE7cGfzuQWOXm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REQkDBKDDkBqXl4erFsH7doVfN5Wzi1B2rWD+++H224rmKewB05ERETikxK3eqhNm6rVL0zwREREJL5pqFREREQkJJS4iYiIiISEEjcRERGRkFDiJiIiIhISStxEREREQkKJm4iIiEhIKHETERERCQklbiIiIiIhEReJm5ldYmYbzGyjmd0VpXyimX1lZisjr2uDiFNEREQkSIE/OcHMEoDfAUOBbcAKM3vZ3deVqvpnd7+pzgMUERERiRPx0OM2ENjo7pvc/SDwHDA64JhERERE4k48JG6dgK3FPm+LTCttjJmtNrMXzKxL3YQmIiIiEj/iIXGzKNO81Oe/A93cvS+wGHgq6oLMJplZhpllfPXVVzUcpoiIiEiw4iFx2wYU70HrDHxRvIK773b3A5GPfwROi7Ygd3/E3Qe4+4B27drVSrAiIiIiQYmHxG0F0MPMupvZfwHjgZeLVzCzlGIfRwHr6zA+ERERkbgQ+FWl7n7YzG4CFgIJwOPuvtbM7gEy3P1l4GYzGwUcBvYAEwMLWERERCQggSduAO7+GvBaqWl3F3s/FZha13GJiIiIxJN4GCoVERERkRgocRMRCdCcOXPo06cPjRs3xsyYPXt20CEF7pFHHsHMaNu2Lbfccgv5+fk1styrr76a9u3bs2/fvhpZntSu2mobH330EWbGY489ViPLq2tK3EREAvLcc88xefJkkpOTmTJlCtOmTePMM8+s8nJyc3Pp3LkzZsbll19eC5HWre7du3Pbbbdx6NAhZs+ezaJFi456mRkZGTzzzDPcddddNGnSpAailNpUU20jmtNOO43LL7+cX/ziF+Tm5tbIMutSXJzjJiLSEL3yyitFPzt27Fjt5UyfPp3t27djZmRmZtZUeIEZOnQoQ4cOpXXr1qSnp7N8+XIuvvjio1pmeno6zZs354YbbqihKKU21VTbKM/UqVM544wzmDNnDunp6TW+/NqkHjcRkYB88UXBLSuP5otp3bp1zJkzh0suuYS+ffuydetWvv7665oKMVCFPSyrVq06quV89tlnLF68mHHjxtG4ceOaCE1qWU20jYoMHDiQXr16MW/ePI4cOVIr66gtStxEGoAZM2ZgZjz00ENRyzdt2kRSUhIDBw7EvfSDS6rnww8/5IorrqBTp04kJSWRkpLCsGHDeP7558vUff755xk8eDAtWrSgcePGnHLKKcyYMYMDBw6UqJeVlYWZMXHiRP79738zduxY2rRpQ7NmzRg2bBhr1qwB4KuvvmLSpEmkpKSQnJzM6aefzpIlS8qst/jyPv30Uy6//HJat25NkyZNOOecc3jzzTervN2xbMv06dMxs6KYzKzoVVU33XQT7s7MmTPp27cvAB9//HGZeoMGDSqxntKv8847r8rrrm3du3cHYPXq1Ue1nMcffxx354orrihTVl/aBtRs+whr26jKcT5+/Hi2bNnC4sWLq7wtQdJQqUgD0K9fP4CiP9yl3XnnnRw8eJBZs2ZVK3ko7Y9//CM33HADCQkJjBo1ih49erBr1y4yMjKYO3cu48aNK6qbnp7OjBkzaNu2LVdeeSVNmzbl9ddfJz09nYULF7Jo0SIaNWpUYvlZWVmcccYZ9O7dm4kTJ5KVlcWLL77IkCFD+Oc//8kll1xC8+bNueKKK9izZw/PPfccw4cP57PPPqNr165l4v38888566yzSE1N5brrrmPHjh38+c9/Zvjw4Tz77LNRv/CjiXVbhgwZAsCTTz7J5s2bmTZtWrX287PPPsuSJUu4+eab6d27N6eccgoAmZmZDB06tETd73//+2WmATzxxBNs2bKF888/v1ox1KZf/epXQEHylJubS9OmTau1nMWLF5OQkBD1HKn61jagZttH2NpGVY7zQYMGAbBo0aKjHoqvU+5eL1+nnXaaS4Gtq/b7EpaUeG1dtT/osKQObd261QEfNGhQmbKlS5c64OPGjauRda1du9YTExO9VatWvmbNmqixFFq2bJkD3qVLF9+xY0fR9EOHDvmIESMc8F//+tdF0z///HOn4FnGfu+995ZY7j333OOAt2rVyq+77jo/cuRIUdn8+fMd8ClTppSYp/jybrvtthJlK1as8MTERG/ZsqV/++23lW53VbfF3f28887zgj/DVZeTk+MdO3b0Nm3a+J49e9zd/Y033qjS7/K2225zwCdOnFhif8Vq1qxZPm3atJhfL774YszLXrhwYdHvBvBly5ZVOT5399zcXE9ISPDU1NSo5fWlbbjXbPsIc9sorbzjPDs72wE//fTTa2Q9R4uChw5Umt8EnmDV1kuJ23eUuIm7e+vWrb1ly5YlpuXn5/vAgQM9KSnJP//88xpZz0033eSAz5w5s9K61157rQM+b968MmUbNmzwY445xrt37140rfDLpFu3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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "x_comp = eigenvectors[0, :]\n", "y_comp = eigenvectors[1, :]\n", "\n", "z_transX = z_transX * 2.0 # Scaling since Ax = lx\n", "z_transY = z_transY * 3.0 # Scaling since Ax = lx\n", "\n", "x_comp = np.append(x_comp, z_transX[0])\n", "x_comp = np.append(x_comp, z_transY[0])\n", "y_comp = np.append(y_comp, z_transX[1])\n", "y_comp = np.append(y_comp, z_transY[1])\n", "\n", "labels = ['$v_1$', '$v_2$', '$v_1$ comp of $Az$ $= \\lambda_1$($v_1$ comp of $z$)', '$v_1$ comp of $Az$ $= \\lambda_2$($v_2$ comp of $z$)']\n", "offsets = {0: (-0.1, -0.2), 2: (-0.2, 0.2), 3: (-0.9, 0.1)}\n", "plot(x_comp, y_comp, ['r','b','g','m'], [-1, 7], [-1, 3.5], '$x_1$', '$x_2$', 'plot of components|', labels, offsets)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The plot shown above is after scaling the green and magenta component vectors. Now we will attempt to reconstruct the black vector from 3 plots ago, by summing the green and magenta vector together." ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "image/png": "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C3vcagHjzSyJ7CD5krtPN7N7gQx3f4PsO31PMLMVZO9p6xlcuSIiIiLBCDy4uftioEWE9ntyvd8NXBXNukRERERiTeCHSkVERESkcBTcREREROKEgpuIiIhInFBwExEREYkTCm4iIiIicULBTURERCROKLiJiIiIxAkFNxEREZE4oeAmIiIiEicU3ERERETihIKbiIiISJxQcBMRERGJEwpuIiIiInFCwU1EREQkTii4iYiIiMQJBTcRERGROKHgJiIiIhInFNxERERE4oSCm4iIiEicUHATERERiRMKbiIiIiJxQsFNREREJE4EHtzM7CQzSzez5Wa21Mz6R+jTxsy2mdmi0OueIGoVERERCVJy0AUA+4E73D3TzCoBn5jZbHdflqfff9z90gDqExEREYkJge9xc/eN7p4Zer8DWA7UCbYqERERkdgTeHDLzczqAy2ADyNMPtfMPjOzmWbWOKqFiYiIiMSAWDhUCoCZVQReAQa4+/Y8kzOBk919p5ldArwGNIywjL5AX4B69eqVcMUiIiIi0RUTe9zMrAzZoe3f7v5q3unuvt3dd4bezwDKmFmNCP3GuHtLd29Zs2bNEq9bREREJJoCD25mZsCzwHJ3H15AnxND/TCzVmTX/X30qhQREREJXiwcKm0NXAd8bmaLQm2DgXoA7v4voDtws5ntB3YBPd3dgyhWREREJCiBBzd3XwDYYfo8DjwenYpEREREYlPgh0pFREREpHAU3ERERETihIKbiIiISJxQcBMRERGJEwpuIiIiInFCwU1EREQkTii4iYiIiMQJBTcRERGROKHgJiIiIhInFNxERERE4oSCm4iIiEicUHATERERiRMKbiIiJeSxxx7jzDPPpFy5cpgZI0eODLokkTAao/FHwU1EpARMnjyZ/v37U7ZsWQYMGMCQIUM455xzirycnTt3UrduXcyMyy67rAQqlURVHGO0NIzPeNuG5KALEBEpjaZPn57zZ+3atY94OUOHDmX9+vWYGZmZmcVVnkixjNHSMD7jbRu0x01EpARs2LAB4KhC27Jly3jssce4+OKLadq0KWvXruW7774rrhIPa9y4cZgZ8+fPj9o6JXqOdowGPT6LQzxug4KbSJwbNmwYZsaoUaMiTl+5ciUpKSm0atUKdy+WdX700UdcffXV1KlTh5SUFGrVqkWHDh146aWX8vV96aWXuOCCC6hSpQrlypXjrLPOYtiwYezZsyes36pVqzAzevfuzf/+9z+6d+/OcccdR6VKlejQoQNLliwBYPPmzfTt25datWpRtmxZzj77bNLT0/OtN/fyvvjiCy677DKqV69OhQoVOP/883n77beLvN2F2ZahQ4diZjk1mVnOq6huvfVW3J3hw4fTtGlTAD799NN8/Vq3bh22nryvCy+8sMjrLi5BjE/QGI3GGC3s+ITYHaPxuA06VCoS55o1awaQ86OR16BBg9i7dy8jRow4ovCQ19NPP83NN99MUlISXbt2pWHDhmzatImMjAxGjx5Njx49cvoOHjyYYcOGUaNGDXr16kXFihWZOXMmgwcPZtasWcyePZsyZcqELX/VqlX8+te/5owzzqB3796sWrWKqVOn0qZNG95//30uvvhiKleuzNVXX82WLVuYPHkynTp14r///S/16tXLV+/XX3/NueeeS5MmTfjDH/7Axo0befHFF+nUqRMTJ07k6quvLtR2F3Zb2rRpA2TvrVq9ejVDhgw5ou954sSJpKenc9ttt3HGGWdw1llnAZCZmUn79u3D+l5++eX52gDGjh3LmjVrSE1NPaIaikO0xydojEZjjBZlfEJsjtG43QZ3L5WvX/3qVy6SCNauXeuAt27dOt+0BQsWOOA9evQolnUtXbrUk5OTvVq1ar5kyZKItRz03nvvOeAnnXSSb9y4Mad93759fumllzrgDzzwQE77119/7YADfv/994ct995773XAq1Wr5n/4wx/8wIEDOdOef/55B3zAgAFh8+Re3p133hk27eOPP/bk5GSvWrWqb9u27bDbXdRtcXe/8MILPfuf2KLbvn27165d24877jjfsmWLu7u/9dZbRfq7vPPOOx3w3r17h31fRTF27FgHPD09/Yjmd4/u+HTXGI3GGC2O8eleuDE6YsQIHzJkSKFfU6dOjbltKCwgwwuRbwIPWCX1UnCTRFK9enWvWrVqWFtWVpa3atXKU1JS/Ouvvy6W9dx6660O+PDhww/b98Ybb3TAn3rqqXzTvvzySz/mmGO8QYMGOW0Hf8Tq16/v+/fvD+u/evVqB7x8+fK+ffv2sGn79+/35ORkb9OmTVj7weVVqVIl3zzu7mlpaQ74uHHjin1b3I8uuN1+++0O+OOPP57Ttn79ege8YcOGh5w3KyvLb775Zge8X79+npWV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vvnmm7D2Vq1aMWvWLCpXrhxQZSIiIvkpuEnC+uqrr0hNTWXjxo1h7S1btmTWrFlUqVIloMpEREQiU3CThPS///2P1NRUNmzYENb+y1/+krfffpuqVasGVJmIiEjBFNwk4axcuZLU1FTWr18f1t68eXNmz55NtWrVAqpMRETk0BTcJKGsWrWK1NRU1q5dG9berFkz5syZQ/Xq1QOqTERE5PAU3CRhrF69mtTUVNasWRPWftZZZzFnzhyOO+64gCoTEREpHAU3SQhr1qwhNTWVVatWhbU3btyYuXPnUqNGjWAKExERKQIFt1Jq2LBhmBmjRo2KOH3lypWkpKTQqlUr3D3K1UXXunXrSE1N5euvvw5rP/PMM5k3bx41a9YMqDIREZGiUXArpZo1awZkP3szkkGDBrF3715GjBiBmUWztKhav349qamprFy5Mqy9UaNGzJs3j+OPPz6gykRERIpOwa2Uatq0KQBLly7NN23hwoVMmTKFHj160Lp162iXFjUbNmwgNTWVFStWhLWffvrpzJs3jxNOOCGgykRERI6MglspVbduXapXr54vuLk7AwcOJCUlhYcffjig6krexo0badu2LV999VVYe8OGDUlPT6dWrVoBVSYiInLkFNxKsaZNm7J161bWrVuX0zZp0iQ++ugjBgwYQP369YHs8+HOPvtsKleuTM2aNenSpUuBh1jjwbfffkvbtm358ssvw9pPO+000tPTqV27dkCViYiIHB0Ft1Ls4HluB/e67d69m8GDB3P88cczePDgnH7z58/nlltu4b333mPevHkkJydz0UUXsWXLlkDqPhqbNm2ibdu2fPHFF2Htp5xyCunp6dSpUyegykRERI5ectAFSMk5eJ7bkiVL6NixIyNHjmT16tU89dRTYQ9PnzVrVth8EyZMoEqVKixcuJAuXbpEteajsXnzZtq2bcuyZcvC2hs0aEB6ejp169YNqDIREZHioT1upVjuK0s3bdrEsGHDaNKkCX369DnkfDt27CArKyuuHv303Xff0a5du3zn9NWvX5/09HTq1asXUGUiIiLFp9DBzczam9nTZtY89LlvcRRgZs+Z2SYzi3hSlWV7zMxWmNliM/tlcaw3ETRu3JikpCSWLl3KkCFD2L59O8OHDycpKemQ8/Xv35/mzZtz7rnnRqnSo/P999/Trl07Pv/887D2evXqkZ6ezsknnxxQZSIiIsWrKIdKbwFuAP5qZtWB5sVUwzjgceD5AqZ3AhqGXr8Gngz9KYdRtmxZTj/9dBYvXkxmZiadO3emffv2h5xn4MCBLFiwgAULFhw24MWCLVu2cNFFF7F48eKw9pNOOon09PScCzBERERKg6IcKt3s7lvd/U6gA3B2cRTg7u8ChzoLvhvwvGf7AKhqZrqXQyE1a9aMPXv2YGY88sgjh+x7++23M2nSJObNm8cpp5wSpQqP3A8//ED79u1ZtGhRWHudOnVIT0+Pi20QEREpiqIEtzcPvnH3P1PwHrLiVgdYm+vzulCbFMILwGlnAAAXbklEQVSkSZNwd/bt20ejRo0K7Ne/f38mTpzIvHnzDtkvVmzdupX27duTmZkZ1l67dm3mz5/PqaeeGlBlIiIiJeewwc3MRpqZufvrudvdPfJDMItfpOcxRXy4ppn1NbMMM8vYvHlzCZcVe7KyYPr0os/Xr18/xo4dy6RJk6hWrRrffPMN33zzDTt37iz+IovBtm3b6NChA5988klYe61atUhPT+e0004LqDIREZGSVZg9bjuBN8ysPICZdTCzhSVbVph1wEm5PtcFNkTq6O5j3L2lu7dMxAeHZ2bCU08Vfb7Ro0ezY8cO2rVrR61atXJehzu0GoTt27fTsWNHPv7447D2E088kXnz5nH66acHVJmIiEjJO+zFCe7+VzPrBbxjZnuAH4E/l3hlP3sDuNXMJpN9UcI2d98YxfXHjWnTYM4c+OknKF++8PO5R9yBGXN27NjBxRdfzIcffhjWfsIJJ8TNIV4REZGjcdjgZmbtgN+THdhqAX3c/ctDz1V4ZjYJaAPUMLN1wBCgDIC7/wuYAVwCrAB+IvvKVolg2jTYvRvmzoU4um9uoezYsYNOnTrx/vvvh7XXrFmTefPmccYZZwRUmYiISPQU5nYgfwH+z90XmNlZwItmNtDd5xVHAe5+zWGmO9CvONZVmq1fD59+mv1++vTSFdx27txJ586dWbgw/Ah9jRo1mDdvHmeeeWZAlYmIiERXYQ6Vts31/nMz6wS8ApxXkoVJ0eS+KGH6dHAHi3RZR5z58ccf6dy5M//5z3/C2o877jjmzp1LkyZNAqpMREQk+or8yKvQ+WXtSqAWOQrTpv38fsOG7AsV4t1PP/1Ely5dePfdd8Paq1evzty5c3OexSoiIpIojuhZpe6+q7gLkSP300/Z57XlljvIxaNdu3bRtWtX0tPTw9qrVavGnDlzcp7DKiIikkj0kPlSYM6c7IsScovn4LZr1y66devG3DxptGrVqsyePZsWLVoEVJmIiEiwFNxKgUg33c3MzL5gId7s3r2byy67jNmzZ4e1V6lShdmzZ/OrX/0qoMpERESCp+AW5w71tIQ334zcHqv27NnDFVdcwdtvvx3WXrlyZd5++21atmwZUGUiIiKxQcEtzmVmwsYCbkccT4dL9+zZw5VXXsnMmTPD2itVqsSsWbNo1apVQJWJiIjEDgW3OHeocHbwKQqxbu/evVx11VW8mWcXYcWKFXnrrbc455xzAqpMREQktii4xblDBbeDT1GIZXv37qVHjx5My7MhFSpUYObMmZx3nm4XKCIicpCCWxzL/bSEghR0/lss2LdvHz179uT1118Pay9fvjwzZszg/PPPD6gyERGR2KTgFscKE8oOPkUh1uzbt49rrrmGqVOnhrUfDG0XXHBBQJWJiIjELgW3OFaYiw9i8SkK+/fv59prr+WVV14Jay9XrhzTp0/nwgsvDKgyERGR2KbgFqciPS2hILF0den+/fu57rrrePnll8Pay5Yty7Rp00hNTQ2oMhERkdin4Bancj8twQySk8OnH3vsz+9jJbgdOHCAtLQ0Jk+eHNaekpLCG2+8Qbt2egSuiIjIoSi4xanp07MDW48esHgxnHpq+PQxY2D0aKhbNzaeonDgwAF69+7NxIkTw9pTUlJ4/fXXad++fUCViYiIxI/kw3eRWOMOFSpkB7YmTSL3SUmBtDT43e/guefgs8+gTp3o1nnQgQMH+N3vfscLL7wQ1n7ssccydepUOnbsGExhIiIicUbBLQ6ZwYgRheubkgI331yy9RxKVlYWN954I88//3xYe5kyZXj11Vfp1KlTQJWJiIjEHx0qlRKTlZVF3759GTduXFh7mTJleOWVV+jcuXMwhYmIiMQpBTcpEVlZWdx00008++yzYe3Jycm8/PLLdOnSJaDKRERE4peCmxQ7d6dfv348/fTTYe1JSUm8+OKLdOvWLaDKRERE4puCmxQrd+fWW2/lX//6V1h7UlISkydP5oorrgioMhERkfin4CbFxt3p378/o0ePDmtPSkpi4sSJdO/ePaDKRERESoeYCG5mdrGZfWlmK8zszxGm9zazzWa2KPS6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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "black_vec = z_transX + z_transY\n", "x_comp = eigenvectors[0, :]\n", "y_comp = eigenvectors[1, :]\n", "x_comp = np.append(x_comp, black_vec[0])\n", "y_comp = np.append(y_comp, black_vec[1])\n", "labels = ['$v_1$', '$v_2$', '$v_1$ comp of $Az$ + $v_2$ comp of $Az = Az$']\n", "offsets = {}\n", "plot(x_comp, y_comp, ['r','b','k'], [-1, 8], [-1, 3], '$x_1$', '$x_2$', 'plot of components', labels, offsets)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Note that this black vector is exactly the same as the black vector 3 plots ago!" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Conclusion\n", "From the example shown, we can see why positive semi definite matrix is important. We need the property of positive eigen values so that we can project a vector into our eigenbasis and reconstruct the vector again by streching the projected component!" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Another example: Non-trivial eigenbasis" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let us consider another PSD matrix B. $$B = \\begin{bmatrix}4 && -1 \\\\ -1 && 4\\end{bmatrix}$$" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "lambda_1: 5.0, v_1: [ 0.70710678 -0.70710678]\n", "lambda_2: 3.0, v_2: [0.70710678 0.70710678]\n" ] } ], "source": [ "B = np.array([[4, -1], [-1, 4]])\n", "eigenvalues, eigenvectors = LA.eig(B)\n", "print('lambda_1: {}, v_1: {}'.format(eigenvalues[0], eigenvectors[:, 0]))\n", "print('lambda_2: {}, v_2: {}'.format(eigenvalues[1], eigenvectors[:, 1]))" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAm4AAAJeCAYAAAAN0om+AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvOIA7rQAAIABJREFUeJzt3X28pXVd7//3BxAwCQUZjEAECiM1bmpLlr9feYd4cwRPcQi7w34YldlRqX4gWpZhSHlEs3oI3qRSYUqlc1LjoGgcKNKhCBiLGPGoEySTiGgiCHzPH+saXDPsPbP3zNprrWut5/Px2I+91nV9r7W/62LtPS+ua91Uay0AAEy/XSY9AQAAlke4AQD0hHADAOgJ4QYA0BPCDQCgJ4QbAEBPCDdgVVXVx6vqRWP6Wb9QVV+oqq9W1SNXuO2Hq+rU1ZobwCgIN2CnVdX/qaq7umD6QlX9UVXttcLbOKSqWlXttoNzeEiSNyR5Zmttr9baF1eyfWvt2a21d+3Iz560ccYxMFnCDRiV57XW9kryvUmemORVY/75j0qyZ5L1Y/65vVYD/i2AnvDLCoxUa+3fknw4yRO2XldVu1TVq6rqs1V1W1W9u6oe3q2+ovt+R3fk7gcW2X6PqnpjVd3Sfb2xW/bYJDcObX/5YnOrqidV1d9W1R1V9U9V9ZShdQ8ctaqqXavqf1TVf1TVZ6rqJcNHA6vq4VX19qq6tar+rarOqapdu3UvrKorq+r1VfWlbvtnd+tOqap1W83p5VW1duj+vb6qPtcduXxLVT10aOyJVXVtVd1ZVZ+uqmdV1WuT/L9Jfr/bb7/fjf3BqvpkVX25+/6DW93X11bVVUm+luSwbt43V9VXujn/xKL/gYGJEm7ASFXVo5M8J8k/LrL6hd3XU5MclmSvJL/frfuh7vsjulOdf7fI9q9M8qQkRyc5KsmxSV7VWvvXJI8f2v5pi8zrwCQfTHJOkn2T/EqSP6+qNYv8nJ9N8uzu53xvkudvtf5dSe5N8p1JjknyzCTDpyq/P4OQ3C/J7yR5e1VVkrVJvquqDh8a++NJ/rS7fF6Sx3Y/9zuTHJjk17v5H5vk3Ul+NckjMthf/6e19sok/zvJS7r99pKq2re7r7+X5JEZnEL+4FbP+/upJKcn+dYkm7qxz26tfWuSH0xy7SL7BZgw4QaMyvur6o4kVyb5myS/vciYn0jyhtbaza21ryZ5RZJTVvC8tp9I8prW2m2ttU1JfjODAFmOn0zyodbah1pr97fWLkuyLoPI3NrJSd7UWtvYWvtSktdtXlFVj8og6l7WWvvP1tptSc5PcsrQ9p9trb21tXZfBpF3QJJHtda+luQDSV7Q3dbhSY5IsrYLu59N8vLW2u2tta9ksA833+5pSd7RWrusm/+/tdb+ZYn7+twkN7XWLmqt3dtauzjJvyR53tCYd7bW1rfW7s0gQu9P8oSqemhr7dbWmlPOMIWEGzAqz2+tPaK19pjW2otba3ctMubbk3x26Ppnk+yWwfPTlmOx7b99mds+Jsl/606T3tFF5v+TQVQt9nM+P3R9+PJjkjwkya1Dt3NBkv2Hxvz75gtdrCWDo4vJ4OjaC7rLP57k/d2YNUm+Jck1Q7f7193yJHl0kk8v875uvZ/SXT9wsfvUWvvPJD+W5Oe7+/XBqjpimT8LGCPhBozTLRmEz2YHZ3C05wtJ2g5uf8syf/bnk1zUxeXmr4e11l63yNhbkxw0dP3RW93O3Un2G7qdvVtrj8/y/K8k+1XV0RkE3ObTpP+R5K4kjx+63Yd3L/jY/HO/Y4nb3Hrfbb2fksG++reltmmtXdpaOy6DkP2XJG9d5v0Bxki4AeN0cZKXV9Wh3duF/HaSP+tO123K4HTdYdvZ/lVVtaaq9svg+V9/vMyf/cdJnldVx3cvPtizqp5SVQctMva9SV5aVQdW1SOSnLl5RWvt1gzi639U1d7dCy6+o6p+eDmT6O7rJUl+N4Pn2l3WLb8/g1g6v6r2TwbPy6uq47tN357kZ6rq6d3PPHDoqNgXsuV++1CSx1bVj1fVblX1Y0kel+SvFptTVT2qqk6oqodlEKVfTXLfcu4PMF7CDRindyS5KINXkH4mydeT/FLywCnF1ya5qjtV+KRFtj8ng+elXZfk+iT/0C3brtba55OcmOTsDCLx8xk80X+xv4NvzSDOrsvgRRYfyuDI4OaY+ekkuyf5VJIvZRBii51yXcqfJnlGkvd1IbfZmUk2JLm6qu5M8pEk39XN/xNJfiaD59N9OYPnEW4+qvamJCd1r2L9ve497P5Lkl9O8sUk/3+S/9Ja+48l5rNLN/aWJLcn+eEkL17B/QHGpFpbztkJgPnVvZ3HW1prW59+BBgrR9wAtlJVD62q53SnGQ9M8uokfznpeQFMRbhV1Ttq8GacNyyxvqrq96pqQ1VdV1XfO7Tu1Kq6qfvyOYPAKFQGbzXypQxOlf5zuvdTA5ikqThVWlU/lMGTYd/dWlvs3dafk8HzYJ6TwRtbvqm19v3dm0yuS7KQwSukrknyfd37LgEAzJSpOOLWWrsigyfELuXEDKKutdauTvKIqjogyfFJLuverPJLGbw661mrP2MAgPFb7ruVT9qB2fINMDd2y5Za/iBVdXoGH++Shz3sYd93xBHeWxIAGI9rrrnmP1pri33E3or0JdxqkWVtG8sfvLC1C5NcmCQLCwtt3bp1iw0DABi5qtr600x2yFScKl2GjdnyncsPyuD9hpZaDgAwc/oSbmuT/HT36tInJfly9+7llyZ5ZlXtU1X7JHlmtwwAYOZMxanSqro4yVMy+Py+jRm8Z9JDkqS19pYM3rX8ORm8o/jXMnj38LTWbq+q30ryye6mXtNa29aLHAAAemsqwq219oLtrG9JfnGJde/I4GN0AABmWl9OlQIAzD3hBgDQE8INAKAnhBsAQE8INwCAnhBuAAA9IdwAAHpCuAEA9IRwAwDoCeEGANATwg0AoCeEGwBATwg3AICeEG4AAD0h3AAAekK4AQD0hHADAOgJ4QYA0BPCDQCgJ4QbAEBPCDcAgJ4QbgAAPSHcAAB6QrgBAPSEcAMA6AnhBgDQE8INAKAnhBsAQE8INwCAnhBuAAA9IdwAAHpCuAEA9IRwAwDoCeEGANATwg0AoCeEGwBATwg3AICeEG4AAD0h3AAAekK4AQD0hHADAOgJ4QYA0BPCDQCgJ4QbAEBPCDcAgJ4QbgAAPSHcAAB6QrgBAPSEcAMA6AnhBgDQE8INAKAnhBsAQE8INwCAnhBuAAA9IdwAAHpCuAEA9IRwAwDoCeEGANATwg0AoCemItyq6llVdWNVbaiqsxZZf35VXdt9/WtV3TG07r6hdWvHO3MAgPHZbdITqKpdk/xBkuOSbEzyyapa21r71OYxrbWXD43/pSTHDN3EXa21o8c1XwCASZmGI27HJtnQWru5tXZPkvckOXEb41+Q5OKxzAwAYIpMQ7gdmOTzQ9c3dssepKoek+TQJJcPLd6zqtZV1dVV9fylfkhVnd6NW7dp06ZRzBsAYKymIdxqkWVtibGnJLmktXbf0LKDW2sLSX48yRur6jsW27C1dmFrbaG1trBmzZqdmzEAzLFzzz03VZU3v/nNi66/+eabs8cee+TYY49Na0v9k86OmIZw25jk0UPXD0pyyxJjT8lWp0lba7d0329O8vFs+fw3AGDEjjrqqCTJDTfcsOj6M888M/fcc0/OP//8VC12fIYdNQ3h9skkh1fVoVW1ewZx9qBXh1bVdyXZJ8nfDS3bp6r26C7vl+TJST619bYAwOgceeSRSZL169c/aN1VV12VSy65JCeffHKe/OQnj3tqM2/iryptrd1bVS9JcmmSXZO8o7W2vqpek2Rda21zxL0gyXvalsdcvzvJBVV1fwYR+rrhV6MCAKN30EEHZd99931QuLXWcsYZZ2SPPfbIeeedN6HZzbZpOOKW1tqHWmuPba19R2vttd2yXx+KtrTWfqO1dtZW2/1ta+17WmtHdd/fPu65A8A8OvLII3PHHXdk48aNDyy7+OKL84lPfCIve9nLcsghhyQZPB/uiU98Yvbee++sWbMmz3ve85Y8xcr2TUW4AQD9svl5bpuPun3961/P2Wefnf333z9nn332A+M+/vGP58UvfnH+9m//Npdffnl22223POMZz8jtt98+kXn33cRPlQIA/bP5eW433HBDjj/++LzxjW/MZz/72VxwwQXZe++9Hxh36aWXbrHdRRddlIc//OG56qqr8rznPW+sc54FjrgBACs2/MrS2267Leeee26e8IQn5LTTTtvmdl/5yldy//33Z5999hnHNGeOcAMAVuzxj398dt1116xfvz6vfvWrc+edd+YNb3hDdt11121u99KXvjRHH310fuAHfmBMM50tTpUCACu255575rGPfWyuu+66/MM//EOe+9zn5rjjjtvmNmeccUauvPLKXHnlldsNPBbniBsAsEOOOuqo3H333amqvP71r9/m2Je//OW5+OKLc/nll+ewww4b0wxnj3ADAJZ0773JW9+a/M3fPHjdxRdfnNZavvGNb+SII45Y8jZe+tKX5k//9E9z+eWXb3Mc2+dUKQDwIK0l739/8opXJA99aHLNNTt2O7/4i7+Yiy66KO9///uzzz775N///d+TJHvttVf22muvEc54PjjiBgBs4Yorkh/8weRHfiS58cbkvPOSXXawGP7wD/8wX/nKV/L0pz89BxxwwANf2zu1yuIccQMAkiQ33DA4wvZXf/XNZU9/erKd1xxs05af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113Jb/7m+OfHigk3AJhl24q3K6/85vW3vz35l38Z79xYMeEGALNuqXgbdt99yStfOb45sUOEGwDMgyc9Kfnwh5Pdd196zF/8RXL11eObEysm3ABglt13X3LFFckv/VLyoz+a3HPPtsefeebgBQvbcO6556aq8uY3v3nR9TfffHP22GOPHHvssWnbuS1WZrdJTwAAWCX335+cfXbyu7+73Rh7wBVXDI7MPec5Sw456qijkiQ33HDDouvPPPPM3HPPPTn//PNTVSueNktzxA0AZtUuuyTnnZf84z8mz3728rc766zBkbolHHnkkUmS9evXP2jdVVddlUsuuSQnn3xynvzkJ694ymybcAOAWXfUUcmHPpRcfnnyxCduf/z11yd/8idLrj7ooIOy7777PijcWms544wzsscee+S8887b2VmzCOEGAPPiqU9N/v7vk/e9Lzn88G2P/bVfS77+9SVXH3nkkbnjjjuycePGB5ZdfPHF+cQnPpGXvexlOeSQQ5IkV1xxRU444YQceOCBqaq8853vHMEdmV/CDQDmSVVy0knJ+vXJW96SfNu3LT7uc59L/vAPl7yZzc9z23zU7etf/3rOPvvs7L///jn77LMfGPfVr341T3jCE/KmN70pD33oQ0d3P+aUcAOAefSQhww+PWHDhuScc5Jv/dYHj3nta5f8APrNz3Pb/AKFN77xjfnsZz+b3/qt38reQ+8X95znPCe//du/nZNOOim77CI7dpY9CADz7GEPG7zx7s03Jy972Zbv83b77Ut+AP3wK0tvu+22nHvuuXnCE56Q0047bRyznlvCDQBI9ttv8GHzN96Y/NRPDU6pJkt+AP3jH//47Lrrrlm/fn1e/epX584778wb3vCG7LrrrmOe+HwRbgDANx1ySPLud3/zLUSW+AD6PffcM4997GNz3XXX5a1vfWue+9zn5rjjjhv/fOeMcAMAHmz4LUSuv37RD6A/6qijcvfdd6eq8vrXv34Ck5w/wg0AWNpTn5pcdVXy8Ic/aNXFF1+c1lq+8Y1v5IgjjpjA5OaPj7wCALatKjnggB3a9Ktf/Wo2bNiQJLn//vvzuc99Ltdee2323XffHHzwwaOc5VxwxA0AWDXr1q3LMccck2OOOSZ33XVXXv3qV+eYY47Jr//6r096ar3kiBsAsGqe8pSnpC33A+7ZLkfcAAB6QrgBAPSE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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "x_comp = eigenvectors[0, :]\n", "y_comp = eigenvectors[1, :]\n", "labels = ['$v_1$', '$v_2$']\n", "plot(x_comp, y_comp, ['r','b'], [-1,1], [-1,1], '$x_1$', '$x_2$', 'Plot of eigenvectors', labels, offsets)" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.0" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "np.dot(eigenvectors[:, 0], eigenvectors[:, 1]) # Showing that the eigenvectors are in fact orthogonal" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [], "source": [ "# Project vector u to vector v, we assume that the v is unit vector\n", "def project(u, v):\n", " return np.dot(u, v) * v / np.linalg.norm(v)**2" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We will use vector $$z = \\begin{bmatrix}1 && 0\\end{bmatrix}^T$$ as an example. Projecting it to the eigenbasis yield us" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[[ 0.5 -0.5]\n", " [ 0.5 0.5]]\n", "[0.70710678 0.70710678 0.5 0.5 1. ]\n" ] }, { "data": { "image/png": "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C3306NEuyceMGeOFhYV12l6qq0uU8Z4yAECNVfQes52F+4qfHzxyUJOXTC5+3qtXL+3evVtbt24tnjZ//nwtX75c48aNU5cuXSRJb7zxhgYPHqyOHTvKzDR37twaje3tt9+WJA0aNKjKZVesWCFJuvDCC8vN6969uzp16qQNGzZo9+7dpeadfvrpysrKKjWt6M3y3bt3V7NmzUrNy8rKUvv27Uu99pLOOOOMcutIKr7M+P7779fba6mLo0ePauTIkXrooYd01113adasWXG5/JypiDIAQK3ECrOyHl/5uNbuXCvpm/eVrVmzRpJ08OBBTZw4Ue3atdPEiROL19m/f7969uyp3/zmN2rcuHGNx1UUHR07dqxy2T179kiScnNzY84vml60XJEWLVqUWzY7O7vCeUXzDx8+HHNe+/btY04/7rjjYu4/ltq+lto6fPiwhg8frnnz5mny5MmaPn16XLabyYgyAECtbN6zWV/3O1vHWpMKlyn0Qk38SyS4evXqJembN/vPnDlTmzZt0tSpU9W8efPidS6//HL96le/0tChQ9WgQc3/mWrZsqUk6dNPP61y2aKA+uyzz2LO3759e6nl6svnn38ec3rRuKqz/0S+loMHD2rIkCF65plnNGPGjBp/UACxEWUAgBr5r1X/pbMfPVudZ3bWHS/foS/8q0qX/+NHf9Sbm98s9QnMHTt2KC8vTz179tSNN94Y1/EV3ZF+0aJFVS7bu3dvSdKSJUvKzVu3bp22bt2qrl27FodefVmxYoX27dtXbnrRuIrGWZlEvZavvvpKV1xxhV544QXNnj1bd9xxR522h28QZQCAGrn6u1frsu9cpiYNKz5DVtaEVyeoR48eysrK0po1azRp0iTt3btX9913X7n3ZtXV6NGjlZ2dralTp2rt2rXl5pd8X9cNN9wgSZo2bZp27txZPP3o0aMaP368CgsL4x6NsezZs0dTpkwpNS0/P1+///3v1aJFCw0ZMqTKbSTitezZs0eXXHKJXn/9dc2dO1ejR4+u0/ZQGvcpAwDUSLOcZpo8YLJG9xmtqW9M1cPvPawjhUcqXefNLW/q1c2vqnv37lq1apVWrFihK664Iua9ruqqR48emj17tm655Rb17t1bV199tbp166YvvvhC+fn5atasWfFNU88991zddddd+vWvf62ePXtq6NChatKkiRYtWqTV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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "z = np.array([1, 0])\n", "transformed_vectors = np.array([project(z, eigenvectors[:, 0]), project(z, eigenvectors[:, 1])])\n", "print(transformed_vectors)\n", "x_comp = np.append(eigenvectors[0, :], transformed_vectors[:, 0])\n", "y_comp = np.append(eigenvectors[1, :], transformed_vectors[:, 1])\n", "x_comp = np.append(x_comp, z[0])\n", "y_comp = np.append(y_comp, z[1])\n", "print(x_comp)\n", "# plot(x_comp, y_comp, ['r','b','g','y','k'], [-1.5, 1.5], [-1.5, 1.5])\n", "\n", "labels = ['$v_1$ comp of $z$', '$v_2$ comp of $z$', '$v_1$', '$v_2$', '$z$']\n", "offsets = {0: (-0.25, 0.25), 1: (-0.25, -0.35), 2: (0.25, -0.15), 3: (0.1, 0.25)}\n", "plot(x_comp, y_comp, ['r','b','g','y', 'g'], [-1.5, 1.5], [-1.5, 1.5], '$x_1$', '$x_2$', 'Plot of components of $z$ scaled by $\\lambda$', labels, offsets)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The yellow and green vectors are the projection of the black vector into the red and blue eigenbasis respectively. Since we can visually see that the projected component lies in the span of the eigenbasis, we can now scale the projected component respectively according to the eigenvalues of the correponding eigenbasis." ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "data": { "image/png": "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10jSKufcIjP70uvCAAAAosXzkTIz22lmq4v/fUTSBkmtvK0KAAAgujwPZWU559pJ6irpE28rAQAAiC7fhDLnXENJf5Y03swOB5g/1jmX45zL2bt3b/QLBOAbzzzzjDp16qT69evLOacZM2Z4XZLnnn/+eTnn1KxZM02YMEGFhYVhaXfkyJFq0aKFjh49Gpb2EFmR6hurVq2Sc06///3vw9IeAvNFKHPOnaGiQPZHM/tLoGXM7HkzyzCzjObNm0e3QAC+8dprr2ncuHFKTk7W+PHjNXXqVF1++eVBrduvXz8558q9EhIS1KxZM/Xv319LliyJcPWR0759e02cOFEnTpzQjBkztGjRolq3mZOToz/84Q968MEH1aBBgzBUiUiqTd+ozmWXXaYbbrhBv/rVr5Sfnx+WNlGR5xf6O+ecpN9L2mBmT3pdDwB/e+edd0r/e84554S07urVq3XGGWcoKyurdNqRI0f0ySefaNGiRVqyZIlWr16tSy65JKw1R0O/fv3Ur18/NW3aVFlZWfr44481YMCAWrWZlZWlxo0b66677gpTlYik2vSNYEyZMkU9evTQM888U64PIXw8D2WSMiX9u6QvnHNriqdlmdnfPKwJgE999913khTyl84333yjAwcO6LLLLtO0adMqzL/66qu1ZMkSzZ8/PyZDWYmSkZHPP/+8Vu1s2rRJixcv1m233ab69euHozREWE37RrC6d++ujh07atasWZo8ebISEhIisp26zPPTl2a23MycmXU2sy7FLwIZPJednS3nnJ599tmA87ds2aKkpCR1795dZhaWba5cuVI333yzWrVqpaSkJKWlpal///56/fXXKyz7+uuvq1evXkpJSVH9+vV1ySWXKDs7Wz/88EO55XJzc+Wc0+jRo/XNN99o+PDhOuuss9SoUSP1799f69atkyTt3btXY8eOVVpampKTk9WtW7eAp/PKtvfVV1/phhtuUNOmTdWgQQNdeeWVWrhwYcj7Hcy+TJs2Tc650prKnoIMRk5OjiSpR48eAeenpaVJks4+++zSaZmZmRVOd5Z99e7dO+R9jbT27dtLktauXVurdl566SWZmW6++eYK8+Klb0jh7R+x2jdCOc5HjBihvLw8LV68OOR9QfX8MFIG+NKll14qSaW/lE83efJkHT9+XE899VTQv/yq8sILL+iuu+5SQkKChgwZovPPP1979uxRTk6OZs6cqZtuuql02aysLGVnZ6tZs2a65ZZb1LBhQ82fP19ZWVlasGCBFi1apDPOOKNc+7m5uerRo4cuuugijR49Wrm5uXrrrbfUp08fffTRR7r22mvVuHFj3XzzzTpw4IBee+01DRw4UJs2bVKbNm0q1Lt161b17NlT6enpuuOOO7Rz50796U9/0sCBA/Xqq68G/DIPJNh96dOnjyRpzpw52rZtm6ZOnRrS+1tVKFuzZo3eeecdpaWlaejQoaXTb7zxRvXr16/C8rNnz1ZeXp6uuuqqkGqIhkceeURSUTDKz89Xw4YNa9TO4sWLlZCQEPCapHjrG1J4+0es9Y1QjvPMzExJ0qJFi2p9ehwBmFnMvS677DIDIu3bb781SZaZmVlh3vLly02S3XTTTWHZ1vr16y0xMdGaNGli69atC1hLiRUrVpgka926te3cubN0+okTJ2zQoEEmyR577LHS6Vu3bjVJJskeffTRcu0+/PDDJsmaNGlid9xxh506dap03ty5c02SjR8/vtw6ZdubOHFiuXmffvqpJSYmWmpqqh06dKja/Q51X8zMevfubUW/ukLTp08fk2S33367TZ061aZOnWoTJ060wYMHW2JiovXo0cPWr19fbTsTJ040STZ69Ohy71ewnnrqqdLtB/N66623gm57wYIFpZ+NJFuxYkXI9ZmZ5efnW0JCgqWnpwecHy99wyy8/SNW+0YglR3nBw8eNEnWrVu3sGynrpCUY0HkG88DVk1ehDJES9OmTS01NbXctMLCQuvevbslJSXZ1q1bw7KdX/ziFybJnnzyyWqXve2220ySzZo1q8K8jRs3Wr169ax9+/al00q+KNq1a2cnT54st/y2bdtMkp155pl2+PDhcvNOnjxpiYmJ1qdPn3LTS9pLSUmpsI6Z2ahRo0ySzZkzJ+z7YlazL57CwkJLSUkpF1jKvjp06GBvvvlmtW3cddddJsnuueceKywsDKmGEm3btq20jkCvUaNGBdXu4cOHrU2bNpaammq33nqrSbLf/e53Napx48aNJsn69etX6TLx0DfMwts/YrFvnC6Y4zw5OdlatmxZq+3UNcGGMs+vKQP8rHPnzjp48KC2b99eOm3evHlauXKlxo8fr3bt2kkqusamW7duaty4sZo3b67BgwdXemonkI8//liSNHDgwGqXXb16taSi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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "x_comp[2] = x_comp[2] * 5.0\n", "y_comp[2] = y_comp[2] * 5.0\n", "x_comp[3] = x_comp[3] * 3.0\n", "y_comp[3] = y_comp[3] * 3.0\n", "labels = ['$v_1$', '$v_2$', '$v_1$ comp of $Bz$ $= \\lambda_1$($v_1$ comp of $z$)', '$v_2$ comp of $Bz$ $= \\lambda_2$($v_2$ comp of $z$)', '$z$']\n", "offsets = {0: (-0.25, 0.25), 1: (-0.25, -0.35), 2: (0.25, -0.15), 3: (0.1, 0.25)}\n", "plot(x_comp, y_comp, ['r','b','g','y','k'], [-1, 8.5], [-4, 3], '$x_1$', '$x_2$', 'Plot of components of $Bz$ scaled by $\\lambda$', labels, offsets)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now that we have scaled the vectors, we will reconstruct the black vector as if it was transformed by the PSD matrix B." ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "transformed_vec = np.array([x_comp[2] + x_comp[3], y_comp[2] + y_comp[3]])\n", "same_transformed = np.dot(B, z)\n", "x_comp = eigenvectors[0, :]\n", "y_comp = eigenvectors[1, :]\n", "x_comp = np.append(x_comp, transformed_vec[0])\n", "y_comp = np.append(y_comp, transformed_vec[1])\n", "labels = ['$v_1$', '$v_2$', '$v_1$ comp of $Bz$ + $v_2$ comp of $Bz = Bz$']\n", "offsets = {0: (0, -0.3), 1: (0, 0.2)}\n", "plot(x_comp, y_comp, ['r','b','k'], [-2,15], [-3,3], '$x_1$', '$x_2$', 'Plot of components of $Bz$ scaled by $\\lambda$', labels, offsets)" ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[0. 0.]\n" ] } ], "source": [ "# assert that same_transformed and transformed_vec are the same\n", "# Note that the difference is approximately 0!s\n", "print(transformed_vec - same_transformed)" ] } ], "metadata": { "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.5.2" } }, "nbformat": 4, "nbformat_minor": 2 }