{ "cells": [ { "cell_type": "markdown", "id": "0f18ddb6-6f8f-44b1-9083-c86b9ae657ac", "metadata": {}, "source": [ "# Polynomial" ] }, { "cell_type": "markdown", "id": "fb0ada15-3643-4b61-b962-af80bd318097", "metadata": {}, "source": [ "`lamatrix` provides a Polynomial model which can be used to capture simple trends." ] }, { "cell_type": "code", "execution_count": 1, "id": "ae5d5c89-f880-4c50-9a53-bc4171ec3086", "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", "import matplotlib.pyplot as plt\n", "x = np.arange(-10, 10, 0.01)\n", "\n", "\n", "from lamatrix import Polynomial" ] }, { "cell_type": "code", "execution_count": 3, "id": "3241dc64-c209-4971-8a2c-f036d0324b47", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\\[f(\\mathbf{x}) = w_{0} \\mathbf{x}^{1} + w_{1} \\mathbf{x}^{2} + w_{2} \\mathbf{x}^{3}\\]
" ], "text/plain": [ "'\\\\[f(\\\\mathbf{x}) = w_{0} \\\\mathbf{x}^{1} + w_{1} \\\\mathbf{x}^{2} + w_{2} \\\\mathbf{x}^{3}\\\\]'" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Polynomial(order=3).equation" ] }, { "cell_type": "code", "execution_count": 10, "id": "d100b342-9f43-4277-aad2-aa1eb431a776", "metadata": {}, "outputs": [], "source": [ "model = Polynomial('x', order=3)\n", "w = np.random.normal(size=model.width)\n", "sample = model.design_matrix(x=x).dot(w)" ] }, { "cell_type": "code", "execution_count": 11, "id": "e32159da-2a24-43cc-9550-d53afcf403e3", "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAkgAAAHHCAYAAABEEKc/AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8ekN5oAAAACXBIWXMAAA9hAAAPYQGoP6dpAABK6UlEQVR4nO3dB3gUVfv38TsQei/SOwiCgKggRelIEVBEkKJ0BGnSpYg0xdCkiNIV9FEeBJUqVSmigFKVIgjSe6+RFua97vN/dt/NkoQkJpmd3e/nuobd7E6WMzubzC+nBlmWZQkAAADcEv3/uwAAAFAEJAAAAC8EJAAAAC8EJAAAAC8EJAAAAC8EJAAAAC8EJAAAAC8EJAAAAC8EJAAAAC8EJMDhqlSpYjZ/MHv2bAkKCpIjR47E+Htbt24t+fLlE183dOhQc4yx4ZRjjA095/q+6GcA8AUEJMCmEODakidPLoULF5auXbvK2bNn7S4eAEBEgu0uABCohg8fLvnz55dbt27Jzz//LFOmTJFly5bJ7t27JWXKlBKIWrRoIU2bNpVkyZLZXRQAAY6ABNikTp06Urp0aXO/ffv2kilTJhk3bpwsWrRImjVrJoEoceLEZgMAu9HEBviIatWqmdvDhw+b23v37sl7770nBQsWNDUq2vdk4MCBcvv27Uhf48aNG5IqVSrp3r37A8+dOHHChI+QkJBwTX2//PKL9OrVSx555BHzvS+//LKcP3/+ge+fPHmyPP7446YsOXLkkC5dusiVK1fC7aN9oYoXLy5//PGHVK5c2dSEFSpUSL755hvz/Pr166Vs2bKSIkUKKVKkiPzwww8P7YOkgbFu3brm/9T/W98PfV/CwsIkNvR9rFevnqxbt84EVC1LiRIlzNfqu+++M19r0+fTTz8tO3bseOA11qxZIxUrVjTvV/r06eWll16SP//884H9tGawTJky5rW03NOmTYu0XF9++aX5/7Q8GTNmNDVpx48fj9Uxbt26VWrVqiWZM2c2r6c1lW3btg23z9ixY6VChQommOs++n+7zpMnPR/a/Dt//nwpVqyY2bd8+fKya9cu87wek55jPUY9/979x1yfiW3btpn/z1WeqVOnRutY9u3bJ40aNTLvif4fes4WL14cq/cFiBELQIKaNWuWpT96W7ZsCff4xIkTzeNTp041X7dq1cp83ahRI+uTTz6xWrZsab5u0KBBuO+rXLmy2Vxee+01K2vWrNa9e/fC7Td69GgrKCjIOnr0aLhyPPnkk1a1atWsSZMmWb1797YSJ05svfrqq+G+d8iQIWbfGjVqmP26du1q9itTpox1586dcGXJkSOHlTt3bqtv375m32LFipl9586da2XLls0aOnSoNWHCBCtnzpxWunTprGvXrj3w3hw+fNj9mB6vlmfMmDHWlClTrMaNG5t9+vTpE66M+n7lzZv3oe+/7lOkSBEre/bspizjx483ZUmdOrX15ZdfWnny5LFGjhxpNi1foUKFrLCwMPf3r1692goODrYKFy5s3tNhw4ZZmTNntjJkyBCu3H/88YeVIkUK83ohISHWe++9Z85LyZIlTfk9vf/+++bcNGnSxJo8ebL7NfPly2ddvnw5Rsd49uxZUxYtn75nM2bMsN555x2raNGi4fbLlSuX1blzZ+vjjz+2xo0bZz3zzDOmXEuXLg23nz6mZdZz6vm+6HHp9+r5/fDDD61BgwZZSZMmtapWrRru+12fiSxZspjPzUcffWQ999xz5nU//fRT93763ulj+hlw2b17t/m/9P8YNWqU+f8qVapk3qvvvvvuoeca+DcISEACc4WAH374wTp//rx1/PhxEx4yZcpkLqgnTpywdu7cafZp3759uO/VUKCPr1mzJtKAtHLlSrPP8uXLw32vXuQ893OVQ0PP/fv33Y/37NnTBJorV66Yr8+dO2cufDVr1gwXFPRipd//2WefhSuLPjZnzhz3Y/v27TOPJUqUyNq8efMD5fS8IEYUkEJDQx94Dzt27GilTJnSunXrVqwCkv4fGzdufKAs+v67AqSaNm2aeXzt2rXux0qVKmUu9hcvXnQ/9vvvv5vj0xDrGeySJ08e7vX27t1r3lvPgHTkyBHz2IgRI8KVc9euXSaIeT4enWNcsGBBhAHcm/f7qkG3ePHiJix70tdKlixZuHPiel808HoG3AEDBjxw/lyfCQ1RLrdv33a/j66AHVFAql69ulWiRIlw51k/qxUqVLAeffTRKI8P+LdoYgNsUqNGDdOslTt3btOckjp1almwYIHkzJnTdNZW2vTlqXfv3ub2+++/j/J1tTnqq6++cj+mHb+12ev1119/YP8OHTqEG3auTUfafHX06FHztTaD3blzR3r06CGJEv3/XxlvvPGGpE2b9oGy6HHo8bho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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig, ax = plt.subplots()\n", "ax.plot(x, sample, c='k')\n", "ax.set(xlabel='$x$', ylabel='$y$', title='Polynomial model sample');" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "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.9.13" } }, "nbformat": 4, "nbformat_minor": 5 }