Skip to content

Instantly share code, notes, and snippets.

@iamareebjamal
Last active August 31, 2018 20:02
Show Gist options
  • Save iamareebjamal/0f2790a571f097da5761425392d19387 to your computer and use it in GitHub Desktop.
Save iamareebjamal/0f2790a571f097da5761425392d19387 to your computer and use it in GitHub Desktop.
Least Square Non Linear
Display the source blob
Display the rendered blob
Raw
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 31,
"metadata": {},
"outputs": [],
"source": [
"import numpy as np\n",
"\n",
"t_train = np.linspace(-4, 4, 100)"
]
},
{
"cell_type": "code",
"execution_count": 32,
"metadata": {},
"outputs": [],
"source": [
"y_train = 1/np.sqrt(2*np.pi)*np.exp((-t_train**2)/2)"
]
},
{
"cell_type": "code",
"execution_count": 33,
"metadata": {},
"outputs": [],
"source": [
"def func(x, t, y):\n",
" return x[0]*np.exp(-t)*np.exp(-np.exp(-(t-x[1]))) - y"
]
},
{
"cell_type": "code",
"execution_count": 34,
"metadata": {},
"outputs": [],
"source": [
"lb = np.array([1/2,-1])\n",
"ub = np.array([3/2,3])\n",
"x0 = np.array([1/2,0])"
]
},
{
"cell_type": "code",
"execution_count": 39,
"metadata": {},
"outputs": [],
"source": [
"from scipy.optimize import least_squares\n",
"\n",
"result = least_squares(func, x0, bounds=(lb, ub), args=(t_train, y_train))\n",
"x = result.x"
]
},
{
"cell_type": "code",
"execution_count": 49,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"%matplotlib inline\n",
"\n",
"import matplotlib.pyplot as plt\n",
"\n",
"plt.plot(t_train, y_train, '--', label='Test Data')\n",
"plt.legend()\n",
"plt.plot(t_train, func(x, t_train, y_train) + y_train, label='Calculated Function')\n",
"plt.legend()\n",
"plt.show()"
]
},
{
"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.4"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment