Skip to content

Instantly share code, notes, and snippets.

@yudhastyawan
Last active May 1, 2021 21:08
Show Gist options
  • Save yudhastyawan/aa7be20d7792397c77626a7e660c1590 to your computer and use it in GitHub Desktop.
Save yudhastyawan/aa7be20d7792397c77626a7e660c1590 to your computer and use it in GitHub Desktop.
Jupyter notebooks and labs
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
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
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
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": "markdown",
"id": "0121c1d4-caa5-4399-8030-5f28a32ecfec",
"metadata": {},
"source": [
"# 6.\tPerforming extrapolation and interpolation in arbitrary grid in polynomial\n",
"\n",
"Figure 28 show the code for the demonstration extrapolation and interpolation of the variant curve and data length.\n"
]
},
{
"cell_type": "code",
"execution_count": 1,
"id": "b4051aa2-b5eb-42a0-a58f-fd8b47f39b1e",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAaAAAAEGCAYAAAAjc0GqAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/Z1A+gAAAACXBIWXMAAAsTAAALEwEAmpwYAAA+J0lEQVR4nO3deVhV1frA8e9iEnAWhxxBTVNBccDSzNQGNe2qlaZlDpVDWpmNaphZalnen926maaZQ9LVtDJv17JBbbJyKCuHcgQEZ1QEkZje3x9nn8NhFGU4B3g/z3MeOGuvs/faW+Flrb32u4yIoJRSSpU0D1c3QCmlVPmkAUgppZRLaABSSinlEhqAlFJKuYQGIKWUUi7h5eoGlBY1a9aUoKAgVzdDKaVKlR07dpwWkVq5bdMAVEBBQUFs377d1c1QSqlSxRgTldc2HYJTSinlEhqAlFJKuYQGIKWUUi6h94AKITU1lZiYGJKTk13dFKXKHV9fXxo0aIC3t7erm6KukAagQoiJiaFy5coEBQVhjHF1c5QqN0SEuLg4YmJiaNy4saubo66QDsEVQnJyMgEBARp8lCphxhgCAgJ09KGYRUREEBQUhIeHB0FBQURERBTp/rUHVEgafJRyDf3ZK14RERGMGTOGpKQkAKKiohgzZgwAQ4cOLZJjaA9IKaVUDuHh4SQlJTF8OAQH28qSkpIIDw8vsmNoAFJ5Wrt2LXv27CmSfU2fPp1//vOfRbIvpVTxi46OpnlzuP9+aN8+a3lR0QCk8lSUAUgpVbo0atSIESPg/Hn48MOs5UVFA1Apt2LFCq699lratm3L2LFjSU9PZ9u2bbRp04bk5GQuXLhAcHAwu3btIjExkZtvvpn27dvTunVrPvnkE8d+li9fTps2bQgNDWXYsGFs2bKFdevW8fTTT9O2bVsOHjzoqBsfH09gYCAZGRkAXLhwgYYNG5KamsqiRYvo2LEjoaGh3HXXXY7xY2fdu3d3pDU6ffo09hx76enpPP3003Ts2JE2bdrw9ttvF+OVU0rl59VXH+D662HVKrD/GPv7+zNr1qwiO4ZOQigi+/dPJDFxZ5Hus1KltjRr9q88t+/du5dVq1bxww8/4O3tzfjx44mIiGD48OH069ePqVOncvHiRe677z5CQkJIS0vj448/pkqVKpw+fZpOnTrRr18/9uzZw8yZM9myZQs1a9bkzJkz1KhRg379+nH77bczcODALMetWrUqbdu25ZtvvqFHjx58+umn9OrVC29vb+68805Gjx4NwNSpU1m8eDGPPvpogc538eLFVK1alW3btvH333/TpUsXevbsqdNslXKBFi1+5NSpyuzYUQ1jYmjUqBGzZs0qsgkIoAGoVPv666/ZsWMHHTt2BODixYvUrl0bgGnTptGxY0d8fX154403ANuzE88++yzffvstHh4exMbGcuLECTZu3MigQYOoWbMmADVq1LjksQcPHsyqVavo0aMHK1euZPz48QDs2rWLqVOncu7cORITE+nVq1eBz+eLL77g999/Z82aNYCtp7V//34NQEqVsPj4LZw58znNmr3Kn38+XWzH0QBURPLrqRQXEWHEiBG8/PLLObbFxcWRmJhIamoqycnJVKxYkYiICE6dOsWOHTvw9vYmKCjoip+j6NevH88++yxnzpxhx44d3HTTTQCMHDmStWvXEhoaytKlS9m8eXOOz3p5eTmG75yPLyL8+9//vqygpZQqepGRz+PtXZv69ccX63H0HlApdvPNN7NmzRpOnjwJwJkzZ4iKsmU+Hzt2LDNmzGDo0KFMmjQJsPUoateujbe3N5s2bXLUvemmm1i9ejVxcXGO/QBUrlyZhISEXI9dqVIlOnbsyGOPPcbtt9+Op6cnAAkJCdStW5fU1NQ8H1oLCgpix44dAI7eDkCvXr2YP38+qampAOzbt48LFy5c+QVSSl22c+e+5ezZr2jUaDKenhWL9VgagEqxVq1aMXPmTHr27EmbNm249dZbOXbsGMuXL8fb25t7772XyZMns23bNjZu3MjQoUPZvn07rVu3Zvny5bRo0QKA4OBgwsPD6datG6GhoTzxxBMADBkyhDlz5tCuXbsskxDsBg8ezIoVKxg8eLCjbMaMGVx33XV06dLFsf/snnrqKebPn0+7du04ffq0o3zUqFG0atWK9u3bExISwtixY0lLSyvKS6aUyoM968GSJd04d86Tb7+tVuzHNCJS7AcpC8LCwiT7gnR79+6lZcuWLmqRUkp/BouGPetB8+ZJvPYavPEGbNjgz8KFCws96cAYs0NEwnLbpj0gpZQq5+xZDx58EE6dgk8/LfqsB7nRAKSUUuVcdHQ0N94IISGwdClYt2GLNOtBbjQAKaVUOde4cUPGjIFDh+DzzzPLizLrQW40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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"import numpy as np\n",
"import matplotlib.pyplot as plt\n",
"from finitediff import derivatives_at_point_by_finite_diff\n",
"\n",
"def test_extraintrapolation():\n",
" # data\n",
" # f = lambda x: np.power(x,2) #<- function (option 1)\n",
" f = lambda x: np.power(x, 2) + np.power(x, 3) # <- function (option 2)\n",
" # x = np.array([0., 3., 4.7]) #<- data (option 1)\n",
" x = np.array([0., 2.2, 4.7, 7.]) # <- data (option 2)\n",
" y = f(x) #<- data\n",
" m = len(x) - 1\n",
" lenx = 50\n",
" x0 = np.linspace(-50,50,lenx) + np.random.random(lenx)*2 #<- need to be estimated\n",
" yest = np.zeros(x0.shape)\n",
" yexact = f(x0)\n",
" for i, xf in enumerate(x0):\n",
" out = derivatives_at_point_by_finite_diff(x, y, xf, m)\n",
" yest[i] = out[0]\n",
" plt.figure()\n",
" plt.scatter(x0,yest,marker='o',color='k', label='extra-interpolation data (length = {})'.format(lenx))\n",
" plt.plot(x0, yexact, 'y', label='exact value')\n",
" plt.scatter(x,y,marker='^', color='r',label='arbitrary available data (length = {})'.format(len(x)))\n",
" plt.xlabel('x')\n",
" plt.ylabel('y')\n",
" plt.legend()\n",
" plt.show()\n",
"\n",
"\n",
"if __name__ == '__main__':\n",
" test_extraintrapolation()"
]
},
{
"cell_type": "markdown",
"id": "c634c28f-fa5d-4c83-85e3-781e5d609275",
"metadata": {},
"source": [
"Figure 28. The demo code for interpolation and extrapolation"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "b2e4c400-5ee7-4ab2-b1e8-05ecb8e7f29d",
"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.8.8"
}
},
"nbformat": 4,
"nbformat_minor": 5
}
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.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment