{"nbformat_minor": 0, "metadata": {"signature": "sha256:afe0e41dee5e49ae4789c0568a07e740996c82654f1aa667a754b9111f07314f", "name": ""}, "nbformat": 3, "worksheets": [{"metadata": {}, "cells": [{"source": ["# Relative cost of matrix operations"], "metadata": {}, "cell_type": "markdown"}, {"collapsed": false, "cell_type": "code", "outputs": [], "prompt_number": 2, "metadata": {}, "input": ["import numpy as np\n", "import scipy.linalg as spla\n", "import scipy as sp\n", "\n", "import matplotlib.pyplot as pt\n", "\n", "from time import time\n", "\n", "np.alterdot()"], "language": "python"}, {"collapsed": false, "cell_type": "code", "outputs": [{"output_type": "pyout", "text": ["array([ 100, 122, 150, 185, 227, 279, 343, 421, 517, 636, 781,\n", " 959, 1178, 1447, 1778], dtype=int32)"], "metadata": {}, "prompt_number": 8}], "prompt_number": 8, "metadata": {}, "input": ["n_values = (10**np.linspace(2, 3.25, 15)).astype(np.int32)\n", "n_values"], "language": "python"}, {"collapsed": false, "cell_type": "code", "outputs": [{"output_type": "stream", "text": ["-----> lu\n", "100\n", "122\n", "150\n", "185\n", "227\n", "279\n", "343\n", "421\n", "517"], "stream": "stdout"}, {"output_type": "stream", "text": ["\n", "636\n", "781"], "stream": "stdout"}, {"output_type": "stream", "text": ["\n", "959"], "stream": "stdout"}, {"output_type": "stream", "text": ["\n", "1178"], "stream": "stdout"}, {"output_type": "stream", "text": ["\n", "1447"], "stream": "stdout"}, {"output_type": "stream", "text": ["\n", "1778"], "stream": "stdout"}, {"output_type": "stream", "text": ["\n", "----->"], "stream": "stdout"}, {"output_type": "stream", "text": [" qr\n", "100\n", "122\n", "150\n", "185\n", "227\n", "279\n", "343"], "stream": "stdout"}, {"output_type": "stream", "text": ["\n", "421\n", "517"], "stream": "stdout"}, {"output_type": "stream", "text": ["\n", "636"], "stream": "stdout"}, {"output_type": "stream", "text": ["\n", "781"], "stream": "stdout"}, {"output_type": "stream", "text": ["\n", "959"], "stream": "stdout"}, {"output_type": "stream", "text": ["\n", "1178"], "stream": "stdout"}, {"output_type": "stream", "text": ["\n", "1447"], "stream": "stdout"}, {"output_type": "stream", "text": ["\n", "1778"], "stream": "stdout"}, {"output_type": "stream", "text": ["\n"], "stream": "stdout"}, {"output_type": "pyout", "text": [""], "metadata": {}, "prompt_number": 9}, {"output_type": "display_data", "png": "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\nRK5CYII=\n", "metadata": {}, "text": [""]}], "prompt_number": 9, "metadata": {}, "input": ["\n", "def mat_mul(A):\n", " return A.dot(A)\n", "\n", "for name, f in [\n", " (\"lu\", spla.lu_factor),\n", " (\"qr\", spla.qr),\n", " ]:\n", "\n", " times = []\n", " print(\"----->\", name)\n", " \n", " for n in n_values:\n", " print(n)\n", "\n", " A = np.random.randn(n, n)\n", " \n", " start_time = time()\n", " f(A)\n", " times.append(time() - start_time)\n", " \n", " pt.loglog(n_values, times, label=name)\n", "\n", "pt.grid()\n", "pt.legend(loc=\"best\")\n", "pt.xlabel(\"Matrix size $n$\")\n", "pt.ylabel(\"Wall time [s]\")"], "language": "python"}, {"source": ["* Can we see the asymptotic cost ($O(n^3)$) of these algorithms from the plot?"], "metadata": {}, "cell_type": "markdown"}, {"collapsed": false, "cell_type": "code", "outputs": [], "prompt_number": 3, "metadata": {}, "input": [], "language": "python"}]}]}