numeric-linalg
Educational material on the SciPy implementation of numerical linear algebra algorithms
benchmark.ipynb (63020B)
1 { 2 "cells": [ 3 { 4 "cell_type": "markdown", 5 "id": "9decf754-a174-4338-9c54-5eef69cc91bb", 6 "metadata": {}, 7 "source": [ 8 "To test the complexity of the `getrf` algorithm we plot the log of the excution time on progressively larger inputs: `getrf` is $O(n^d)$, where $d$ is the slope of the result line in the plot. We can thus confirm that `getrf` is $O(n^3)$!" 9 ] 10 }, 11 { 12 "cell_type": "code", 13 "execution_count": 18, 14 "id": "30318f00-d2d5-444f-9e8a-abd78af4b74f", 15 "metadata": {}, 16 "outputs": [ 17 { 18 "data": { 19 "image/png": "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", 20 "text/plain": [ 21 "<Figure size 640x480 with 1 Axes>" 22 ] 23 }, 24 "metadata": {}, 25 "output_type": "display_data" 26 } 27 ], 28 "source": [ 29 "import numpy as np\n", 30 "import matplotlib.pyplot as plt\n", 31 "\n", 32 "MAX_N = 5000\n", 33 "STEP = 100\n", 34 "\n", 35 "# Used to avoid errors when taking the log of the histogram\n", 36 "EPS = 0.00001\n", 37 "\n", 38 "x = np.arange(1, MAX_N, STEP)\n", 39 "x_ref = np.arange(np.log(x[0]), np.log(x[-1]))\n", 40 "\n", 41 "histogram = np.fromfile(\"histogram.bin\", dtype=np.uint32)\n", 42 "plt.plot(np.log(x), np.log(histogram + EPS), color=\"blue\")\n", 43 "plt.plot(x_ref, 3 * x_ref, color=\"green\")\n", 44 "\n", 45 "plt.xticks(np.arange(0, 9, 2))\n", 46 "plt.yticks(np.arange(-10, 30, 2))\n", 47 "plt.grid(which='both', color='gray', linestyle='--', linewidth=0.5)" 48 ] 49 }, 50 { 51 "cell_type": "code", 52 "execution_count": null, 53 "id": "c07627c1-55f5-4662-83ce-9e147533f949", 54 "metadata": {}, 55 "outputs": [], 56 "source": [] 57 } 58 ], 59 "metadata": { 60 "kernelspec": { 61 "display_name": "Python 3 (ipykernel)", 62 "language": "python", 63 "name": "python3" 64 }, 65 "language_info": { 66 "codemirror_mode": { 67 "name": "ipython", 68 "version": 3 69 }, 70 "file_extension": ".py", 71 "mimetype": "text/x-python", 72 "name": "python", 73 "nbconvert_exporter": "python", 74 "pygments_lexer": "ipython3", 75 "version": "3.12.6" 76 } 77 }, 78 "nbformat": 4, 79 "nbformat_minor": 5 80 }