Skip to content

Instantly share code, notes, and snippets.

@LuxXx
Created August 20, 2020 10:14
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save LuxXx/3b8d22ee32ae033209402d747e07eed6 to your computer and use it in GitHub Desktop.
Save LuxXx/3b8d22ee32ae033209402d747e07eed6 to your computer and use it in GitHub Desktop.
Linear Regression with sympy
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import numpy as np\n",
"import sympy\n",
"import matplotlib.pyplot as plt"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"std = 1\n",
"N = 20"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"x_obs = np.arange(N)\n",
"y_obs = np.arange(N) + np.random.normal(0, std, N)\n",
"model = lambda x: [1, x, x*x]\n",
"x_obs, y_obs;"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [],
"source": [
"x = sympy.Matrix([model(k) for k in x_obs])\n",
"y = sympy.Matrix(y_obs)\n",
"gamma = (x.T*x).inv()*x.T*y"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [],
"source": [
"t = sympy.Symbol('t')\n",
"A = sympy.Matrix(model(t))\n",
"mf = lambda v: ((A.T*gamma)[0]).subs(t, v)\n",
"mf = np.vectorize(mf)"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[<matplotlib.lines.Line2D at 0x1187fa30>]"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAX4AAAD8CAYAAABw1c+bAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4zLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvnQurowAAIABJREFUeJzt3Xl4VOX5//H3HQgQFllkkS2yCCiyqRFU1OIGCipo1WL9tVi1aKu1arWCWhesS8W9VpGvWrWLorKqKKIVcasKioR9EyQJOyZsCWS5f3/MxIYwEyaZJJPJfF7XxZWZc54z52Ym+eTknOc8j7k7IiKSOJJiXYCIiFQvBb+ISIJR8IuIJBgFv4hIglHwi4gkGAW/iEiCUfCLiCQYBb+ISIJR8IuIJJi6sS4glJYtW3qnTp1iXYaISNyYP3/+VndvFUnbGhn8nTp1Yt68ebEuQ0QkbpjZukjbHvRUj5l1NLMPzWypmS02s98Hl7cws9lmtjL4tXmY7UcF26w0s1GR/zdERKQqRHKOvwD4g7sfBZwAXGtmPYExwAfu3g34IPh8P2bWArgLGAD0B+4K9wtCRESqx0GD3903uPvXwcc7gaVAe2A48FKw2UvAiBCbDwFmu/t2d/8BmA2cXRmFi4hIxZSrV4+ZdQKOAb4A2rj7Bgj8cgBah9ikPbC+xPOM4LJQrz3azOaZ2bwtW7aUpywRESmHiIPfzBoDk4Eb3H1HpJuFWBZyAgB3n+juae6e1qpVRBemRUSkAiIKfjNLJhD6/3L3KcHFm8ysbXB9W2BziE0zgI4lnncAsiperoiIRCuSXj0GPA8sdfdHS6yaART30hkFTA+x+SxgsJk1D17UHRxcJiIiMRLJEf9A4BfA6Wa2IPhvKPAgcJaZrQTOCj7HzNLM7DkAd98O3At8Ffw3LrhMRERK+Hz1NiZ8tLpa9nXQG7jc/RNCn6sHOCNE+3nAVSWevwC8UNECRURqs/Xb9/DAO0uZmb6Rji1SGHViJ1Lq1anSfdbIO3dFRGq7PfsKeGbOap6du4Y6Ztx0VndGn9qFBslVG/qg4BcRqVbuzoxvs3hg5jI27sjj/L7tGDv0SNo2Tam2GhT8IiLVZGFGNve8uYT5636gd/umPPXzY0jr1KLa61Dwi4hUsS079zJ+1jJen5/BoY3q8dBP+3DRcR1ISgp3+bRqKfhFRKrIvoIiXvpsLU9+sJLc/EKuOrkzvzujG4c0SI5pXQp+EZFKMO2bTMbPWk5Wdi7tmqUwrE9b3l+6iTVbdjOoRyv+dG5PurZqHOsyAQW/iEjUpn2Tydgp6eTmFwKQmZ3LxLlraNW4Pn+//HhOOzLUUGaxo6kXRUSiNH7W8h9Dv6TkOlbjQh8U/CIiUSkqcjKzc0Ou25CTV83VREbBLyJSQQszsrlowmdh17drVn1988tDwS8iUk5bd+1lzOSFDP/bp3y/fQ+XHt+RBnX3j9OU5DrcMqRHjCosmy7uiohEKL+wiH98vo7H3l9B7r5CrhzYmevPDHTPHNDl0P169dwypAcjjgk571TMKfhFRCLw2eqt3D1jMSs27eLkI1py13k96damyY/rRxzTvsYGfWkKfhGRMmRm53Lf20uYmb6RDs1TePYXxzG4ZxsCU5XEJwW/iEgIefmFTJy7hqfnrAKo1tEzq5qCX0SkBHfn/aWbGffWYtZvz2Vo78O4behRdGjeMNalVZqDBr+ZvQCcC2x2917BZZOA4svVzYBsd+8XYtu1wE6gEChw97RKqltEpNJNnLuaR95bwd6CIuomGb8d1JU/nn1krMuqdJEc8b8IPAW8XLzA3X9W/NjMHgFyytj+NHffWtECRUSq2u69BVz/6jd8sHTzj8sKipy/f7qW7m2axM1F20hFMvXiXDPrFGpdcCL2S4DTK7csEZGKKT1YWlndKt2dtxZu4L63l7Jxx4F32ebmFzJ+1vLEC/6DOAXY5O4rw6x34D0zc+BZd58Y5f5ERMIKNVja2CnpAAeE9/KNO7lrxiL+u2Y7R7c7JGTwA2SFGY4hnkV75+6lwCtlrB/o7scC5wDXmtmp4Rqa2Wgzm2dm87Zs2RJlWSKSiEINllZ81F5sR14+495cwtAnP2bZxp3cd0EvZlx3Mu3DDK9QU4ddiEaFg9/M6gIXApPCtXH3rODXzcBUoH8ZbSe6e5q7p7Vq1aqiZYlIAgt3dJ6VnUtRkTN5fganP/wRf//sO352fEc+/MMgLhtwOHWSjFuG9CClVFfNmjzsQjSiOdVzJrDM3TNCrTSzRkCSu+8MPh4MjItifyIiZWrXLCXkSJktG9fnkmc/Z966H+jXsRl/v/x4endoul+b4lNB8TLsQjQi6c75CjAIaGlmGcBd7v48MJJSp3nMrB3wnLsPBdoAU4N3t9UF/u3u71Zu+SIi/3PLkB77neMHqJNkbN29l0L3g851G0/DLkQjkl49l4ZZfnmIZVnA0ODjNUDfKOsTEYlYcWg/9O4ysnLySDIocueXJxzOTWf1oGnD2M51W1Pozl0RqVW6tmpM60MakJWTx7Gpzbln+NEc3a7pwTdMIAp+EakVsvfsY/ys5fz7y+85tFE9Hrm4Lxce2z6uB1OrKgp+EYlrRUXO6/PX8+A7y8jJzWfUiZ248azuNE3RaZ1wFPwiErcWZeZwx7RFLFifTdrhzRk3vBc92x0S67JqPAW/iMSdnD35PPzecv75xTqd1qkABb+IxI2iImfy1xk8+M4yftizL9BbZ3APndYpJwW/iMSFJVk7uHP6Iuat+4FjU5vx8pX91VunghT8IlKj7cjL57HZK3jps7U0a1iPhy7qw0XHhr8JSw5OwS8iNZK7M31BFvfNXMrWXXu5bEAqNw/uQbOG9WJdWtxT8ItIjbNy007+ND0wZHLfDk15flQafTo0i3VZtYaCX0RqjN17C3jyPyt5/uPvaFS/Lvdf0JuRx3fUaZ1KpuAXkZhzd2Yt3sg9by5hQ04el6R14Nazj+TQxvVjXVqtpOAXkZhat203d81YzJzlWzjysCY89fNjOO7wFrEuq1ZT8ItITOTlFzLho9U8PWc19eokcee5PfnliYdTt060EwPKwSj4RaTafbRiC3dOX8S6bXs4r2877hh2FG0OaRDrshKGgl9EKt20bzJDzmS1MSePcW8tZmb6Rrq0bMQ/rxzAyd1axrrchBPJDFwvAOcCm929V3DZ3cCvgeJZ0W9z95khtj0beAKoQ2BmrgcrqW4RqaGmfZO53yxYmdm5jJm8kA+Xb+b9JZsoKHL+cFZ3Rv+kC/Xr1jnIq0lViOSI/0XgKeDlUssfc/eHw21kZnWAvwFnARnAV2Y2w92XVLBWEYkD42ct32/qQ4C8giKmL8jitB6tuOf8XqQe2jBG1QlENvXiXDPrVIHX7g+sCk7BiJm9CgwHFPwitVhWiMnOi71w+fEHHUEz3GkiqTzRXD6/zswWmtkLZtY8xPr2wPoSzzOCy0SkFmvbNPRF2vbNUiIK/bFT0snMzsUJnCYaOyWdad9kVkGliauiwf8M0BXoB2wAHgnRJtQn7OFe0MxGm9k8M5u3ZcuWcM1EpJpM+yaTgQ/+h85j3mbgg/+JKHyXb9xJg+QDz9unJNfhliE9Drp9qNNEufmFjJ+1PPLC5aAqFPzuvsndC929CPg/Aqd1SssAOpZ43gHIKuM1J7p7mruntWrVqiJliUglKe+R9559BTzwzlKGPfkxP+zZx8jjO9KuaQOMwJH+Axf2juh0TbjTRGWdPpLyq1B3TjNr6+4bgk8vABaFaPYV0M3MOgOZwEjg5xWqUkSqVVlH3qUDfPaSTdw9YzGZ2blcktaBMeccRYtGFRtBs12zFDJDhHy7ZikVej0JLZLunK8Ag4CWZpYB3AUMMrN+BE7drAWuDrZtR6Db5lB3LzCz64BZBLpzvuDui6vkfyEilSqSI+/M7FzumbGY95Zsonubxrx+zYkc3ym6oRZuGdJjv66gEPlpIolcJL16Lg2x+PkwbbOAoSWezwQO6N8vIjVbWUfe+YVFvPjpWh57fwXuMOacI7ny5M4kV8JQC8V/TahXT9Uy97DXW2MmLS3N582bF+syRBJW6ZuwIHDkPfrULsxavJFlG3dy5lGtufv8o+nQXH3yawIzm+/uaZG01ZANInKA0kfehx3SgE4tG/HEBytp27QBE/7fcQw5us1Bu2dKzaTgF5GQRhzTnuH92jF9QRZ/fnsJX67dzlUnd+bGs7rTqL6iI57p0xOpxaK5C3bNll38afoiPl21jX4dm/HSFb04ul3TKq5YqoOCX6SWCjVY2tgp6QBlhv/egkKembOapz9cTf3kJO4d0Yuf90+ljqY/rDUU/CK1VHn64hf7bPVW7pi6iDVbd3Ne33b8adhRtNY4+bWOgl+klirPXbDbdu3lvplLmfJ1JqktGvLSFf35SXfdQV9bKfhFaqlI7oJ1d16fn8H9M5eyK6+Aa0/ryu9O7xZyvB2pPRT8IrXUwe6CXbV5F7dNTefL77aTdnhz7r+wN93bNIlVuVKNFPwitVS4u2DP7nUYj85ewTNzVpGSXIcHL+zNJWkdSdLF24Sh4BepxUYc036/C7mfrd7K0Cc+Zs3W3Qzv1447hvWkVZP6MaxQYkHBL5IAtu/ex31vL2Xy1xkcfmhD/nFlf07ppou3iUrBL1KLuTtvBC/e7swr4LeDunL9Gbp4m+gU/CK11Jotu7h96iI+X7ON4w5vzgO6eCtBCn6RWmZfQRETPlrNUx+uon7dJO67oBeXHp+qi7fyIwW/SC3y1drtjJ2SzqrNuxjWpy13ndtTd97KART8IrVATm4+D76zjFe+/J72zVL4++XHc9qRrWNdltRQkUy9+AJwLrDZ3XsFl40HzgP2AauBX7l7doht1wI7gUKgINJJAkQkMu7OzPSN3P3mYrbt2suvTwkMm9ywno7pJLxI5kp7ETi71LLZQC937wOsAMaWsf1p7t5PoS9SuTKzc7nqpXlc+++vaXNIfWZcdzK3D+up0JeDimTO3blm1qnUsvdKPP0vcFHlliUi4RQWOS9+tpZH3luOO9wx7CguP6kTdSthzltJDJVxaHAFMCnMOgfeMzMHnnX3ieFexMxGA6MBUlNTK6EskdpncVYOY6ekszAjh0E9WnHv8F50bKE5b6V8ogp+M7sdKAD+FabJQHfPMrPWwGwzW+buc0M1DP5SmAiBydajqUuktiieQSszO5fG9euyZ18BLRrV46+XHsO5fdpqzlupkAr/bWhmowhc9L3M3UMGtbtnBb9uBqYC/Su6P5FEUzyDVvHQyrv2FmAYN57ZnfP6tlPoS4VVKPjN7GzgVuB8d98Tpk0jM2tS/BgYDCyqaKEiiebBd5YdMINWoTtPz1kdo4qktjho8JvZK8DnQA8zyzCzK4GngCYETt8sMLMJwbbtzGxmcNM2wCdm9i3wJfC2u79bJf8LkVrE3Zn2TSYbd+SFXB9uZi2RSEXSq+fSEIufD9M2CxgafLwG6BtVdSIJZv32Pdw+bRFzV2whuY6RX3jgWdSSM2iJVIQ6/IrUAAWFRcEumitIMrj7vJ4c0iCZ26ctCjuDlkhFKfhFYmxJ1g7GTFnIwowczjiyNfeO6PXjUX1Skh0wg1bJiVVEKkLBLxIjefmFPPnBSp6du4bmDZN58tJjOK9UF83SM2iJVAYFv0gMfL56G7dNTee7rbu5+LgO3D7sKJo1rBfrsiRBKPhFqlFObj4PzFzKq1+tJ7VFQ/511QAGHtEy1mVJglHwi1STdxdt4E/TA6NoXn1qF244szsp9TQFolQ/Bb9IFdu0I487py9i1uJN9Gx7CC+MOp7eHZrGuixJYAp+kSpSVORMmree+2cuZV9BEWPOOZIrT+5MskbRlBhT8ItUgbVbdzNmykL+u2Y7J3RpwQMX9qFzy0axLksEUPCLVKqCwiKe++Q7Hpu9gnp1k3jgwt6MPL6jBlSTGkXBL1JJFmflcOvkhSzK3MHgnm24d0Qv2miic6mBFPwiUcrLL+Sv/1nJhI/W0LxhPZ6+7FjO6XWYjvKlxlLwi0Thq7XbuXXyQtZs0Y1YEj8U/CIVsGtvAQ+9u4yXP19Hh+Yp/OPK/pzSrVXItsWzaGm8HakpFPwiESgZ3i0a1aPQnZzcfK4Y2Jk/DO5Oo/qhf5SKZ9EqHmEzMzuXsVPSART+EjPqUCxyECWnQHRg2+595OzJ5/rTu3HneT3Dhj7A+FnLD5hFKze/kPGzlldx1SLhRRT8ZvaCmW02s0UllrUws9lmtjL4tXmYbUcF26wMztMrElceevfAKRAdeGN+xkG3DTdblmbRkliK9Ij/ReDsUsvGAB+4ezfgg+Dz/ZhZC+AuYACBidbvCvcLQqQm2rQjj6ycik+BGG62LM2iJbEUUfC7+1xge6nFw4GXgo9fAkaE2HQIMNvdt7v7D8BsDvwFIlLjuDuvfbWeMx/9KGybSML7liE9SEnefyA2zaIlsRbNxd027r4BwN03mFnrEG3aA+tLPM8ILhOpsdZv38NtU9P5eOVW+nduwVlHteHR2SsqNAVi8QVc9eqRmqSqe/WEuoPlwNmjATMbDYwGSE1NrcqaREIqKnJe/nwtD81ajgH3jujFZf1TSUoyWjWpX+Hw1ixaUtNEE/ybzKxt8Gi/LbA5RJsMYFCJ5x2AOaFezN0nAhMB0tLSQv5yEKkqq7fs4tY3FjJv3Q/8pHsr7r+wN+1LnMpReEttEk3wzwBGAQ8Gv04P0WYWcH+JC7qDgbFR7FOkUhUPqvbo7BWkJNfh4Yv78tNj22u4BanVIgp+M3uFwJF7SzPLINBT50HgNTO7EvgeuDjYNg24xt2vcvftZnYv8FXwpca5e+mLxCIxsWzjDm55fSHpmTkMOTowqFrrJhpUTWo/c695Z1XS0tJ83rx5sS5Dapniu28zs3Np0qAue/YV0iwlmXuGH82w3m11lC9xzczmu3taJG01ZIMkhNJDJ+zMK6COGTee1Z1z+7SLcXUi1UtDNkhCCHX3baE7z8xZHaOKRGJHR/wSVyoy0uX8dT9EdfetSG2j4Je4Ud6RLnP3FfLIe8t5/tPvqGNGYYjrWRo6QRKRTvVI3CjPSJdfrNnGOU/M5blPvuOyAancd0EvDZ0gEqQjfokbkYx0uTs4QcpLn6+jY4sU/v3rAZzUtSUADZLraOgEERT8EkfaNUshM0T4F5+u+WzVVv44eSEZP+Ry+Umd+OPZPWhY73/f4rr7ViRAp3okboQb6fJ3px/B7VPT+flzX1A3yXjt6hO5+/yj9wt9Efkf/WRI3Ag10uX5fdvx1/+sIisnl6tO7swfBvcgpV6dg7ySSGJT8EtcKT5dsyMvn/vfXsozH62mS6tGvHHNSRx3uOb4EYmEgl/izpzlmxk7JZ1NO/K4+idduPHM7jRI1lG+SKQU/BI3cnLzue/tJbw2L4MjWjdm8m9O4phUHeWLlJeCX+LCh8s3M3ZyOpt35vGbQV35/RnddJQvUkEKfqnRSh7ld2vdmAm/GEi/js1iXZZIXFPwS42lo3yRqqHglxpHR/kiVavCwW9mPYBJJRZ1Ae5098dLtBlEYErG74KLprj7uIruU2q/Ocs3M0ZH+SJVqsLB7+7LgX4AZlYHyASmhmj6sbufW9H9SGLYkZfPfW8tZdK89Ryho3yRKlVZp3rOAFa7+7pKej1JIHNXbGHM5IVs3JHHNT/pyg1n6ihfpCpVVvCPBF4Js+5EM/sWyAJudvfFlbRPiXM78/K5f+ZSXvlyPV1bNVK/fJFqEnXwm1k94HxgbIjVXwOHu/suMxsKTAO6hXmd0cBogNTU1GjLkhruk5VbuXXyQjbk5HL1qV248SzdfStSXSrjiP8c4Gt331R6hbvvKPF4ppk9bWYt3X1riLYTgYkAaWlpB06VJLXCpC+/Z9xbS9i9r5C6ScbvTu/GjWd1j3VZIgmlMoZlvpQwp3nM7DAzs+Dj/sH9bauEfUocGj9rGWOmpLN7X2AWrYIiZ+LcNUz7JjPGlYkklqiC38waAmcBU0osu8bMrgk+vQhYFDzH/yQw0j3ExKdSq+3ZV8DdMxbztw9XU/rDDzd1oohUnahO9bj7HuDQUssmlHj8FPBUNPuQ+PbV2u3c/Pq3rNu2J2ybcFMqikjV0AxcUiXy8gv581tLuOTZzykscl759Qm0D06RWFq7MMtFpGoo+KXSLVifzbAnP+a5T77jsgGpzLrhVE7semjYqRNvGdIjRpWKJCaN1SOVZm9BIU+8v5IJH63msEMa8M8rB3Byt5Y/rg81deItQ3poAnSRaqbgT1DTvsms1ABelJnDza9/y7KNO7kkrQN3nNuTQxokH9CueOpEEYkdBX8CmvZNJmOnpJObH+hWmZmdy9gp6QDlDuX8wiKe/nA1f/3PSlo0qscLl6dx+pFtKr1mEak8Cv4ENH7W8h9Dv1hxt8pIgr/4r4XM7FyS6xj5hc6Ifu24+/yjadawXlWVLSKVRMGfgMJ1n4ykW+W0bzIZM3kheQVFAOQXOvXqJDGoR2uFvkicUK+eBBSu+2Qk3SofmLn0x9Avtq+wSDdhicQRBX8Cqki3yqIi5+XP17Jp596Q63UTlkj80KmeBFTebpWZ2bn88Y1v+XTVNurXTWJvqSN+0E1YIvFEwZ+gIulW6e68MT+DcW8uocidBy7sTYO6Sdw2ddF+F4d1E5ZIfFHwS0ibd+Zx25RFvL90EwM6t+Dhi/vSsUVDAMxMN2GJxDEFvxxgZvoGbp8aGD75jmFHccXAziQl2Y/rdROWSHxT8MuPsvfs464Zi5m+IIs+HZry6CV9OaJ1k1iXJSKVTMEvAMxZvplbJy9k26593HRWd34zqCvJddTpS6Q2UvAnuN17C7hv5lL+/cX3dG/TmOdHHU+v9k1jXZaIVCEFfwKbt3Y7N732Let/2MPoU7twkyY8F0kIUQe/ma0FdgKFQIG7p5Vab8ATwFBgD3C5u38d7X6l4vYWFPLo7BVMnLuGDs1TmDT6RPp3bhHrskSkmlTWEf9p7r41zLpzgG7BfwOAZ4JfJQaWZO3gptcWsGzjTi7tn8rtw46icX394SeSSKrjJ3448HJwkvX/mlkzM2vr7huqYd8SVFBYxLNz1/D4+yto1lDDJ4skssoIfgfeMzMHnnX3iaXWtwfWl3ieEVy2X/Cb2WhgNEBqamollCXF1m7dzU2vLeDr77MZ1rstfx7Ri+aNNJKmSKKqjOAf6O5ZZtYamG1my9x9bon1FmIbP2BB4BfGRIC0tLQD1kv5uTv/+uJ77nt7Kcl1jCdG9uP8vu0IXHYRkUQVdfC7e1bw62Yzmwr0B0oGfwbQscTzDkBWtPuVsm3akccf31jIRyu2cEq3ljx0UR/aNtVAaiISZfCbWSMgyd13Bh8PBsaVajYDuM7MXiVwUTdH5/er1lsLs7hj2iLy8gsZN/xofnHC4TrKF5EfRXvE3waYGgyVusC/3f1dM7sGwN0nADMJdOVcRaA756+i3KeEkbMnnztnLGL6giz6dmzGY5f0pUurxrEuS0RqmKiC393XAH1DLJ9Q4rED10azHzm4T1Zu5ebXv2XLrr3ceGZ3rj2tK3U15IKIhKAO3HEuL7+QB99ZxoufraVrq0ZM/OVJ9OnQLNZliUgNpuCPYwszsrlx0gJWb9nN5Sd1Ysw5R2rIBRE5KAV/HCooLOLpOat58oOVtGpSn39eOYCTu7WMdVkiEicU/HHmu627uXHSAhasz2Z4v3aMO78XTRsmx7osEYkjCv444e78+8vv+fNbgZuxnrz0GM7v2y7WZYlIHFLwx4HNO/O49Y2FfLg8cDPW+Iv6cljTBkz7JlNz34pIuSn4a7hZizcydko6u/cWcNd5PRl1YieSkoxp32Qydko6ufmFAGRm5zJ2SjqAwl9EyqTgr6F27S3gnhmLeX1+Br3aH8LjP+u33/y342ct/zH0i+XmFzJ+1nIFv4iUScFfA321djs3vbaAzB9yufa0rvz+jO7Uq7v/zVhZ2bkhtw23XESkmIK/BtlXUMTj769gwker6dC8Ia9dfSJpnULPjNWuWQqZIUK+XTMNxCYiZdM9/TXEyk07ueDpT3l6zmouOq4DM39/StjQB7hlSA9SSt2slZJch1uG9KjqUkUkzumIP8aKipyXP1/LA+8so1H9ujz7i+MYcvRhB92u+Dy+evWISHkp+GNo0448bn79Wz5euZXTerTiLxf1oXWTBhFvP+KY9gp6ESk3BX+MvLtoA2OmpJOXX8ifR/TisgGpGjNfRKqFgr+a7czL5543l/DG/Ax6t2/K4yP70VVj5otINVLwV6P567Zzw6RAN83fnX4E15/RjWSNmS8i1azCwW9mHYGXgcOAImCiuz9Rqs0gYDrwXXDRFHcvPTVjrZdfWMSTH6zkbx+uon3zlP26aWrYBRGpbtEc8RcAf3D3r82sCTDfzGa7+5JS7T5293Oj2E9c+27rbm6YtIBv12dz0XEduOu8njRpEBhNU8MuiEgsVDj4gxOmbwg+3mlmS4H2QOngT0juzqtfrWfcm0uoVzeJpy87lqG92+7XRsMuiEgsVMo5fjPrBBwDfBFi9Ylm9i2QBdzs7osrY5812bZdexkzJZ3ZSzZx8hEtefjiwGiapWnYBRGJhaiD38waA5OBG9x9R6nVXwOHu/suMxsKTAO6hXmd0cBogNTU1GjLipk5yzdzyxsLydmTzx3DjuKKgZ1JSgrdTVPDLohILETVpcTMkgmE/r/cfUrp9e6+w913BR/PBJLNLOQcge4+0d3T3D2tVatW0ZQVE3n5hdw1fRGX//0rWjSsx/TrBnLVKV3Chj5o2AURiY1oevUY8Dyw1N0fDdPmMGCTu7uZ9Sfwi2ZbRfdZUy3OyuGGVxewcvMufjWwE7eeHdmk5xp2QURiIZpTPQOBXwDpZrYguOw2IBXA3ScAFwG/MbMCIBcY6e4exT5rlKIi57lP1vDwrBU0bZjMS1f05yfdy/fXioZdEJHqFk2vnk+AMscYcPengKcquo+abGNOHn94fQGfrtrG4J5tePCnfWjRqF6syxIROSjduUv5b6J6Jz0wzs6+giIeuLA3I4/vqHF2RCRuJHzwl+cmqt17Cxj35hImzVtPnw5NefzvT0BrAAAIjElEQVRn/eiicXZEJM4kfPBHehPVgvXZ3PDqN6zbvodrT+vKDWd21zg7IhKXEj74D3YTVWGRM+Gj1Tw2ewWtm9TnlV+fwAldDq3OEkVEKlXCB39ZN1FlZudy46sL+HLtds7t05b7RvSmacPkGFQpIlJ5Ej74bxnSY79z/BC4ieqMo1pz9uNzKSpyHr64Lz89tn3IC7gaXVNE4k3CB3/pm6gOa9qADs1TePnzdRyT2ozHf9aPww9tFHJbja4pIvFIVycJhPSnY05nym9Pol7dJOav+4HrTz+C168+MWzoQ9kXhkVEaqqEP+KHwAXcZ+as4rH3V3LYIQ2YdPWJHB+cKKUsGl1TROJRwgd/ZnYuN05awJffbef8vu24d0QvmqZEdgFXo2uKSDxK6FM9by3M4pzH57I4M4dHL+nLEyP7RRz6oNE1RSQ+JeQR/+69Bdw9YzGvz8+gX8dmPDEy/AXcsmh0TRGJR7Um+CPtVvnt+mx+H7wD93enH8H1Z3SL6g5cja4pIvGmVgR/JN0qi4qcZ+eu4ZH3ltO6SX1e/fUJDNAduCKSgGpF8B9svJ2NOXnc9NoCPlu9jaG9D+OBC/roDlwRSVi1IvjL6lY5a/FGbp28kL35RTz00z5cnNZBQyiLSEKLds7ds81suZmtMrMxIdbXN7NJwfVfmFmnaPYXTrjukw3r1eHqf8ynQ/MU3r7+ZC7RuPkiIhUPfjOrA/wNOAfoCVxqZj1LNbsS+MHdjwAeA/5S0f2VJVS3SgN27ytk9KldmPKbgRo3X0QkKJpTPf2BVe6+BsDMXgWGA0tKtBkO3B18/AbwlJlZZc+7W3wB96F3l5GVkwdA4wZ1+dvPj+XUcs6BKyJS20Vzqqc9sL7E84zgspBt3L0AyAGqpCvNuX3aclTbQwA4rUcrPrx5kEJfRCSEaI74Q50sL30kH0mbQEOz0cBogNTU1HIXU7dOEl1aNeLkbj25/KROOpcvIhJGNMGfAXQs8bwDkBWmTYaZ1QWaAttDvZi7TwQmAqSlpVXoVNDtw0pfYhARkdKiOdXzFdDNzDqbWT1gJDCjVJsZwKjg44uA/1T2+X0RESmfCh/xu3uBmV0HzALqAC+4+2IzGwfMc/cZwPPAP8xsFYEj/ZGVUbSIiFRcVDdwuftMYGapZXeWeJwHXBzNPkREpHIl9LDMIiKJSMEvIpJgFPwiIglGwS8ikmAU/CIiCcZqYrd6M9sCrKvg5i2BrZVYTmVRXeWjuspHdZVPbazrcHePaJyaGhn80TCzee6eFus6SlNd5aO6ykd1lU+i16VTPSIiCUbBLyKSYGpj8E+MdQFhqK7yUV3lo7rKJ6HrqnXn+EVEpGy18YhfRETKELfBX1Mmei+1z45m9qGZLTWzxWb2+xBtBplZjpktCP67M9RrVUFta80sPbjPeSHWm5k9GXy/FprZsdVQU48S78MCM9thZjeUalMt75eZvWBmm81sUYllLcxstpmtDH5tHmbbUcE2K81sVKg2lVzXeDNbFvycpppZszDblvmZV0Fdd5tZZonPamiYbcv82a2CuiaVqGmtmS0Is21Vvl8hsyFm32PuHnf/CAwDvRroAtQDvgV6lmrzW2BC8PFIYFI11NUWODb4uAmwIkRdg4C3YvCerQValrF+KPAOgVnTTgC+iMFnupFAX+Rqf7+AU4FjgUUllj0EjAk+HgP8JcR2LYA1wa/Ng4+bV3Fdg4G6wcd/CVVXJJ95FdR1N3BzBJ9zmT+7lV1XqfWPAHfG4P0KmQ2x+h6L1yP+Hyd6d/d9QPFE7yUNB14KPn4DOMOqeD5Gd9/g7l8HH+8ElnLgPMQ11XDgZQ/4L9DMzNpW4/7PAFa7e0Vv3IuKu8/lwNnhSn4PvQSMCLHpEGC2u2939x+A2cDZVVmXu7/ngTmsAf5LYPa7ahXm/YpEJD+7VVJX8Of/EuCVytpfpMrIhph8j8Vr8Neoid5DCZ5aOgb4IsTqE83sWzN7x8yOrqaSHHjPzOZbYH7j0iJ5T6vSSML/QMbi/QJo4+4bIPCDC7QO0SbW79sVBP5SC+Vgn3lVuC54CuqFMKctYvl+nQJscveVYdZXy/tVKhti8j0Wr8FfqRO9VzYzawxMBm5w9x2lVn9N4HRGX+CvwLTqqAkY6O7HAucA15rZqaXWx/L9qgecD7weYnWs3q9IxfJ9ux0oAP4VpsnBPvPK9gzQFegHbCBwWqW0mL1fwKWUfbRf5e/XQbIh7GYhlkX1nsVr8JdnonfsIBO9VyYzSybwwf7L3aeUXu/uO9x9V/DxTCDZzFpWdV3unhX8uhmYSuBP7pIieU+ryjnA1+6+qfSKWL1fQZuKT3cFv24O0SYm71vwAt+5wGUePBFcWgSfeaVy903uXujuRcD/hdlfrN6vusCFwKRwbar6/QqTDTH5HovX4K+RE70HzyE+Dyx190fDtDms+FqDmfUn8Blsq+K6GplZk+LHBC4OLirVbAbwSws4Acgp/hO0GoQ9EovF+1VCye+hUcD0EG1mAYPNrHnw1Mbg4LIqY2ZnA7cC57v7njBtIvnMK7uukteELgizv0h+dqvCmcAyd88ItbKq368ysiE232NVcQW7Ov4R6IWygkAPgduDy8YR+GEAaEDg1MEq4EugSzXUdDKBP8EWAguC/4YC1wDXBNtcBywm0Jvhv8BJ1VBXl+D+vg3uu/j9KlmXAX8Lvp/pQFo1fY4NCQR50xLLqv39IvCLZwOQT+AI60oC14Q+AFYGv7YItk0Dniux7RXB77NVwK+qoa5VBM75Fn+PFfdeawfMLOszr+K6/hH83llIINDalq4r+PyAn92qrCu4/MXi76kSbavz/QqXDTH5HtOduyIiCSZeT/WIiEgFKfhFRBKMgl9EJMEo+EVEEoyCX0QkwSj4RUQSjIJfRCTBKPhFRBLM/wcZErgueOp/GgAAAABJRU5ErkJggg==\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"plt.scatter(x.col(1), y)\n",
"plt.plot(np.linspace(0, N, 100), mf(np.linspace(0, N, 100)))"
]
}
],
"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.7.3"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment