diff --git a/ErrorAnalysis/ErrorAnalysis.ipynb b/ErrorAnalysis/ErrorAnalysis.ipynb
new file mode 100644
index 0000000000000000000000000000000000000000..87588e9f32a3554d32f4067b6570c2ebe9ef4af3
--- /dev/null
+++ b/ErrorAnalysis/ErrorAnalysis.ipynb
@@ -0,0 +1,676 @@
+{
+ "cells": [
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "<img src=\"logo.png\" alt=\"University of Illinois\" style=\"width: 200px;\"/>\n",
+    "\n",
+    "### Error Analysis ###\n",
+    "by: Richard Sowers\n",
+    "* <r-sowers@illinois.edu>\n",
+    "* <https://publish.illinois.edu/r-sowers/>\n",
+    "\n",
+    "Copyright 2019 University of Illinois Board of Trustees. All Rights Reserved. Licensed under the MIT license\n",
+    "\n",
+    "### Explanation###\n",
+    "This code plots error analysis for Manhattan Traffic Data"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "imports"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 4,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "import pandas\n",
+    "import numpy\n",
+    "import matplotlib.pylab as plt\n",
+    "%matplotlib inline\n",
+    "import scipy.interpolate\n",
+    "import scipy.optimize "
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "constants"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 34,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "fname=\"LevelCurveData\"\n",
+    "colorsequence=['b', 'g', 'r', 'c', 'm', 'y', 'k']"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "read data"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 6,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "    rank  beta  no_iterations  pre_error  post_error  pre_sparsity  \\\n",
+      "0     40     0            263  26.638031   41.724601      0.673253   \n",
+      "1     40  1000            174  26.958008   41.843305      0.693565   \n",
+      "2     40  2000            176  26.952959   41.781512      0.715966   \n",
+      "3     40  3000            177  26.990673   41.414115      0.730479   \n",
+      "4     40  4000            179  27.039437   41.120108      0.741846   \n",
+      "5     40  5000            180  27.107603   40.823740      0.750373   \n",
+      "6     40  6000            179  27.200291   40.558133      0.756349   \n",
+      "7     40  7000            177  27.313106   40.605093      0.760755   \n",
+      "8     40  8000            171  27.471069   40.606574      0.762338   \n",
+      "9     40  9000            182  27.645194         NaN      0.773470   \n",
+      "10    50     0            270  25.361975   41.153543      0.694137   \n",
+      "11    50  1000            187  25.667488   41.022584      0.724678   \n",
+      "12    50  2000            200  25.591666   40.397311      0.755850   \n",
+      "13    50  3000            211  25.597566   39.414694      0.776840   \n",
+      "14    50  4000            198  25.726620   39.495108      0.781262   \n",
+      "15    50  5000            195  25.831230   39.344772      0.788515   \n",
+      "16    50  6000            187  26.009028   39.566181      0.792830   \n",
+      "17    50  7000            193  26.131918   39.161717      0.801339   \n",
+      "18    50  8000            179  26.513574         NaN      0.797863   \n",
+      "19    50  9000            192  26.576391         NaN      0.807302   \n",
+      "20    60     0            283  24.401843   40.857266      0.712231   \n",
+      "21    60  1000            253  24.343230   39.466930      0.774516   \n",
+      "22    60  2000            214  24.572460   39.407980      0.787485   \n",
+      "23    60  3000            207  24.723011   39.306247      0.802759   \n",
+      "24    60  4000            195  24.903298   39.109695      0.810982   \n",
+      "25    60  5000            197  25.128871         NaN      0.820763   \n",
+      "26    60  6000            194  25.307036         NaN      0.825718   \n",
+      "27    60  7000            207  25.425537         NaN      0.836160   \n",
+      "28    60  8000            201  25.715512         NaN      0.837919   \n",
+      "29    60  9000            213  25.894979         NaN      0.845202   \n",
+      "30    70     0            285  23.537055   40.507429      0.728575   \n",
+      "31    70  1000            195  23.756524   39.466494      0.779535   \n",
+      "32    70  2000            213  23.691146   38.150236      0.814180   \n",
+      "33    70  3000            189  23.988771   38.370242      0.819442   \n",
+      "34    70  4000            203  24.129949         NaN      0.836279   \n",
+      "35    70  5000            187  24.381455         NaN      0.835210   \n",
+      "36    70  6000            171  24.720095         NaN      0.833119   \n",
+      "37    70  7000            161  25.051581         NaN      0.831572   \n",
+      "38    70  8000            165  25.220249         NaN      0.836619   \n",
+      "39    70  9000            157  25.573799         NaN      0.836309   \n",
+      "40    80     0            281  22.636278   39.887152      0.757383   \n",
+      "41    80  1000            205  22.785963   38.541131      0.808538   \n",
+      "42    80  2000            190  23.087363         NaN      0.824740   \n",
+      "43    80  3000            179  23.298403         NaN      0.833686   \n",
+      "44    80  4000            178  23.535499         NaN      0.840869   \n",
+      "45    80  5000            192  23.703209         NaN      0.853422   \n",
+      "46    80  6000            202  23.905872         NaN      0.862361   \n",
+      "47    80  7000            171  24.401883         NaN      0.856355   \n",
+      "48    80  8000            160  24.818266         NaN      0.854113   \n",
+      "49    80  9000            158  25.005476         NaN      0.857618   \n",
+      "50    90     0            286  21.946046   39.842869      0.764760   \n",
+      "51    90  1000            210  22.325356         NaN      0.824693   \n",
+      "52    90  2000            210  22.625222         NaN      0.849203   \n",
+      "53    90  3000            198  23.265543         NaN      0.855818   \n",
+      "54    90  4000            206  23.588832         NaN      0.868362   \n",
+      "55    90  5000            172  24.027408         NaN      0.863711   \n",
+      "56    90  6000            172  24.504015         NaN      0.867586   \n",
+      "57    90  7000            162  24.801417         NaN      0.867255   \n",
+      "58    90  8000            217  24.845114         NaN      0.885260   \n",
+      "59    90  9000            214  25.350232         NaN      0.884125   \n",
+      "\n",
+      "    post_sparsity  spikey_mean  spikey_std  H_zero_percent  \n",
+      "0        0.838865     0.720289    0.122731       88.617507  \n",
+      "1        0.851688     0.664605    0.112649       89.375543  \n",
+      "2        0.865042     0.629207    0.113267       90.285621  \n",
+      "3        0.872522     0.608351    0.115246       90.801477  \n",
+      "4        0.878487     0.594085    0.117988       91.222850  \n",
+      "5        0.882700     0.584894    0.121282       91.524761  \n",
+      "6        0.885206     0.579853    0.125306       91.705039  \n",
+      "7        0.887280     0.577937    0.130997       91.867941  \n",
+      "8        0.887847     0.581200    0.141841       91.922242  \n",
+      "9        0.895273          NaN         NaN       92.365334  \n",
+      "10       0.848009     0.769000    0.134002       90.075586  \n",
+      "11       0.866355     0.685509    0.126295       91.196351  \n",
+      "12       0.883902     0.641437    0.125233       92.250217  \n",
+      "13       0.894206     0.621531    0.139422       92.930495  \n",
+      "14       0.896300     0.624705    0.163593       93.070374  \n",
+      "15       0.899773     0.624037    0.174156       93.295395  \n",
+      "16       0.902260     0.630459    0.189228       93.439618  \n",
+      "17       0.906130     0.636480    0.203421       93.719374  \n",
+      "18       0.905188          NaN         NaN       93.678540  \n",
+      "19       0.910054          NaN         NaN       94.013901  \n",
+      "20       0.858228     0.802775    0.138935       91.062844  \n",
+      "21       0.893674     0.674354    0.141126       93.337677  \n",
+      "22       0.901314     0.645568    0.129150       93.735158  \n",
+      "23       0.908879     0.632908    0.136831       94.185491  \n",
+      "24       0.912043     0.642716    0.165243       94.420794  \n",
+      "25       0.916586          NaN         NaN       94.717637  \n",
+      "26       0.918224          NaN         NaN       94.879815  \n",
+      "27       0.923680          NaN         NaN       95.238199  \n",
+      "28       0.924444          NaN         NaN       95.326528  \n",
+      "29       0.928257          NaN         NaN       95.577034  \n",
+      "30       0.864804     0.828064    0.136632       92.172024  \n",
+      "31       0.894401     0.694871    0.122168       93.758843  \n",
+      "32       0.912729     0.657580    0.146093       94.808241  \n",
+      "33       0.915191     0.668287    0.175769       94.929875  \n",
+      "34       0.921779          NaN         NaN       95.343800  \n",
+      "35       0.921254          NaN         NaN       95.344421  \n",
+      "36       0.919922          NaN         NaN       95.299119  \n",
+      "37       0.919821          NaN         NaN       95.313392  \n",
+      "38       0.922004          NaN         NaN       95.449919  \n",
+      "39       0.921553          NaN         NaN       95.505771  \n",
+      "40       0.881275     0.810585    0.141567       93.178215  \n",
+      "41       0.910436     0.682122    0.141015       94.776281  \n",
+      "42       0.919388          NaN         NaN       95.248154  \n",
+      "43       0.924052          NaN         NaN       95.520743  \n",
+      "44       0.928789          NaN         NaN       95.793875  \n",
+      "45       0.933710          NaN         NaN       96.139227  \n",
+      "46       0.936971          NaN         NaN       96.380864  \n",
+      "47       0.934619          NaN         NaN       96.254344  \n",
+      "48       0.934205          NaN         NaN       96.265204  \n",
+      "49       0.935699          NaN         NaN       96.379778  \n",
+      "50       0.885119     0.841852    0.137325       93.704991  \n",
+      "51       0.917813          NaN         NaN       95.565209  \n",
+      "52       0.929556          NaN         NaN       96.208611  \n",
+      "53       0.932820          NaN         NaN       96.404576  \n",
+      "54       0.937287          NaN         NaN       96.673907  \n",
+      "55       0.935663          NaN         NaN       96.579786  \n",
+      "56       0.936817          NaN         NaN       96.674389  \n",
+      "57       0.936471          NaN         NaN       96.683560  \n",
+      "58       0.942964          NaN         NaN       97.072111  \n",
+      "59       0.944177          NaN         NaN       97.119413  \n"
+     ]
+    }
+   ],
+   "source": [
+    "data_raw=pandas.read_csv(fname+\".csv\",na_values=['nan',' nan'])\n",
+    "print(data_raw)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 7,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "   rank  beta  no_iterations  pre_error  post_error  pre_sparsity  \\\n",
+      "0    40     0            263  26.638031   41.724601      0.673253   \n",
+      "1    40  1000            174  26.958008   41.843305      0.693565   \n",
+      "2    40  2000            176  26.952959   41.781512      0.715966   \n",
+      "3    40  3000            177  26.990673   41.414115      0.730479   \n",
+      "4    40  4000            179  27.039437   41.120108      0.741846   \n",
+      "\n",
+      "   post_sparsity  spikey_mean  spikey_std  H_zero_percent  \n",
+      "0       0.838865     0.720289    0.122731       88.617507  \n",
+      "1       0.851688     0.664605    0.112649       89.375543  \n",
+      "2       0.865042     0.629207    0.113267       90.285621  \n",
+      "3       0.872522     0.608351    0.115246       90.801477  \n",
+      "4       0.878487     0.594085    0.117988       91.222850  \n",
+      "Index(['rank', 'beta', 'no_iterations', 'pre_error', 'post_error',\n",
+      "       'pre_sparsity', 'post_sparsity', 'spikey_mean', 'spikey_std',\n",
+      "       'H_zero_percent'],\n",
+      "      dtype='object')\n"
+     ]
+    }
+   ],
+   "source": [
+    "data=data_raw.copy()\n",
+    "print(data.head())\n",
+    "print(data.columns)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 8,
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/html": [
+       "<div>\n",
+       "<style scoped>\n",
+       "    .dataframe tbody tr th:only-of-type {\n",
+       "        vertical-align: middle;\n",
+       "    }\n",
+       "\n",
+       "    .dataframe tbody tr th {\n",
+       "        vertical-align: top;\n",
+       "    }\n",
+       "\n",
+       "    .dataframe thead th {\n",
+       "        text-align: right;\n",
+       "    }\n",
+       "</style>\n",
+       "<table border=\"1\" class=\"dataframe\">\n",
+       "  <thead>\n",
+       "    <tr style=\"text-align: right;\">\n",
+       "      <th></th>\n",
+       "      <th></th>\n",
+       "      <th></th>\n",
+       "      <th>no_iterations</th>\n",
+       "      <th>pre_error</th>\n",
+       "      <th>post_error</th>\n",
+       "      <th>pre_sparsity</th>\n",
+       "      <th>post_sparsity</th>\n",
+       "      <th>spikey_mean</th>\n",
+       "      <th>spikey_std</th>\n",
+       "      <th>H_zero_percent</th>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th></th>\n",
+       "      <th>rank</th>\n",
+       "      <th>beta</th>\n",
+       "      <th></th>\n",
+       "      <th></th>\n",
+       "      <th></th>\n",
+       "      <th></th>\n",
+       "      <th></th>\n",
+       "      <th></th>\n",
+       "      <th></th>\n",
+       "      <th></th>\n",
+       "    </tr>\n",
+       "  </thead>\n",
+       "  <tbody>\n",
+       "    <tr>\n",
+       "      <th>0</th>\n",
+       "      <th>40</th>\n",
+       "      <th>0</th>\n",
+       "      <td>263</td>\n",
+       "      <td>26.638031</td>\n",
+       "      <td>41.724601</td>\n",
+       "      <td>0.673253</td>\n",
+       "      <td>0.838865</td>\n",
+       "      <td>0.720289</td>\n",
+       "      <td>0.122731</td>\n",
+       "      <td>88.617507</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>1</th>\n",
+       "      <th>40</th>\n",
+       "      <th>1000</th>\n",
+       "      <td>174</td>\n",
+       "      <td>26.958008</td>\n",
+       "      <td>41.843305</td>\n",
+       "      <td>0.693565</td>\n",
+       "      <td>0.851688</td>\n",
+       "      <td>0.664605</td>\n",
+       "      <td>0.112649</td>\n",
+       "      <td>89.375543</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>2</th>\n",
+       "      <th>40</th>\n",
+       "      <th>2000</th>\n",
+       "      <td>176</td>\n",
+       "      <td>26.952959</td>\n",
+       "      <td>41.781512</td>\n",
+       "      <td>0.715966</td>\n",
+       "      <td>0.865042</td>\n",
+       "      <td>0.629207</td>\n",
+       "      <td>0.113267</td>\n",
+       "      <td>90.285621</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>3</th>\n",
+       "      <th>40</th>\n",
+       "      <th>3000</th>\n",
+       "      <td>177</td>\n",
+       "      <td>26.990673</td>\n",
+       "      <td>41.414115</td>\n",
+       "      <td>0.730479</td>\n",
+       "      <td>0.872522</td>\n",
+       "      <td>0.608351</td>\n",
+       "      <td>0.115246</td>\n",
+       "      <td>90.801477</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>4</th>\n",
+       "      <th>40</th>\n",
+       "      <th>4000</th>\n",
+       "      <td>179</td>\n",
+       "      <td>27.039437</td>\n",
+       "      <td>41.120108</td>\n",
+       "      <td>0.741846</td>\n",
+       "      <td>0.878487</td>\n",
+       "      <td>0.594085</td>\n",
+       "      <td>0.117988</td>\n",
+       "      <td>91.222850</td>\n",
+       "    </tr>\n",
+       "  </tbody>\n",
+       "</table>\n",
+       "</div>"
+      ],
+      "text/plain": [
+       "             no_iterations  pre_error  post_error  pre_sparsity  \\\n",
+       "  rank beta                                                       \n",
+       "0 40   0               263  26.638031   41.724601      0.673253   \n",
+       "1 40   1000            174  26.958008   41.843305      0.693565   \n",
+       "2 40   2000            176  26.952959   41.781512      0.715966   \n",
+       "3 40   3000            177  26.990673   41.414115      0.730479   \n",
+       "4 40   4000            179  27.039437   41.120108      0.741846   \n",
+       "\n",
+       "             post_sparsity  spikey_mean  spikey_std  H_zero_percent  \n",
+       "  rank beta                                                          \n",
+       "0 40   0          0.838865     0.720289    0.122731       88.617507  \n",
+       "1 40   1000       0.851688     0.664605    0.112649       89.375543  \n",
+       "2 40   2000       0.865042     0.629207    0.113267       90.285621  \n",
+       "3 40   3000       0.872522     0.608351    0.115246       90.801477  \n",
+       "4 40   4000       0.878487     0.594085    0.117988       91.222850  "
+      ]
+     },
+     "execution_count": 8,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "data=data.set_index([\"rank\",\"beta\"],drop=True,append=True)\n",
+    "data.head()"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 9,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "[40 50 60 70 80 90]\n"
+     ]
+    }
+   ],
+   "source": [
+    "rankvals=pandas.unique(data.index.get_level_values(\"rank\"))\n",
+    "print(rankvals)\n",
+    "data_by_rank=data.groupby(by=\"rank\")"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 36,
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "image/png": "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\n",
+      "text/plain": [
+       "<Figure size 432x288 with 1 Axes>"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    }
+   ],
+   "source": [
+    "plt.figure()\n",
+    "for n,(rank,df) in enumerate(data_by_rank):\n",
+    "    df_sorted=df.sort_values(by=\"beta\",axis=0)\n",
+    "    beta=df_sorted.index.get_level_values(\"beta\")\n",
+    "    sparsity=df_sorted[\"post_sparsity\"]\n",
+    "    plt.plot(beta,sparsity,label=\"N={:}\".format(rank),color=colorsequence[n])\n",
+    "plt.legend()\n",
+    "plt.xlabel(\"beta\")\n",
+    "plt.ylabel(\"sparsity\")\n",
+    "plt.title(\"sparsity as a function of penalty\",fontsize=\"xx-large\")\n",
+    "plt.show()\n",
+    "plt.close()"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 56,
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "image/png": "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\n",
+      "text/plain": [
+       "<Figure size 432x288 with 1 Axes>"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    }
+   ],
+   "source": [
+    "plt.figure()\n",
+    "for n,(rank,df) in enumerate(data_by_rank):\n",
+    "    df_sorted=df.sort_values(by=\"post_sparsity\",axis=0)\n",
+    "    sparsity=df_sorted[\"post_sparsity\"]\n",
+    "    error=df_sorted[\"pre_error\"]\n",
+    "    plt.plot(sparsity,error,label=\"N={:}\".format(rank),color=colorsequence[n])\n",
+    "plt.legend()\n",
+    "plt.xlabel(\"sparsity\")\n",
+    "plt.ylabel(\"error\")\n",
+    "plt.title(\"error as a function of sparsity\",fontsize=\"xx-large\")\n",
+    "plt.show()\n",
+    "plt.close()"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 57,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "class monotone_invert:\n",
+    "    def __init__(self,knots,sign=\"increasing\"):\n",
+    "        knots=[(t,y) for (t,y) in knots if not numpy.isnan(y)]\n",
+    "        if len(knots)<2:\n",
+    "            return\n",
+    "        print(knots)\n",
+    "        self.tvals=numpy.array([t for t,_ in knots])\n",
+    "        self.yvals=numpy.array([y for _,y in knots])\n",
+    "        self.N=len(knots)\n",
+    "        self.L=numpy.tril(numpy.ones(shape=(self.N,self.N)),k=0)\n",
+    "        def objective(d):\n",
+    "            error=self.yvals-self.L.dot(d)\n",
+    "            return 0.5*error.dot(error)\n",
+    "        \n",
+    "        def jacobian(d):\n",
+    "            error=self.yvals-self.L.dot(d)\n",
+    "            return self.L.T.dot(error)\n",
+    "        \n",
+    "        def hessian(d):\n",
+    "            return self.L.T*dot(self.L)\n",
+    "        \n",
+    "        print(self.N)\n",
+    "        pm=1\n",
+    "        if (sign==\"decreasing\"):\n",
+    "            pm=-1\n",
+    "        constraints={\"type\":\"ineq\",\"fun\":lambda x:pm*x}\n",
+    "        res=scipy.optimize.minimize(objective,self.yvals,method=\"COBYLA\",jac=jacobian,hessp=hessian,constraints=constraints)\n",
+    "        print(res)\n",
+    "        d_best=res.x\n",
+    "        self.y_approx_vals=self.L.dot(d_best)\n",
+    "        print(self.y_approx_vals)\n",
+    "        \n",
+    "        self.linapprox=scipy.interpolate.interp1d(self.tvals,self.y_approx_vals,copy=True,bounds_error=True)\n",
+    "        \n",
+    "    def invert(self,yval):\n",
+    "        if not (min(self.y_approx_vals)<yval<max(self.y_approx_vals)):\n",
+    "            return numpy.nan\n",
+    "        \n",
+    "        tval=scipy.optimize.brentq(lambda x:self.linapprox(x)-yval,min(self.tvals),max(self.tvals))\n",
+    "        return tval"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 86,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "[(0.8388654327627629, 26.63803139771705), (0.851687514954323, 26.958007515716748), (0.8650419351690942, 26.952958843064685), (0.8725219776895965, 26.990672702260014), (0.8784872660775024, 27.039436594751677), (0.8826995277177598, 27.107602503295283), (0.8852063376852094, 27.20029112619097), (0.8872804729674099, 27.313105633909874), (0.8878465633146485, 27.47106940880744), (0.8952729857129805, 27.645194093681265)]\n",
+      "10\n",
+      "     fun: 1.7465851504021037e-05\n",
+      "   maxcv: 3.204926956869903e-20\n",
+      " message: 'Maximum number of function evaluations has been exceeded.'\n",
+      "    nfev: 1000\n",
+      "  status: 2\n",
+      " success: False\n",
+      "       x: array([ 2.66347675e+01,  3.22010981e-01, -3.20492696e-20,  3.22751269e-02,\n",
+      "        5.14609460e-02,  6.60504354e-02,  9.49331500e-02,  1.10501223e-01,\n",
+      "        1.59678761e-01,  1.72998698e-01])\n",
+      "[26.63476755 26.95677853 26.95677853 26.98905366 27.0405146  27.10656504\n",
+      " 27.20149819 27.31199941 27.47167817 27.64467687]\n",
+      "[(0.8480086590097955, 25.36197487949973), (0.8663548974850813, 25.66748831383359), (0.8839022026959875, 25.591666460155107), (0.8942064579237392, 25.597565626508263), (0.8962998659218736, 25.726619578670263), (0.8997734472491155, 25.831229954294248), (0.9022597468179228, 26.009027804741805), (0.9051879229336092, 26.513574437011215), (0.906129528841706, 26.131917995570717), (0.9100540269577614, 26.576390813456225)]\n",
+      "10\n",
+      "     fun: 0.038195812021937975\n",
+      "   maxcv: 7.32657626504511e-20\n",
+      " message: 'Maximum number of function evaluations has been exceeded.'\n",
+      "    nfev: 1000\n",
+      "  status: 2\n",
+      " success: False\n",
+      "       x: array([ 2.53610541e+01,  2.58373558e-01, -7.29072292e-20, -7.29188180e-20,\n",
+      "        1.06238291e-01,  1.06229834e-01,  1.77143082e-01,  3.13464918e-01,\n",
+      "       -7.32657627e-20,  2.53722707e-01])\n",
+      "[25.36105412 25.61942768 25.61942768 25.61942768 25.72566597 25.83189581\n",
+      " 26.00903889 26.32250381 26.32250381 26.57622651]\n",
+      "[(0.8582278355670888, 24.401842511771523), (0.8936744459824406, 24.343229865424878), (0.9013143984785664, 24.57246012806053), (0.908879226767728, 24.723011401582752), (0.9120431759673145, 24.903298316153407), (0.916585803861727, 25.128870597103948), (0.9182241643510174, 25.307036037160085), (0.923680152937285, 25.425537392231607), (0.9244442654917396, 25.715511558804522), (0.9282573406208912, 25.894979424435977)]\n",
+      "10\n",
+      "     fun: 0.0010256981152863887\n",
+      "   maxcv: 2.1590737733573267e-19\n",
+      " message: 'Maximum number of function evaluations has been exceeded.'\n",
+      "    nfev: 1000\n",
+      "  status: 2\n",
+      " success: False\n",
+      "       x: array([ 2.43746097e+01, -2.15907377e-19,  1.89455692e-01,  1.64086799e-01,\n",
+      "        1.71869606e-01,  2.36170026e-01,  1.62588905e-01,  1.34710672e-01,\n",
+      "        2.76667136e-01,  1.86762438e-01])\n",
+      "[24.37460975 24.37460975 24.56406544 24.72815224 24.90002184 25.13619187\n",
+      " 25.29878077 25.43349145 25.71015858 25.89692102]\n",
+      "[(0.8648039548726123, 23.53705497300391), (0.8944010552242152, 23.756524428006948), (0.9127285001068114, 23.691146425415372), (0.9151909375374808, 23.988770696234344), (0.9198208152035846, 25.05158084398013), (0.9199216659194108, 24.72009516487679), (0.9212544556078396, 24.38145483647575), (0.9215534495709452, 25.573799364708613), (0.9217793266014028, 24.12994877031085), (0.9220035013843578, 25.220248779641423)]\n",
+      "10\n",
+      "     fun: 0.6345199957693715\n",
+      "   maxcv: 3.557706235855446e-20\n",
+      " message: 'Maximum number of function evaluations has been exceeded.'\n",
+      "    nfev: 1000\n",
+      "  status: 2\n",
+      " success: False\n",
+      "       x: array([ 2.35352481e+01,  1.89599956e-01, -3.55770624e-20,  2.62517981e-01,\n",
+      "        7.30581550e-01, -2.51205908e-20, -2.80457617e-20,  1.33977447e-01,\n",
+      "       -3.26325035e-20,  3.68715097e-01])\n",
+      "[23.53524811 23.72484807 23.72484807 23.98736605 24.7179476  24.7179476\n",
+      " 24.7179476  24.85192505 24.85192505 25.22064014]\n",
+      "[(0.8812751435156017, 22.636278271387898), (0.9104357215404324, 22.78596344770866), (0.919387967849143, 23.08736296153922), (0.9240519831368692, 23.298403361291445), (0.9287888212620552, 23.535499082978905), (0.9337104164968394, 23.703208733677567), (0.9342045774665652, 24.818266151599808), (0.934618933958842, 24.401882615429468), (0.9356992871040192, 25.00547558932549), (0.936971005073724, 23.90587189010079)]\n",
+      "10\n",
+      "     fun: 0.3581002896083334\n",
+      "   maxcv: 1.764117320315744e-19\n",
+      " message: 'Maximum number of function evaluations has been exceeded.'\n",
+      "    nfev: 1000\n",
+      "  status: 2\n",
+      " success: False\n",
+      "       x: array([ 2.26138615e+01,  1.95129462e-01,  2.72433790e-01,  2.16030927e-01,\n",
+      "        2.43502260e-01,  1.59182791e-01,  8.33257226e-01, -1.74562499e-19,\n",
+      "       -1.76411732e-19, -1.64932643e-19])\n",
+      "[22.6138615  22.80899096 23.08142475 23.29745568 23.54095793 23.70014073\n",
+      " 24.53339795 24.53339795 24.53339795 24.53339795]\n",
+      "[(0.8851190690740085, 21.946046310304236), (0.9178129817676176, 22.32535595505711), (0.9295563275839092, 22.62522228432957), (0.9328199304429364, 23.265542877435518), (0.935662702280138, 24.027407736896695), (0.9364706301026184, 24.801416841360897), (0.9368171040431896, 24.50401453438995), (0.937286512283342, 23.58883198125333), (0.9429635158559566, 24.8451137482077), (0.9441767767768364, 25.35023202841469)]\n",
+      "10\n",
+      "     fun: 0.39998989464849644\n",
+      "   maxcv: 1.9156791606209056e-19\n",
+      " message: 'Maximum number of function evaluations has been exceeded.'\n",
+      "    nfev: 1000\n",
+      "  status: 2\n",
+      " success: False\n",
+      "       x: array([ 2.19278786e+01,  4.20630237e-01,  2.65766141e-01,  6.52043633e-01,\n",
+      "        7.60078994e-01,  2.74283404e-01, -1.91567916e-19, -1.78015389e-19,\n",
+      "        5.33254602e-01,  5.23867187e-01])\n",
+      "[21.92787859 22.34850883 22.61427497 23.2663186  24.02639759 24.300681\n",
+      " 24.300681   24.300681   24.8339356  25.35780279]\n"
+     ]
+    },
+    {
+     "name": "stderr",
+     "output_type": "stream",
+     "text": [
+      "C:\\Users\\richa\\Anaconda3\\lib\\site-packages\\scipy\\optimize\\_minimize.py:502: RuntimeWarning: Method COBYLA does not use gradient information (jac).\n",
+      "  RuntimeWarning)\n",
+      "C:\\Users\\richa\\Anaconda3\\lib\\site-packages\\scipy\\optimize\\_minimize.py:513: RuntimeWarning: Method COBYLA does not use Hessian-vector product information (hessp).\n",
+      "  'information (hessp).' % method, RuntimeWarning)\n"
+     ]
+    },
+    {
+     "data": {
+      "image/png": "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\n",
+      "text/plain": [
+       "<Figure size 432x288 with 1 Axes>"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    }
+   ],
+   "source": [
+    "plt.figure()\n",
+    "for n,(rank,df) in enumerate(data_by_rank):\n",
+    "    df_sorted=df.sort_values(by=\"post_sparsity\",axis=0)\n",
+    "    knots=list(zip(df_sorted[\"post_sparsity\"],df_sorted[\"pre_error\"]))\n",
+    "    temp=monotone_invert(knots)\n",
+    "    plt.plot(temp.tvals,temp.yvals,label=\"N={:}\".format(rank),color=colorsequence[n])\n",
+    "    try:\n",
+    "        plt.plot(temp.tvals,temp.y_approx_vals,label=\"N={:} increasing\".format(rank),linewidth=5,linestyle=\"-.\",color=colorsequence[n])\n",
+    "    except Exception:\n",
+    "        pass\n",
+    "plt.legend(bbox_to_anchor=(1.5, 1))\n",
+    "plt.xlabel(\"sparsity\")\n",
+    "plt.ylabel(\"error\")\n",
+    "plt.title(\"error as a function of sparsity\",fontsize=\"xx-large\")\n",
+    "plt.show()\n",
+    "plt.close()"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": []
+  }
+ ],
+ "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.6.5"
+  }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 2
+}
diff --git a/ErrorAnalysis/LevelCurveData.csv b/ErrorAnalysis/LevelCurveData.csv
new file mode 100644
index 0000000000000000000000000000000000000000..d971dc3eccb04ac54a3417fa7ff7a9bcaad9c050
--- /dev/null
+++ b/ErrorAnalysis/LevelCurveData.csv
@@ -0,0 +1,61 @@
+rank,beta,no_iterations,pre_error,post_error,pre_sparsity,post_sparsity,spikey_mean,spikey_std,H_zero_percent
+40, 0, 263, 26.638031397717054, 41.724601050259544, 0.67325284492187731, 0.83886543276276293, 0.72028885344810667, 0.12273128670231878, 88.617506516072979
+40, 1000, 174, 26.958007515716751, 41.843305109070073, 0.69356453889132996, 0.85168751495432315, 0.66460491493350582, 0.11264921227496043, 89.375543006081671
+40, 2000, 176, 26.952958843064685, 41.781512272409202, 0.7159659714475104, 0.86504193516909433, 0.6292072676973659, 0.11326718316899911, 90.285621198957429
+40, 3000, 177, 26.99067270226001, 41.414115220792716, 0.73047877626970825, 0.8725219776895965, 0.60835118695759827, 0.11524625383904943, 90.801476976542133
+40, 4000, 179, 27.039436594751677, 41.120108229945949, 0.74184594890452971, 0.87848726607750238, 0.5940851637864637, 0.11798757392003154, 91.222849695916594
+40, 5000, 180, 27.107602503295279, 40.823740345452848, 0.75037304885384026, 0.88269952771775984, 0.58489361354886782, 0.12128213478529042, 91.524761077324072 
+40, 6000, 179, 27.200291126190969, 40.558132779679291, 0.75634896872700808, 0.88520633768520951, 0.57985304852964448, 0.12530576652353559, 91.705039096437872 
+40, 7000, 177, 27.313105633909874, 40.605093156077182, 0.76075454626941741, 0.88728047296740997, 0.57793679353361738, 0.13099657542516566, 91.867940920938324 
+40, 8000, 171, 27.471069408807438, 40.606574440512652, 0.76233800386547534, 0.88784656331464851, 0.58120044650522718, 0.14184094914867784, 91.922241529105136 
+40, 9000, 182, 27.645194093681262, nan, 0.77346957348226941, 0.89527298571298053, nan, nan, 92.36533449174631 
+50, 0, 270, 25.361974879499726, 41.153542763466575, 0.69413691657026422, 0.84800865900979538, 0.7690004104714151, 0.13400221938529913, 90.075586446568195 
+50, 1000, 187, 25.667488313833587, 41.022584127903777, 0.72467777146746803, 0.86635489748508121, 0.68550906050398186, 0.1262949187060492, 91.196350999131198 
+50, 2000, 200, 25.591666460155103, 40.39731143361653, 0.75584991622536346, 0.88390220269598752, 0.64143662985883265, 0.12523309193670976, 92.250217202432665 
+50, 3000, 211, 25.597565626508263, 39.414694316878965, 0.77684009657568098, 0.89420645792373921, 0.62153097257674439, 0.13942192209413276, 92.930495221546479 
+50, 4000, 198, 25.726619578670263, 39.49510793695211, 0.78126249677587556, 0.89629986592187361, 0.62470511915051508, 0.16359308940399897, 93.070373588184182 
+50, 5000, 195, 25.831229954294255, 39.344771564578735, 0.7885154003763738, 0.89977344724911545, 0.62403691464535294, 0.17415597860999174, 93.295395308427459 
+50, 6000, 187, 26.009027804741812, 39.566180993422961, 0.79282984613343566, 0.90225974681792287, 0.63045936933398361, 0.18922762238732152, 93.439617723718499 
+50, 7000, 193, 26.131917995570713, 39.161717437635652, 0.80133901537598906, 0.90612952884170606, 0.63647992536637266, 0.20342084992153153, 93.719374456993918 
+50, 8000, 179, 26.513574437011219, nan, 0.79786349170602122, 0.90518792293360928, nan, nan, 93.678540399652476 
+50, 9000, 192, 26.576390813456225, nan, 0.80730160445778809, 0.91005402695776139, nan, nan, 94.013900955690701 
+60, 0, 283, 24.401842511771516, 40.857266274824674, 0.71223134003702837, 0.85822783556708881, 0.80277515092238261, 0.13893453688376767, 91.062843903851714 
+60, 1000, 253, 24.343229865424874, 39.466929735758683, 0.7745164987937021, 0.89367444598244061, 0.67435358868257744, 0.14112619254937317, 93.33767738198668 
+60, 2000, 214, 24.572460128060531, 39.407979847131273, 0.78748455258637362, 0.90131439847856643, 0.64556759707419387, 0.12915004642516226, 93.73515783376773 
+60, 3000, 207, 24.723011401582752, 39.306247343162227, 0.80275926058763114, 0.90887922676772792, 0.63290823166849597, 0.13683144879530809, 94.185490877497827 
+60, 4000, 195, 24.903298316153403, 39.109694717806306, 0.81098202482486215, 0.91204317596731466, 0.64271558428264253, 0.16524298224070413, 94.420793512887343 
+60, 5000, 197, 25.128870597103951, nan, 0.82076272006534146, 0.91658580386172706, nan, nan, 94.717636837532581 
+60, 6000, 194, 25.307036037160085, nan, 0.82571776987107237, 0.91822416435101739, nan, nan, 94.879814653924115 
+60, 7000, 207, 25.425537392231611, nan, 0.8361603279741987, 0.92368015293728489, nan, nan, 95.238198667825074 
+60, 8000, 201, 25.715511558804522, nan, 0.83791917147830897, 0.92444426549173964, nan, nan, 95.326527657109764 
+60, 9000, 213, 25.894979424435977, nan, 0.84520219258720641, 0.92825734062089116, nan, nan, 95.577034462785974 
+70, 0, 285, 23.537054973003908, 40.50742935332201, 0.72857544402763685, 0.8648039548726123, 0.82806412560347364, 0.13663207951579212, 92.172024326672471 
+70, 1000, 195, 23.756524428006948, 39.466493856609041, 0.77953485637027375, 0.89440105522421509, 0.69487120202164865, 0.12216759223169046, 93.758843241901459 
+70, 2000, 213, 23.691146425415369, 38.150235566876525, 0.81418009581596595, 0.91272850010681139, 0.65757960524343262, 0.14609315424623276, 94.808241280873773 
+70, 3000, 189, 23.988770696234344, 38.370242127666017, 0.8194416683299397, 0.91519093753748071, 0.6682867432668459, 0.17576901368216086, 94.929874643167437 
+70, 4000, 203, 24.129948770310854, nan, 0.83627936115278789, 0.92177932660140294, nan, nan, 95.343800421993294 
+70, 5000, 187, 24.381454836475747, nan, 0.83520960875287265, 0.92125445560783958, nan, nan, 95.34442100037235 
+70, 6000, 171, 24.720095164876792, nan, 0.83311935865836406, 0.91992166591941094, nan, nan, 95.299118778701754 
+70, 7000, 161, 25.05158084398013, nan, 0.83157203440145933, 0.91982081520358461, nan, nan, 95.313392081419877 
+70, 8000, 165, 25.22024877964142, nan, 0.83661946673827148, 0.92200350138435783, nan, nan, 95.449919324810722 
+70, 9000, 157, 25.573799364708616, nan, 0.83630884481801682, 0.92155344957094532, nan, nan, 95.505771378925147 
+80, 0, 281, 22.636278271387898, 39.887151616604619, 0.75738347686055685, 0.88127514351560166, 0.8105852007225165, 0.14156684018178284, 93.178214596003471 
+80, 1000, 205, 22.78596344770866, 38.541130831356845, 0.80853767930234421, 0.91043572154043251, 0.68212199197113199, 0.14101485644376127, 94.77628149435273 
+80, 2000, 190, 23.08736296153922, nan, 0.82474013387848777, 0.91938796784914301, nan, nan, 95.248153779322337 
+80, 3000, 179, 23.298403361291445, nan, 0.833686121005212, 0.92405198313686931, nan, nan, 95.520742832319726 
+80, 4000, 178, 23.535499082978905, nan, 0.84086917865995325, 0.92878882126205531, nan, nan, 95.793874891398787 
+80, 5000, 192, 23.703208733677574, nan, 0.85342220264130264, 0.93371041649683928, nan, nan, 96.139226759339707 
+80, 6000, 202, 23.905871890100787, nan, 0.86236142377069858, 0.93697100507372411, nan, nan, 96.380864465682009 
+80, 7000, 171, 24.401882615429471, nan, 0.85635455397192528, 0.93461893395884199, nan, nan, 96.254344048653337 
+80, 8000, 160, 24.818266151599811, nan, 0.85411315311641933, 0.93420457746656527, nan, nan, 96.265204170286708 
+80, 9000, 158, 25.005475589325489, nan, 0.85761781186454089, 0.93569928710401928, nan, nan, 96.379778453518682 
+90, 0, 286, 21.94604631030424, 39.842869283492874, 0.76476026484713078, 0.88511906907400839, 0.84185233901287559, 0.13732491883874726, 93.70499082923061 
+90, 1000, 210, 22.325355955057109, nan, 0.82469327475286669, 0.91781298176761772, nan, nan, 95.565208997007431 
+90, 2000, 210, 22.62522228432957, nan, 0.84920331261463677, 0.92955632758390927, nan, nan, 96.208610869775086 
+90, 3000, 198, 23.265542877435518, nan, 0.85581819617181187, 0.93281993044293643, nan, nan, 96.404575731248187 
+90, 4000, 206, 23.588831981253332, nan, 0.8683624102708436, 0.93728651228334203, nan, nan, 96.673906747755581 
+90, 5000, 172, 24.027407736896699, nan, 0.8637108211840695, 0.93566270228013793, nan, nan, 96.579785693599774 
+90, 6000, 172, 24.504014534389952, nan, 0.86758641011764348, 0.93681710404318952, nan, nan, 96.674389419828159 
+90, 7000, 162, 24.801416841360901, nan, 0.86725454031856675, 0.93647063010261855, nan, nan, 96.683560189207455 
+90, 8000, 217, 24.845113748207705, nan, 0.88525984572069238, 0.94296351585595661, nan, nan, 97.072111207645534 
+90, 9000, 214, 25.350232028414688, nan, 0.88412497215527386, 0.94417677677683653, nan, nan, 97.119413070759734
diff --git a/ErrorAnalysis/QP.ipynb b/ErrorAnalysis/QP.ipynb
new file mode 100644
index 0000000000000000000000000000000000000000..3b51a24672eba4f81dee5fdb603d51de7364172f
--- /dev/null
+++ b/ErrorAnalysis/QP.ipynb
@@ -0,0 +1,228 @@
+{
+ "cells": [
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "<img src=\"../logo.png\" alt=\"University of Illinois\" style=\"width: 200px;\"/>\n",
+    "\n",
+    "## Quadratic Programming ##\n",
+    "By Richard Sowers\n",
+    "* <r-sowers@illinois.edu>\n",
+    "* <https://publish.illinois.edu/r-sowers/>\n",
+    "\n",
+    "Copyright 2019 University of Illinois Board of Trustees. All Rights Reserved.\n",
+    "Licensed under the MIT license"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "### imports ###"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 67,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "import numpy\n",
+    "#%matplotlib notebook\n",
+    "import matplotlib.pyplot as plt\n",
+    "import scipy.optimize\n",
+    "import scipy.interpolate"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 68,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "knots=[(1,1),(2,2.5),(2.1,1.9),(4,2)]"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 69,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "tvals=numpy.array([t for t,_ in knots])\n",
+    "yvals=numpy.array([y for _,y in knots])"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 70,
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "image/png": "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\n",
+      "text/plain": [
+       "<Figure size 432x288 with 1 Axes>"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    }
+   ],
+   "source": [
+    "plt.figure()\n",
+    "plt.scatter(tvals,yvals)\n",
+    "plt.xlabel(\"t\")\n",
+    "plt.ylabel(\"y\")\n",
+    "plt.show()\n",
+    "plt.close()"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 71,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "4\n",
+      "     fun: 0.10333338033924057\n",
+      "   maxcv: 3.9302328752599825e-19\n",
+      " message: 'Optimization terminated successfully.'\n",
+      "    nfev: 133\n",
+      "  status: 1\n",
+      " success: True\n",
+      "       x: array([ 9.99914525e-01,  1.13358881e+00,  4.81482486e-35, -3.93023288e-19])\n",
+      "[0.99991452 2.13350334 2.13350334 2.13350334]\n"
+     ]
+    },
+    {
+     "name": "stderr",
+     "output_type": "stream",
+     "text": [
+      "C:\\Users\\richa\\Anaconda3\\lib\\site-packages\\scipy\\optimize\\_minimize.py:502: RuntimeWarning: Method COBYLA does not use gradient information (jac).\n",
+      "  RuntimeWarning)\n",
+      "C:\\Users\\richa\\Anaconda3\\lib\\site-packages\\scipy\\optimize\\_minimize.py:513: RuntimeWarning: Method COBYLA does not use Hessian-vector product information (hessp).\n",
+      "  'information (hessp).' % method, RuntimeWarning)\n"
+     ]
+    }
+   ],
+   "source": [
+    "class monotone_invert:\n",
+    "    def __init__(self,knots):\n",
+    "        self.tvals=numpy.array([t for t,_ in knots])\n",
+    "        self.yvals=numpy.array([y for _,y in knots])\n",
+    "        self.N=len(knots)\n",
+    "        self.L=numpy.tril(numpy.ones(shape=(self.N,self.N)),k=0)\n",
+    "        def objective(d):\n",
+    "            error=self.yvals-self.L.dot(d)\n",
+    "            return 0.5*error.dot(error)\n",
+    "        \n",
+    "        def jacobian(d):\n",
+    "            error=self.yvals-self.L.dot(d)\n",
+    "            return self.L.T.dot(error)\n",
+    "        \n",
+    "        def hessian(d):\n",
+    "            return self.L.T*dot(self.L)\n",
+    "        \n",
+    "        print(self.N)\n",
+    "        constraints={\"type\":\"ineq\",\"fun\":lambda x:x}\n",
+    "        res=scipy.optimize.minimize(objective,self.yvals,method=\"COBYLA\",jac=jacobian,hessp=hessian,constraints=constraints)\n",
+    "        print(res)\n",
+    "        d_best=res.x\n",
+    "        self.y_approx_vals=self.L.dot(d_best)\n",
+    "        print(self.y_approx_vals)\n",
+    "        \n",
+    "        self.linapprox=scipy.interpolate.interp1d(self.tvals,self.y_approx_vals,copy=True,bounds_error=True)\n",
+    "        \n",
+    "    def invert(self,yval):\n",
+    "        if not (min(self.y_approx_vals)<yval<max(self.y_approx_vals)):\n",
+    "            return numpy.nan\n",
+    "        \n",
+    "        tval=scipy.optimize.brentq(lambda x:self.linapprox(x)-yval,min(self.tvals),max(self.tvals))\n",
+    "        return tval\n",
+    "            \n",
+    "        \n",
+    "    \n",
+    "        \n",
+    "test=monotone_invert(knots)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 72,
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "image/png": "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\n",
+      "text/plain": [
+       "<Figure size 432x288 with 1 Axes>"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "1.5293678516346076\n",
+      "1.6\n"
+     ]
+    }
+   ],
+   "source": [
+    "plt.figure()\n",
+    "t_space=numpy.linspace(start=1,stop=4)\n",
+    "y_approx=test.linapprox(t_space)\n",
+    "plt.scatter(test.tvals,test.yvals,color=\"red\",linewidth=5)\n",
+    "plt.plot(t_space,y_approx,color=\"blue\")\n",
+    "plt.show()\n",
+    "plt.close()\n",
+    "\n",
+    "pre_image=test.invert(1.6)\n",
+    "print(pre_image)\n",
+    "print(test.linapprox(pre_image))"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": []
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": []
+  }
+ ],
+ "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.6.5"
+  }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 2
+}
diff --git a/ErrorAnalysis/error_as_sparsity.png b/ErrorAnalysis/error_as_sparsity.png
new file mode 100644
index 0000000000000000000000000000000000000000..a1c8430918fdd7f33b97293067a7a3e4844abfdb
Binary files /dev/null and b/ErrorAnalysis/error_as_sparsity.png differ
diff --git a/ErrorAnalysis/error_increasing_as_sparsity.png b/ErrorAnalysis/error_increasing_as_sparsity.png
new file mode 100644
index 0000000000000000000000000000000000000000..e856f6cac668a04c7461d3cbee135ff4a129cddf
Binary files /dev/null and b/ErrorAnalysis/error_increasing_as_sparsity.png differ
diff --git a/ErrorAnalysis/sparsity_as_penalty.png b/ErrorAnalysis/sparsity_as_penalty.png
new file mode 100644
index 0000000000000000000000000000000000000000..6b9ce0ee53e2da5b554b6be8f121547213339868
Binary files /dev/null and b/ErrorAnalysis/sparsity_as_penalty.png differ