diff --git a/talks/matlab_vs_python/rbf/fit_model.ipynb b/talks/matlab_vs_python/rbf/fit_model.ipynb
deleted file mode 100644
index 40754f988437b67e5287e075e2be2ff9aea6e0fc..0000000000000000000000000000000000000000
--- a/talks/matlab_vs_python/rbf/fit_model.ipynb
+++ /dev/null
@@ -1,232 +0,0 @@
-{
- "cells": [
-  {
-   "cell_type": "code",
-   "execution_count": 14,
-   "metadata": {},
-   "outputs": [
-    {
-     "data": {
-      "text/plain": [
-       "[<matplotlib.lines.Line2D at 0x121ca4278>]"
-      ]
-     },
-     "execution_count": 14,
-     "metadata": {},
-     "output_type": "execute_result"
-    },
-    {
-     "data": {
-      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXAAAAD4CAYAAAD1jb0+AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjMsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+AADFEAAAgAElEQVR4nO3dd3zV5fn/8dd1Mk/2ySAh5wAhyBCQGRBExb0Fq9bRatHa2vbbZaerw07t1K6frdUqba2jioJ7IFYFQVbYK4QAWSSEJASyc+7fH+cEAwZyEs45nzOu5+Ph45zzOSfncxHJOx/uc933LcYYlFJKhR+b1QUopZQaGA1wpZQKUxrgSikVpjTAlVIqTGmAK6VUmIoN5smys7NNQUFBME+plFJhb/Xq1fuNMTnHHg9qgBcUFLBq1apgnlIppcKeiOzu7bgOoSilVJjSAFdKqTClAa6UUmFKA1wppcKUBrhSSoUpDXCllApTGuBKKRWmNMBD1JJtNWyqbLS6DKVUCNMAD0FLttVw2xMr+f2b260uRSkVwjTAQ0xJTRPf+M9a3AbK61usLkcpFcI0wENI/eF2bpu/ioS4GC4el0tFQwu6Y5JS6ng0wENER5ebr/5nDVUNrfzt5qlMK8jkUFsnjS0dVpemlApRGuAh4qcvbWbZzjruv/o0pg5z4HLYAR1GUUodnwZ4CPjXh2X8a/luvjS7kGumugBwZiQBUNGgAa6U6p0GuMWWleznvpc2c/6YQXz/4jFHjjv1Clwp1QcNcAuV7T/MV55cw4icZB66YRIxNjnynCMpjqT4GCo0wJVSx6EBbpGDrR3cNn8lNoFHPzeN1MS4o54XEZwZdioami2qUCkV6oK6I4/y6HIbvv6fteyua+bfXzidoVlJvb7O6bDrEIpS6rj0CtwC97+6hf9tr+VnV41nRmHWcV/nctj1Q0yl1HFpgAfZsyv38ugHu7jljAJunD70hK91ZiTR0NzBobbOIFWnlAonGuBBtLLsAPe+uIGzRmbzg8tP7fP13Z0o+kGmUqo3fQa4iIwWkeIe/x0UkTtEJFNE3hKRHd5bRzAKDld7DzTz5X+txuVI4s83TiE2pu/fnd2TefSDTKVUb/pMEWPMNmPMJGPMJGAq0Ay8ANwFLDbGjAQWex+rXhxu6+SL/1xFe5ebR+cVkZ4U1/cXAa4M7QVXSh1ff4dQzgd2GmN2A3OB+d7j84Gr/FlYpHC7DXc8U8z2fU385TNTGJGT4vPXZqckEB9j0yEUpVSv+hvgNwBPee/nGmOqvPergdzevkBEbheRVSKyqra2doBlhq/fvbWNtzbv44dXjOXsUTn9+lqbTTythNqJopTqhc8BLiLxwBzgv8c+Zzxrnva67qkx5hFjTJExpignp38BFu4WFlfwlyU7uXH6EG45o2BA7+HM0F5wpVTv+nMFfimwxhizz/t4n4gMBvDe1vi7uHBWvLeB7z23nunDM/nJnPGISN9f1Atnhl2HUJRSvepPgN/Ix8MnAIuAed7784CF/ioq3FU1tvDFf65iUGoCf71pKvGxA+/WdDns7D/URmtHlx8rVEpFAp+SRUSSgQuBBT0OPwBcKCI7gAu8j6NeS3sXt/9zNc1tnTw2bxqZyfEn9X5HesF1HFwpdQyf1kIxxhwGso45VoenK0V5GWP47nPr2FjZyN9vLmJ0XupJv6cz4+PJPP3pYFFKRT6dielHf3qnhFfWV3HnJWO4YGyvTTn95srUjR2UUr3TAPeT1zZU8fu3tnP1ZCdfOrvQb++bm5pAjE0or9fZmEqpo2mA+0FJTRPffnYdk4dm8MurTxtwx0lvYmNs5KUlaieKUuoTNMBPUnunmzueKSYxzsZfb5pKYlyM38+hy8oqpXqjAX6SHnp7OxsrDnL/1RPITUsMyDl0YwelVG80wE/CR7sO8PD/dnJ90RAuGZ8XsPO4MuzsO9hKR5c7YOdQSoUfDfABOtjawbeeKWaII4kfXjk2oOdyOZJwG6hubA3oeZRS4UUDfIDuW7SJqsYWHrx+EikJgd1atHsyz17tRFFK9aABPgAvr69kwZoKvnbeSKYOC/w+Fj0n8yilVDcN8H6qamzh3hc2MnFIBl8/75SgnHNwRiIiOplHKXU0DfB+cLsN3/3vOto73Tx0/STifNgWzR8SYmMYlJqgnShKqaNogPfD48vKWFpSx4+uHMvw7OSgnluXlVVKHUsD3Edbqw/yq9e3csGpudwwbUjQz+9yJOkQilLqKBrgPmjt6OKOp4tJS4zlgWv8O1XeV06HncqGFrrcvW58pJSKQhrgPvjdm9vYWt3Er6+dQHZKgiU1ODPsdLoNNU3aC66U8tAA78Oykv38/f1d3DRjKOeN8c8SsQPhcmgroVLqaBrgJ9DY3MF3/ruOwpxk7r0ssLMt+9Id4NqJopTqFtgphGHMGMO9L26gtqmNBf93BvZ4/68y2B/5Gbq1mlLqaHoFfhwLiyt5eX0Vd1wwkgmuDKvLISk+lqzkeL0CV0odoQHei/L6Zn744kaKhjn4yjnBmW3pC8+ysroeilLKQwP8GF1uw7efXYcBHrx+EjG24LcMHo8zQzd2UEp9zKcAF5EMEXlORLaKyBYRmSkimSLylojs8N4GflWnIPj7+6V8tOsA980ZxxDvhsKhwuXwzMY0RnvBlVK+X4H/AXjdGDMGmAhsAe4CFhtjRgKLvY/D2saKRn735jYuHZ/HNVOcVpfzCc4MO22dbvYfare6FKVUCOgzwEUkHTgbeAzAGNNujGkA5gLzvS+bD1wVqCKDobWjizueKcaRFM8vP2XNbMu+OB2efxHoMIpSCny7Ah8O1AKPi8haEXlURJKBXGNMlfc11UCvs1xE5HYRWSUiq2pra/1TdQA88NpWSmoO8dtPT8SRHG91Ob3SyTxKqZ58CfBYYArwsDFmMnCYY4ZLjGdQtteBWWPMI8aYImNMUU5OzsnWGxDvbqvhiWVl3DqrgLNHhWaN8PHOPNqJopQC3wK8HCg3xqzwPn4OT6DvE5HBAN7bmsCUGFgHDrfzvefWMyo3hTsvGWN1OSeUlhhHWmKsDqEopQAfAtwYUw3sFZHR3kPnA5uBRcA877F5wMKAVBhAxhjuWbCBhuZ2Hrp+Molx1s629IXTkaRDKEopwPep9F8HnhSReKAUuBVP+D8rIrcBu4HrAlNi4Px3dTmvb6rm7kvHMDY/zepyfOLMsLP3gA6hKKV8DHBjTDFQ1MtT5/u3nODZXXeYnyzaxIzCTL5wVqHV5fjM5bCzvLQOY0xIdsoopYInKmdidna5+dYzxdhswu+uC63Zln1xOewcauvkYEun1aUopSwWlQH+7Kpy1uxp4OdXjcfpXeUvXHTXu1c7UZSKelEZ4AvWlDMqN4W5k0JvtmVfXDqZRynlFXUBvvdAM6t214dleEPPXnANcKWiXdQF+EvrKwGYMzHf4koGxpEUhz0uRlsJlVLRF+CLiiuZMjQj5FYa9JWIeFYlbNAxcKWiXVQF+LbqJrZWN4Xt1Xc3z8YOegWuVLSLqgBftK4Cm8DlE8I8wHVjB6UUURTgxhgWFlcy65RsclITrC7npLgcSTQ0d3CoTXvBlYpmURPga/Y0UF7fErbdJz05dVlZpRRRFOAvraskPtbGxeN6XbY8rHRP5tEPMpWKblER4J1dbl5eX8n5YwaRmhhndTknbYhegSuliJIAX7azjv2H2pk7Kbw/vOyWnZJAfIxNO1GUinJREeALiytJTYjlnNGDrC7FL2w2IT8jkXLtRFEqqkV8gLd2dPHGpmouGZ8XFhs2+MqlGzsoFfUiPsCXbK3hUFsncyJk+KSbM0Mn8ygV7SI+wBcWV5KdksDMwiyrS/Erp8PO/kNttHZ0WV2KUsoiER3gjS0dvLOthismDCY2JrL+qC5vJ0qljoMrFbUiK9WO8camato73RHTfdJTdy+4DqMoFb0iOsBfWlfJ0MwkJg3JsLoUvzsyG1OvwJWKWhEb4DVNrSwt2c+cifkRuflvXloiMTbRThSloljEBvgr66twGyJy+AQgNsZGXloi5bo3plJRK9aXF4lIGdAEdAGdxpgiEckEngEKgDLgOmNMfWDK7L+FxZWcOjiNkbmpVpcSME6HLiurVDTrzxX4ucaYScaYIu/ju4DFxpiRwGLv45Cwp66Z4r0NEXv13c3lsOsQilJR7GSGUOYC87335wNXnXw5/rFoXQUAV4b5zjt9cWXYqT7YSkeX2+pSlFIW8DXADfCmiKwWkdu9x3KNMVXe+9VAr+u0isjtIrJKRFbV1taeZLk+FGoMLxZXMq3AcaTVLlI5HXbcBqobW60uRSllAV8D/ExjzBTgUuCrInJ2zyeNMQZPyH+CMeYRY0yRMaYoJyfn5Kr1wZaqJkpqDjEnAjZu6IvL4dmYWXvBlYpOPgW4MabCe1sDvABMB/aJyGAA721NoIrsj4XrKoi1CZefNtjqUgLu48k82omiVDTqM8BFJFlEUrvvAxcBG4FFwDzvy+YBCwNVpK/cbsPL66o4c2Q2mcnxVpcTcIMzEgGdzKNUtPKljTAXeME7GSYW+I8x5nURWQk8KyK3AbuB6wJXpm9W76mnoqGF7148yupSgiIhNobctATtRFEqSvUZ4MaYUmBiL8frgPMDUdRALSyuIDHOxoVj86wuJWh0WVmlolfEzMTs6HLzyvoqLjg1l5QEn+YnRQSnI0mHUJSKUhET4B+U7Ke+uYO5UdB90pPLYaeqsYUud69NQEqpCBYxAb6ouJK0xFjOHpVtdSlB5cyw09FlqGnSXnClok1EBHhLu2ffy8tOG0xCbOTse+mLI8vK6ji4UlEnIgL87S37aG7virh9L30xRNcFVypqRUSAL1pXSW5aAqcPj6x9L32RrzvzKBW1wj7AG5s7eHdbDVdMyCfGFnkbN/QlKT6WzOR4DXClolDYB/hrG6vo6DIRv3Tsibh0XXClolLYB/jC4kqGZydzmjPd6lIs45nMo+uhKBVtwjrAqxtbWb6rLmL3vfSVM8NOZUMLnkUhlVLRIqwD/OX1lRhDVHaf9ORy2GntcFN3uN3qUpRSQRTWAb5oXSXjnWmMyEmxuhRLOXVdcKWiUtgGeGntIdaXNzJ3YnRNne9N97rgOplHqegStgG+aF0lInDFxMjfuKEv3bMx9YNMpaJLWAa4MYZF6yo5fXgmg9Mje99LX6Tb40hNjNVWQqWiTFgG+KbKg5TWHmaODp8c4XIk6RCKUlEmLAN8YXEFcTHCpeOjZ+OGvujGDkpFn7AL8C63Z/hk9qgcHFGw76Wvumdjai+4UtEj7AL8o10H2HewjTlRtnFDX1wOO4faOjnY0ml1KUqpIAm7vccWraskKT6GC04dZHUpIaW7lXBvfTPpSeG3rIDbbfjFq1uItQmzR+dQNCyT+Niwu75QKqjCKsDbO928uqGKC8fmkhQfVqUHnLPHuuDjw3BdmH+v2M1jH+wixib87b1SUhJiOfOUbM4dk8M5oweRm5ZodYlKhZywSsH3ttfS2NIR1SsPHo/LOxszHDtR9h5o5oHXtnLWyGwevmkqy0r2s2RbLe9uq+H1TdUAnDo4jXNH53DumEFMHpJBbIxenSvlc4CLSAywCqgwxlwhIsOBp4EsYDVwszEmoItxLFxXiSMpjrNG5gTyNGHJkRSHPS4m7DpRjDHcvWADAtx/9WmkJMRy0bg8LhqXhzGGbfuaeHdbLUu21vC390r5f+/uJC0xlrNG5XDu6EHMHpVDTmqC1X8MpSzRnyvwbwJbgDTv418BDxpjnhaRvwK3AQ/7ub4jDrd18vbmfVw9xUmcXn19gojgdNipaAiv2ZjPrNzLByX7+dlV44/8K6KbiDAmL40xeWl8efYIGls6WFqynyVba3h3ey2vrK8CYIIrnXNGD+Kc0TlMdGVE5cYeKjr5FOAi4gIuB34BfFs8a7eeB3zG+5L5wH0EMMDf3rKPlo4u5kzU4ZPjCbeNHaoaW/jFK1uYUZjJZ6cP7fP16fY4LjttMJedNhi327C56iDvbqthybZa/vzODv64eAeOpDhmj/IMtZw1ModMbTVVEczXK/CHgO8Dqd7HWUCDMaa7Z60c6LWvT0RuB24HGDq07x/S41lYXMng9ESmFWQO+D0inTPDTvHeBqvL8IkxhnsWbKDTbfjVNROw9fOq2WYTxjvTGe9M52vnjaT+cDvv7ajlf9tqeXd7LS8We9bKueWMAn585bgA/SmUslafYxEicgVQY4xZPZATGGMeMcYUGWOKcnIGNnZdf7id97bXMmdifr9/0KOJ02GnobmDw22h3wv+wtoKlmyr5XsXj2ZYVvJJv58jOZ65k5z8/vpJrLz3Al786izOHT2IJ5fvoaW9yw8VKxV6fBlMngXMEZEyPB9angf8AcgQke4reBdQEZAKgVc3VtHpNlG/cUNfjnSihPgwSs3BVn7y0mamDnMw74wCv79/jE2YNCSDm2cMo73LzZo99X4/h1KhoM8AN8bcbYxxGWMKgBuAd4wxnwWWANd6XzYPWBioIhcWVzIiJ5mxg9P6fnEU657ME8rLyhpj+MGLG2np6OJX10wI6AeORQUOYmzChzvrAnYOpax0Mn3gdwJPi8jPgbXAY/4p6ZMeun4SVY2tUb3vpS9cjtDf2OGVDVW8uXkfd106hlMGBXYnpdTEOMY701leqgGuIlO/AtwY8y7wrvd+KTDd/yV9Un6GnfwMXfe7LzkpCcTH2CgP0SGUukNt/GjhJia40vnCmcODcs4ZhZn844NdNLd36uxdFXG0oTqC2GxCfkZiyE7mue+lzTS1dvCbaycGbSblzMIsOroMq3frOLiKPBrgEcbpsIfkEMobm6p5aV0lXz9vJKPzUvv+Aj+ZVpCp4+AqYmmARxhXRlLIdaE0NLfzgxc3curgNL5yzoignjs5IZYJrnQ+1HFwFYE0wCOM02GntqmN1o7Q6X3+2ctbOHC4nd9cO8GSZRBmFmaxvrwxLPrjleoPDfAI091KWBkiV+FLttXw/JpyvjJ7hGXL3M4ckUWX27Cy7IAl51cqUDTAI4yrx7rgVjvY2sE9CzYwclAKXz//FMvqmDrMQVyM6DCKijga4BGme2OHUOhEuf/Vrew72Mqvr51AQmyMZXUkxccy0ZXB8lK9AleRRQM8wuSlJRJjE8s7UZaW7Oepj/bwhbMKmTzUYWkt4BlG2VjRSFNrh9WlKOU3GuARJjbGRl5aoqVDKIfbOrnz+fUMz07m2xeOsqyOnmYUesbBV5VpP7iKHBrgEcjpsFu6Hspv3thGRUMLv752Aolx1g2d9DRlqIP4GJuOg6uIogEegVwZ1k3m+WjXAZ5YVsa8mQUhtXa7PT6GSUMydEKPiiga4BHI5bBTfbCVji53UM/b0t7F959bx5BMO9+/ZHRQz+2LGSOy2FTZSGOLjoOryKABHoGcDjtuA9WNrUE974Nvb6esrpkHrp4QkgtHzSzMwm1g5S7tRlGRQQM8AjkzPBs7BLOVcO2eeh59v5Qbpw9l1inZQTtvf0wemkF8rE2Xl1URQwM8AgV7Mk9bZxffe249uWmJ3HPZmKCccyAS42KYMjRDP8hUEUMDPAINzkgEgrczzx8X76Ck5hD3X30aqYlxQTnnQM0szGZz1UEamtutLkWpk6YBHoESYmMYlJoQlE6UjRWN/PV/pVw71cU5owcF/Hwna0ZhJsZ4umWUCnca4BHK5bAHfAilvdPNd/+7jszkeH54+diAnstfJg3NICFW+8FVZNAAj1BOR1LAP8R8+N2dbK1u4hdXjSc9KbSHTrolxMYwdZhD+8FVRNAAj1DODDtVjS243SYg77+tuok/L9nBnIn5XDQuLyDnCJSZhVlsrW6i/rCOg6vwpgEeoVwOOx1dhpqmNr+/t9ttuHvBelISYvnxleExdNLTzBFZAKzYpVfhKrz1GeAikigiH4nIOhHZJCI/8R4fLiIrRKRERJ4RkfjAl6t89fGysv7vRHnyoz2s2dPAD68YS1ZKgt/fP9AmuDKwx8Xo8rIq7PlyBd4GnGeMmQhMAi4RkRnAr4AHjTGnAPXAbYErU/WXKyMwveDVja38+rWtnHlKNp+a7PTrewdLfKyNogIdB1fhr88ANx6HvA/jvP8Z4DzgOe/x+cBVAalQDUigNna4b9Em2rvc/OJT4xERv753MM0ozGLbvibqDvl/iEmpYPFpDFxEYkSkGKgB3gJ2Ag3GmO5dYsuBXi/HROR2EVklIqtqa2v9UbPyQVJ8LJnJ8X4N8Dc2VfP6pmq+ecFIhmUl++19rTCjsHscXIdRVPjyKcCNMV3GmEmAC5gO+Dxf2hjziDGmyBhTlJOTM8Ay1UA4M/zXC97U2sGPF25iTF4qXzyr0C/vaaUJrnSS4mN0GEWFtX51oRhjGoAlwEwgQ0S6l5xzARV+rk2dJJcfN3b47Rvb2NfUyv1Xn0ZcTPg3L8XF2JhWkKkTelRY86ULJUdEMrz37cCFwBY8QX6t92XzgIWBKlINjDPDTmVDC8acXC/4mj31/HP5bubNLAiJ/S39ZUZhFiU1h6gNQKulUsHgy6XUYGCJiKwHVgJvGWNeBu4Evi0iJUAW8FjgylQD4XTYae1wU3cSE1Y6utzc/fwG8tIS+e7FobdJw8no7gfX5WVVuOpz1X1jzHpgci/HS/GMh6sQ5XJ8vC549gD7tf/+finb9jXx988VkZIQeps0nIzx+WmkJMSyvLSOKyfmW12OUv0W/oOZ6ric3b3gA+xEKdt/mD+8vYNLx+dx4dhcf5YWEmJjbEwrcOg4uApbGuARzHlkY4f+f5BpjOHeFzcQH2Pjvjnj/F1ayJg5IovS2sPsOxjc7eeU8gcN8AiWbo8jNTF2QL3gC9ZUsLSkju9fOobctMQAVBcauvvBdRxchSMN8AjnzLD3ewil7lAbP39lM1OHOfjs9KEBqiw0jMtPJzUxVgNchSUN8AjnciT1ezLPL17ZwqG2Tu6/+jRstvCdLu+LGJtw+vBMndCjwpIGeITzTObxvRf8/R21LFhbwZdnj2BUbmqAqwsNMwqzKKtrpqoxOJtAK+UvkdUXpj7BmWHnUFsnB1s6+9w1p6W9i3tf2Mjw7GS+eu4pQarQej3HwT812WVxNQNjjOGDkv38+Z0Sdu0/TKxNiIkRYm02YmzieWwTYmNsH98/6tZGXMzRj7vfY0ROCredOdzqP6LqhQZ4hHN1r0rY0Ex6UvoJX/vHd3aw50AzT31xBolxMcEoLyScOjiNtMRYlu88EHYB3h3cD729g9W768lPT+S8MYNwG0Nnl6HTbehyGzrdbu9t93E3HV1uWjq8z3uPHXl9l+e2paOLxpYOphU4mODKsPqPq46hAR7hei4rOy7/+AG+peogj7xXynVFriMzFKNFjE04vTArrPrBjTEsLanjobe3s2p3PYPTE/n5VeP5dJGLhFj//fI92NrBzF8u5vGlZTx4/SS/va/yDw3wCOfLZJ4ut+GuBRvIsMdxz2WnBqu0kDKzMIu3Nu+joqHlyPcsFBljWLbTE9wryzzB/bOrxnOdn4O7W1piHJ8uGsKTK3Zz96VjGBTBLaXhSD/EjHCZyfHY42JO2Inyrw/LWLe3gR9dOZaMpOjcGe/IOHiIdqMYY1hWsp/r/7aczz66gr0HWvjZ3HG8+71zuHnGsICEd7d5ZxTQ6Tb8e8WegJ1DDYxegUc4EcF5gmVlKxta+M0b2zh7VA5zong9kDF5qTiS4viwtI5rpobWOPiynZ4x7o92HSA3LYGfzh3HdUVDgvY5xfDsZM4bPYj/rNjNV88dEdBfFqp/NMCjwPE2djDG8KOFG+kyhl9cFd5bpJ0sm004fXhWSPWDf+gdKlnhDe6fzBnH9dOCF9w93TprODc9toKX1lVxbYj9gotmGuBRwOWws7684RPHX99YzdtbarjnsjEMyUyyoLLQMqMwk9c3VbP3QLOl34/lpZ7gXl56gEGpCdx35VhumD7U0s6gWadkMSo3hceX7uKaKc6o/mUfSjTAo4DTYae+uYPDbZ0ke5eEPdjawY8XbWLs4DQ+P0t7fAFmjsgG4MPSOksCfEVpHQ+9vYMPS+vISU3gx1eO5UaLg7ubiHDLGcO554UNrCyrZ/rwTKtLUuiHmFHhSCdKj2GUX7++lf2H2njgmtOIjYAt0vxhVG4KmcnxQV8X5aNdB/jM35dz/SPLKak9xI+uGMv73z+XW2cND4nw7vapyU4ykuL4xwe7rC5FeekVeBTo3tihor6FUbmprCo7wL+X7+G2M4fr5IweRIQZhZks31mHMSbgwwTN7Z185d9r+N/2WrJTEvjhFWP57OmhccXdG3t8DDdMG8oj7+20fJhJeeilVxQ4Mhuzvpn2Tjd3L9iAM8POty8cZXFloWdmYRaVja3sOeCfzaBP5Kcvbea9HbXcfekY3v/+udx2ZmhdcffmczOHISL8a/luq0tRaIBHhZyUBOJjbJQ3tPC3/+1kR80hfn7V+CPj4epjwVof/NUNVTy9ci9fmT2CL80egT0+tIO7W36GnUvG5/H0R3tobu+0upyopwEeBWw2IT8jkQ931vGnJSVcPmEw544ZZHVZIemUQSlkpyQEtJ2wsqGFu55fz0RXOt8Kw38FfX5WAQdbO3l+TYXVpUQ9DfAo4XTYWV/eSEKsjR9fOdbqckJW9zj4h6V1Pi/B2x9dbsMdzxTT5Tb84YbJxIXhB8hThjqY4ErniaW7cLv9/z1Svgu/vz1qQLo7Ue657FQGpep6FicyozCLfQfbKKvz/zj4w++W8NGuA/xk7ngKspP9/v7BICLcOquAnbWHeb9kv9XlRLU+A1xEhojIEhHZLCKbROSb3uOZIvKWiOzw3joCX64aqGumuPjiWcO5vmiI1aWEvO7VGP09jLJmTz0Pvr2DKyfmc80Up1/fO9guPy2fnNQEbSm0mC9X4J3Ad4wxY4EZwFdFZCxwF7DYGDMSWOx9rELU6YVZ3Hv52IjfIs0fCrOTGZSa4NcPMptaO/jm02vJS/Ms+xruMxnjY23cdPow/re9lpKaQ1aXE7X6DHBjTJUxZo33fhOwBXACc4H53pfNB64KVJFKBZNnHDzLr+PgP1q4iYr6Fv5wwyTS7SfeGSlcfDTJ+2AAAA2KSURBVOb0ocTH2Ji/rMzqUqJWv8bARaQAmAysAHKNMVXep6qB3ON8ze0iskpEVtXW1p5EqUoFz8wRWdQ2tbGz9vBJv9eLayt4YW0F3zh/JEUFkTMFPSc1gTmT8nl+TTmNLR1WlxOVfA5wEUkBngfuMMYc7Pmc8Vym9HqpYox5xBhTZIwpysnJOalilQoWf/WD76lr5gcvbqRomIOvReA+o7fOKqC5vYtnV+61upSo5FOAi0gcnvB+0hizwHt4n4gM9j4/GKgJTIlKBV9BVhJ5aYkntc1aZ5ebbz6zFhF46IZJEbnmzLj8dKYPz2T+h2V0aUthr6oaW3h5fWVAvj99TsUTz6ctjwFbjDG/7/HUImAe8ID3dqHfq1PKIiLCzBFZvL+jdsDrovxx8Q7W7mngjzdOPrIeTST6/KwCvvzvNby1eR+XjM+zuhxLdXa52VrdxOrd9azaXc+a3fVHFpF79RspjM1P8+v5fJlLPQu4GdggIsXeY/fgCe5nReQ2YDdwnV8rU8piMwozeWFtBSU1hxiZm9qvr11RWsefl5Rw7VRXxO90dOHYPJwZdv6xdFfUBXhjSwdr93iCetXueor3NtDc3gVAXloiUwsc3HbmcKYOczAyN8Xv5+8zwI0xHwDHu/w437/lKBU6ZhZ+vD54fwK8sbmDbz1TzNDMJO6bMy5Q5YWMGJsw74xh/PLVrWyqbGRcfrrVJQWEMYbddc1HXV1vr2nCGLAJnDo4jU9PdTFlmIOigkzy0xMD3i6qqxkpdRxDMu04M+wsL63jczMLfPoaYwx3v7CemqY2nv/KGaREyYJh1xcN5cG3dvD40jJ+++mJVpfjF22dXWysaGRVWT2rd9ezZk89+w+1A5CaEMvkYQ4unzCYqcMcTBqSYcnicNHxt0upARARTi/M5N1ttbjdxqdJUP9dVc6rG6q585IxTBwSPWutpyfFce1UF8+s3Mtdl44hOyXB6pIGpLPLzX8+2sPC4ko2lDfS3uUGYFhWEmePymHqMAdFwzIZOSglJCbFaYArdQIzC7NYsKaC7TVNjMk78QdQO2sP8eNFmzhjRBZfOrswSBWGjltmFfCv5bv5z4o9fOP8kVaX028f7NjPT1/exPZ9hxjvTOOWWQVMGepg6jAHOamh+QtJA1ypEzjSD76z7oQB3t7p5ptPryUhzsbvr5sUEldnwTYiJ4XZo3L41/LdfHn2COJjw6Ntck9dMz9/ZTNvbt7HkEw7f7t5KheNzQ2L5Q7C4zuslEWGZCbhctj77Af/3Zvb2FhxkF9dM4G89Ohd7fHWWQXUNrXxyoZKq0vp0+G2Tn79+lYu+P3/+KBkP9+7eDRvfWs2F4/LC4vwBr0CV6pPMwuzeGvLvuOOg3+wYz9/e6+Uz54+lIvHRVcb3bHOHplDYU4yjy8t46pJzpAMQrfb8GJxBQ+8tpWapjY+NdnJnZeMCctfvHoFrlQfZhRm0dDcwdbqpk88V3eojW8/W8wpg1L4weW6UYbNJtx6RgHryxtZs6fe6nI+Yd3eBq756zK+/ew68tITef4rZ/Dg9ZPCMrxBA1ypPh1ZH/yYYRRjDHc+v56G5g7+eMPksNnXMtCunuIiNTGWfywts7qUI2qaWvnuf9cx9y9L2Xughd9cO4EX/28WU4eF9zYGOoSiVB/yM+wMy0pieWkdt505/Mjxfy/fzdtbavjhFWP9PkU6nCUnxHLj9KE89sEuKhtayPfuBmWFts4unlhaxp/eKaGts4svzS7ka+eeQmpiZCzpq1fgSvlgxvAsVpTWHVmQaFt1Ez9/ZQuzR+Vw6xkF1hYXgj43cxjGGP61fLcl5zfGsHjLPi5+8D3uf20rpw/P5M1vzebuS0+NmPAGDXClfDJzRBYHWzvZUnWQ1o4uvvHUWlITY/ntpydGZctgX1yOJC4am8dTH+2hxbs2SLCU1Bxi3uMruW3+KmJswhO3TuOxW6YxPEz3ID0RHUJRygc91wd/bnU52/Y18fgt00J2gkcouHVWAa9vquaFtRV85vShAT9fY0sHf1y8g/nLyrDHx/DDK8byuZnDiIvAZXy7aYAr5YO89ESGZ3va4yoaWrh1VgHnjhlkdVkhbfrwTMYOTuOJZbu4cfqQgLUUdrkNz67ay2/f2MaB5nZumDaE71w0Omyn8/eHBrhSPppRmMVTH+1hTF4qd14yxupyQp6IcOusAr733HqWltRx5shsv75/e6ebl9dX8sh7pWytbmJagYP5V05nvDMyV0PsjQa4Uj66dHweb2/Zx59unExinLYM+uLKifk88NpWHl+6y28B3tDczpMr9jB/WRk1TW2Myk3hTzdO5ooJg0Ny4lAgaYAr5aOzR+Ww8t4LrC4jrCTGxfDZGcP40zs7KNt/mIKT+CBx1/7D/OODXTy3upyWji7OGpnNbz49kbNHZkddcHfTAFdKBdRNM4by8LslPLGsrN8bXBhjWLHrAI++v4vFW/cRZ7Nx1eR8bjuzkNF5/dslKRJpgCulAmpQaiJXTMjnudXlfOeiUT71YXd0uXl1QxWPvr+LDRWNZCbH8/XzRnLzjGHa+dODBrhSKuBunVXAC2sreHZV+VGzWY/V2NzBUyv38MTSMqoPtjIiJ5lffuo0rp7i1M8deqEBrpQKuAmuDKYOczB/WRm3nFFAzDGTn/bUNfOPpbt4dtVemtu7mHVKFvdffRqzR+XoRKkT0ABXSgXFrbMK+Np/1vLO1houHJuLMYbVu+t59P1dvLG5mlibcOXEfL5wZqGuLeMjDXClVFBcPC6PwemJPPZBKa0dXTz6wS7W7W0g3R7H/50zgs/NLCA3LTyXdbVKnwEuIv8ArgBqjDHjvccygWeAAqAMuM4YE3qL/yqlQkZcjI3PzSzgV69vZXnpAQqykvjZ3HFcM9VFUrxeSw6EL9+1J4A/A//scewuYLEx5gERucv7+E7/l6eUiiQ3zRhKdWMLZ47M4fwxg3R8+yT1GeDGmPdEpOCYw3OBc7z35wPvogGulOpDamIcP5k73uoyIsZAl+nKNcZUee9XA7nHe6GI3C4iq0RkVW1t7QBPp5RS6lgnvc6iMcYA5gTPP2KMKTLGFOXk5Jzs6ZRSSnkNNMD3ichgAO9tjf9KUkop5YuBBvgiYJ73/jxgoX/KUUop5as+A1xEngI+BEaLSLmI3AY8AFwoIjuAC7yPlVJKBZEvXSg3Huep8/1ci1JKqX6I3M3ilFIqwmmAK6VUmBJPF2CQTiZSC+we4JdnA/v9WE4ghHqNoV4fhH6NoV4faI3+EGr1DTPGfKIPO6gBfjJEZJUxpsjqOk4k1GsM9fog9GsM9fpAa/SHUK+vmw6hKKVUmNIAV0qpMBVOAf6I1QX4INRrDPX6IPRrDPX6QGv0h1CvDwijMXCllFJHC6crcKWUUj1ogCulVJgKiwAXkUtEZJuIlHh3AAoZIjJERJaIyGYR2SQi37S6puMRkRgRWSsiL1tdy7FEJENEnhORrSKyRURmWl3TsUTkW97/xxtF5CkRsXwDRxH5h4jUiMjGHscyReQtEdnhvXWEWH2/8f5/Xi8iL4hIhlX1Ha/GHs99R0SMiGRbUVtfQj7ARSQG+AtwKTAWuFFExlpb1VE6ge8YY8YCM4Cvhlh9PX0T2GJ1EcfxB+B1Y8wYYCIhVqeIOIFvAEXevWFjgBusrQrwbHl4yTHHurc8HAks9j62yhN8sr63gPHGmAnAduDuYBd1jCf4ZI2IyBDgImBPsAvyVcgHODAdKDHGlBpj2oGn8WzpFhKMMVXGmDXe+014gsdpbVWfJCIu4HLgUatrOZaIpANnA48BGGPajTEN1lbVq1jALiKxQBJQaXE9GGPeAw4cc3gunq0O8d5eFdSieuitPmPMm8aYTu/D5YAr6IUdXU9v30OAB4Hvc4INa6wWDgHuBPb2eFxOCAYkgHfv0MnACmsr6dVDeP4yuq0upBfDgVrgce8Qz6Mikmx1UT0ZYyqA3+K5GqsCGo0xb1pb1XH5vOVhCPg88JrVRRxLROYCFcaYdVbXciLhEOBhQURSgOeBO4wxB62upycRuQKoMcastrqW44gFpgAPG2MmA4ex9p/9n+AdR56L55dNPpAsIjdZW1Xf+try0Eoici+eIcgnra6lJxFJAu4BfmR1LX0JhwCvAIb0eOzyHgsZIhKHJ7yfNMYssLqeXswC5ohIGZ4hqPNE5N/WlnSUcqDcGNP9L5fn8AR6KLkA2GWMqTXGdAALgDMsrul4Qn7LQxG5BbgC+KwJvckoI/D8ol7n/ZlxAWtEJM/SqnoRDgG+EhgpIsNFJB7PB0eLLK7pCBERPGO3W4wxv7e6nt4YY+42xriMMQV4vn/vGGNC5urRGFMN7BWR0d5D5wObLSypN3uAGSKS5P1/fj4h9kFrDyG95aGIXIJnOG+OMabZ6nqOZYzZYIwZZIwp8P7MlANTvH9PQ0rIB7j3w46vAW/g+YF51hizydqqjjILuBnPVW2x97/LrC4qDH0deFJE1gOTgF9aXM9RvP86eA5YA2zA87Nj+XTrUN/y8Dj1/RlIBd7y/rz81ar6TlBjWNCp9EopFaZC/gpcKaVU7zTAlVIqTGmAK6VUmNIAV0qpMKUBrpRSYUoDXCmlwpQGuFJKhan/D9jxUKMIDLbZAAAAAElFTkSuQmCC\n",
-      "text/plain": [
-       "<Figure size 432x288 with 1 Axes>"
-      ]
-     },
-     "metadata": {},
-     "output_type": "display_data"
-    }
-   ],
-   "source": [
-    "# Fit a model to some data\n",
-    "# Model is:\n",
-    "#    prediction = M0 * exp(-TE/T2)*(1-exp(-TR/T1))\n",
-    "#    where M0,T1,T2 are unknown parameters and TE/TR are experimental parameters\n",
-    "\n",
-    "\n",
-    "import numpy as np\n",
-    "import matplotlib.pyplot as plt\n",
-    "from scipy.optimize import minimize\n",
-    "\n",
-    "\n",
-    "TEs = np.array([10,40,60,80]) # TE values in ms\n",
-    "TRs = np.array([.5,1,1.5,2])  # TR in seconds\n",
-    "\n",
-    "# All combinations of TEs/TRs\n",
-    "combinations = np.array([(x,y) for x in TEs for y in TRs])\n",
-    "TEs,TRs = combinations[:,0],combinations[:,1]\n",
-    "\n",
-    "# function for our model\n",
-    "def forward(p):\n",
-    "    M0,T1,T2 = p\n",
-    "    return M0*np.exp(-TEs/T2)*(1-np.exp(-TRs/T1))\n",
-    "\n",
-    "# simulate data using model \n",
-    "true_p = [100,.8,50]\n",
-    "data   = forward(true_p)\n",
-    "data   = data + np.random.randn(data.size)\n",
-    "\n"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 65,
-   "metadata": {},
-   "outputs": [
-    {
-     "name": "stderr",
-     "output_type": "stream",
-     "text": [
-      "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/scipy/optimize/_minimize.py:506: RuntimeWarning: Method Nelder-Mead does not use gradient information (jac).\n",
-      "  RuntimeWarning)\n"
-     ]
-    }
-   ],
-   "source": [
-    "# Now for the fitting\n",
-    "# we need a cost function:\n",
-    "\n",
-    "def cf(p):\n",
-    "    pred = forward(p)\n",
-    "    return np.mean((pred-data)**2)/2\n",
-    " \n",
-    "# always a good idea to calculate gradient\n",
-    "def forward_deriv(p):\n",
-    "    M0,T1,T2 = p\n",
-    "    E1,E2    = np.exp(-TEs/T2),np.exp(-TRs/T1)\n",
-    "    \n",
-    "    dfdM0 = E2*(1-E1)\n",
-    "    dfdT1 = M0*E2*(-E1/T1**2)\n",
-    "    dfdT2 = M0*(E2/T2**2)*(1-E1)\n",
-    "    return np.array([dfdM0,dfdT1,dfdT2])\n",
-    "\n",
-    "def forward_deriv2(p):\n",
-    "    M0,T1,T2 = p\n",
-    "    E1,E2    = np.exp(-TEs/T2),np.exp(-TRs/T1)\n",
-    "    \n",
-    "    dfdM0dM0 = 0\n",
-    "    dfdM0dT1 = -E2\n",
-    "    dfdM0dT2 = (1-E1)\n",
-    "\n",
-    "    dfdT1dM0 = E2*(-E1/T1**2)\n",
-    "    dfdT1dT1 = M0*E2*(-E1/T1**4)\n",
-    "    dfdT1dT2 = M0*(E2/T2**4)*(1-E1)\n",
-    " \n",
-    "    dfdT2dM0 = (E2/T2**2)*(1-E1)\n",
-    "    dfdT2dT1 = M0*(E2/T2**2)*(1-E1/T1**2)\n",
-    "    dfdT2dT2 = M0*(E2/T2**4)*(1-E1)\n",
-    "\n",
-    "    return np.array([dfdM0dM0,dfdM0dT1,dfdM0dT2],[dfdT1dM0,dfdT1dT1,dfdT1dT2],[dfdT2dM0,dfdT2dT1,dfdT2dT2])\n",
-    "\n",
-    "def gradient(p):\n",
-    "    pred  = forward(p)\n",
-    "    deriv = forward_deriv(p)\n",
-    "    return np.mean( deriv * (pred-data)[None,:],axis=1)\n",
-    "\n",
-    "def hess(p):\n",
-    "    pred   = forward(p)\n",
-    "    deriv  = forward_deriv(p)\n",
-    "    d2Fdp2 = forward_deriv2(p)\n",
-    "    \n",
-    "    deriv*deriv\n",
-    "\n",
-    "\n",
-    "# get ready to minimize\n",
-    "p0 = [200,1,70] # some random guess\n",
-    "method = 'Nelder-Mead'\n",
-    "\n",
-    "arguments = {'x0':p0,'method':method,'jac':gradient}\n",
-    "\n",
-    "result = minimize(cf,**arguments)"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 66,
-   "metadata": {},
-   "outputs": [
-    {
-     "data": {
-      "text/plain": [
-       "[<matplotlib.lines.Line2D at 0x123074ef0>]"
-      ]
-     },
-     "execution_count": 66,
-     "metadata": {},
-     "output_type": "execute_result"
-    },
-    {
-     "data": {
-      "image/png": "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\n",
-      "text/plain": [
-       "<Figure size 432x288 with 1 Axes>"
-      ]
-     },
-     "metadata": {},
-     "output_type": "display_data"
-    }
-   ],
-   "source": [
-    "plt.plot(data)\n",
-    "plt.plot(forward(result.x))"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 69,
-   "metadata": {},
-   "outputs": [
-    {
-     "data": {
-      "text/plain": [
-       "(3,)"
-      ]
-     },
-     "execution_count": 69,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "np.mean(forward_deriv(p0),axis=1).shape"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 55,
-   "metadata": {},
-   "outputs": [
-    {
-     "data": {
-      "text/plain": [
-       "[100, 0.8, 50]"
-      ]
-     },
-     "execution_count": 55,
-     "metadata": {},
-     "output_type": "execute_result"
-    }
-   ],
-   "source": [
-    "true_p"
-   ]
-  },
-  {
-   "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.1"
-  }
- },
- "nbformat": 4,
- "nbformat_minor": 2
-}