{"metadata": {"signature": "sha256:bd019e62f75f1b5cbbe30d88d1be39d6efc02bef06d70b336cf344ef36e3c16c", "name": ""}, "nbformat": 3, "worksheets": [{"cells": [{"metadata": {}, "source": ["# Matrix norms"], "cell_type": "markdown"}, {"collapsed": false, "outputs": [], "metadata": {}, "input": ["import numpy as np\n", "import numpy.linalg as la\n", "import matplotlib.pyplot as pt"], "cell_type": "code", "prompt_number": 1, "language": "python"}, {"metadata": {}, "source": ["Here's a matrix of which we're trying to compute the norm:"], "cell_type": "markdown"}, {"collapsed": false, "outputs": [], "metadata": {}, "input": ["n = 2\n", "A = np.random.randn(n, n)"], "cell_type": "code", "prompt_number": 14, "language": "python"}, {"metadata": {}, "source": ["Recall:\n", "\n", "$$||A||=\\max_{\\|x\\|=1} \\|Ax\\|,$$\n", "\n", "where the vector norm must be specified, and the value of the matrix norm $\\|A\\|$ depends on the choice of vector norm.\n", "\n", "For instance, for the $p$-norms, we often write:\n", "\n", "$$||A||_2=\\max_{\\|x\\|=1} \\|Ax\\|_2,$$\n", "\n", "and similarly for different values of $p$."], "cell_type": "markdown"}, {"metadata": {}, "source": ["--------------------\n", "We can approximate this by just producing very many random vectors and evaluating the formula:"], "cell_type": "markdown"}, {"collapsed": false, "outputs": [], "metadata": {}, "input": ["xs = np.random.randn(n, 1000)"], "cell_type": "code", "prompt_number": 16, "language": "python"}, {"metadata": {}, "source": ["First, we need to bring all those vectors to have norm 1. First, compute the norms:"], "cell_type": "markdown"}, {"collapsed": false, "outputs": [{"metadata": {}, "output_type": "pyout", "text": ["(1000,)"], "prompt_number": 32}], "metadata": {}, "input": ["p = 2\n", "norm_xs = np.sum(np.abs(xs)**p, axis=0)**(1/p)\n", "norm_xs.shape"], "cell_type": "code", "prompt_number": 32, "language": "python"}, {"metadata": {}, "source": ["Then, divide by the norms and assign to `normalized_xs`:"], "cell_type": "markdown"}, {"collapsed": false, "outputs": [{"metadata": {}, "output_type": "pyout", "text": ["1.0"], "prompt_number": 33}], "metadata": {}, "input": ["normalized_xs = xs/norm_xs\n", "la.norm(normalized_xs[:, 316], p)"], "cell_type": "code", "prompt_number": 33, "language": "python"}, {"metadata": {}, "source": ["Let's take a look:"], "cell_type": "markdown"}, {"collapsed": false, "outputs": [{"png": "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\nKU7MdFMAAAAASUVORK5CYII=\n", "metadata": {}, "output_type": "display_data", "text": [""]}], "metadata": {}, "input": ["pt.plot(normalized_xs[0], normalized_xs[1], \"o\")\n", "pt.gca().set_aspect(\"equal\")"], "cell_type": "code", "prompt_number": 34, "language": "python"}, {"metadata": {}, "source": ["Now apply $A$ to these normalized vectors:"], "cell_type": "markdown"}, {"collapsed": false, "outputs": [], "metadata": {}, "input": ["A_nxs = A.dot(normalized_xs)"], "cell_type": "code", "prompt_number": 35, "language": "python"}, {"metadata": {}, "source": ["--------------\n", "Let's take a look again:"], "cell_type": "markdown"}, {"collapsed": false, "outputs": [{"png": "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\n", "metadata": {}, "output_type": "display_data", "text": [""]}], "metadata": {}, "input": ["pt.plot(normalized_xs[0], normalized_xs[1], \"o\", label=\"x\")\n", "pt.plot(A_nxs[0], A_nxs[1], \"o\", label=\"Ax\")\n", "pt.legend()\n", "pt.gca().set_aspect(\"equal\")"], "cell_type": "code", "prompt_number": 36, "language": "python"}, {"metadata": {}, "source": ["Next, compute norms of the $Ax$ vectors:"], "cell_type": "markdown"}, {"collapsed": false, "outputs": [], "metadata": {}, "input": ["norm_Axs = np.sum(np.abs(A_nxs)**p, axis=0)**(1/p)\n", "norm_Axs.shape"], "cell_type": "code", "language": "python"}, {"metadata": {}, "source": ["What's the biggest one?"], "cell_type": "markdown"}, {"collapsed": false, "outputs": [{"metadata": {}, "output_type": "pyout", "text": ["2.3888099889735472"], "prompt_number": 23}], "metadata": {}, "input": ["np.max(norm_Axs)"], "cell_type": "code", "prompt_number": 23, "language": "python"}, {"metadata": {}, "source": ["Compare that with what `numpy` thinks the matrix norm is:"], "cell_type": "markdown"}, {"collapsed": false, "outputs": [{"metadata": {}, "output_type": "pyout", "text": ["2.3888099931809323"], "prompt_number": 24}], "metadata": {}, "input": ["la.norm(A, p)"], "cell_type": "code", "prompt_number": 24, "language": "python"}, {"collapsed": false, "outputs": [{"metadata": {}, "output_type": "pyout", "text": ["array([[0, 1, 2],\n", " [3, 4, 5],\n", " [6, 7, 8]])"], "prompt_number": 9}], "metadata": {}, "input": ["A = np.arange(9).reshape(3,3)\n", "A"], "cell_type": "code", "prompt_number": 9, "language": "python"}, {"collapsed": false, "outputs": [{"metadata": {}, "output_type": "pyout", "text": ["36"], "prompt_number": 13}], "metadata": {}, "input": ["np.sum(A)"], "cell_type": "code", "prompt_number": 13, "language": "python"}, {"collapsed": false, "outputs": [], "metadata": {}, "input": [], "cell_type": "code", "language": "python"}], "metadata": {}}], "nbformat_minor": 0}