Skip to content

Instantly share code, notes, and snippets.

@scpeters
Created February 20, 2019 21:50
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 scpeters/f7d87dd6578dee3fb95b90b402046679 to your computer and use it in GitHub Desktop.
Save scpeters/f7d87dd6578dee3fb95b90b402046679 to your computer and use it in GitHub Desktop.
ipython notebook for spline computations in variable gearbox plugin
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import math\n",
"import numpy as np\n",
"import matplotlib as mpl\n",
"import matplotlib.pyplot as plt\n",
"%matplotlib inline\n",
"%config InlineBackend.figure_format = 'png'\n",
"mpl.rcParams.update({'font.size': 16})"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"def plotSplinesY(x_y_dydx_array):\n",
" N = 21\n",
" plt.gcf()\n",
" x = np.zeros([len(x_y_dydx_array)])\n",
" y = np.zeros([len(x_y_dydx_array)])\n",
" dydx = np.zeros([len(x_y_dydx_array)])\n",
" for i, x_y_dydx in enumerate(x_y_dydx_array):\n",
" x[i] = x_y_dydx[0]\n",
" y[i] = x_y_dydx[1]\n",
" dydx[i] = x_y_dydx[2]\n",
" # plot linear segments before and after\n",
" plt.plot(x, y, 'o')\n",
" dx = x[-1] - x[0]\n",
" x_below = np.linspace(x[0] - 0.5*dx, x[0], N)\n",
" y_below = y[0] + dydx[0] * (x_below - x[0])\n",
" plt.plot(x_below, y_below, '--')\n",
" x_above = np.linspace(x[-1], x[-1] + 0.5*dx, N)\n",
" y_above = y[-1] + dydx[-1] * (x_above - x[-1])\n",
" plt.plot(x_above, y_above, '--')\n",
" # plot each spline\n",
" for i in range(len(x)-1):\n",
" dx = x[i+1] - x[i]\n",
" dy = y[i+1] - y[i]\n",
" x_i = np.linspace(x[i], x[i+1], N)\n",
" t = (x_i - x[i]) / dx\n",
" b1 = dy / dx - dydx[i]\n",
" b2 = dydx[i+1] - dydx[i]\n",
" p1 = 3*b1 - b2\n",
" p2 = -2*b1 + b2\n",
" y_i = y[i] + dx*t*(dydx[i] + t*(p1 + p2*t))\n",
" plt.plot(x_i, y_i)\n",
" plt.grid()\n",
" plt.xlabel('x')\n",
" plt.ylabel('y')"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"def plotSplines_dydx(x_y_dydx_array):\n",
" N = 21\n",
" plt.gcf()\n",
" x = np.zeros([len(x_y_dydx_array)])\n",
" y = np.zeros([len(x_y_dydx_array)])\n",
" dydx = np.zeros([len(x_y_dydx_array)])\n",
" for i, x_y_dydx in enumerate(x_y_dydx_array):\n",
" x[i] = x_y_dydx[0]\n",
" y[i] = x_y_dydx[1]\n",
" dydx[i] = x_y_dydx[2]\n",
" # plot linear segments before and after\n",
" dx = x[-1] - x[0]\n",
" x_below = np.linspace(x[0] - 0.5*dx, x[0], N)\n",
" plt.plot(x_below, dydx[0]+0*x_below, '--')\n",
" x_above = np.linspace(x[-1], x[-1] + 0.5*dx, N)\n",
" plt.plot(x_above, dydx[-1]+0*x_above, '--')\n",
" # plot each spline\n",
" for i in range(len(x)-1):\n",
" dx = x[i+1] - x[i]\n",
" dy = y[i+1] - y[i]\n",
" x_i = np.linspace(x[i], x[i+1], N)\n",
" t = (x_i - x[i]) / dx\n",
" b1 = dy / dx - dydx[i]\n",
" b2 = dydx[i+1] - dydx[i]\n",
" p1 = 3*b1 - b2\n",
" p2 = -2*b1 + b2\n",
" dydx_i = dydx[i] + t*(2*p1 + 3*p2*t)\n",
" plt.plot(x_i, dydx_i)\n",
" plt.grid()\n",
" plt.xlabel('x')\n",
" plt.ylabel('dy/dx')"
]
},
{
"cell_type": "code",
"execution_count": 4,
"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": [
"x_y_dydx = [\n",
" [1.2, -1.2, -1],\n",
" [1.8, -7.5, -20]\n",
"]\n",
"plotSplinesY(x_y_dydx)"
]
},
{
"cell_type": "code",
"execution_count": 5,
"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": [
"plotSplines_dydx(x_y_dydx)"
]
},
{
"cell_type": "code",
"execution_count": 6,
"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": [
"x_y_dydx = [\n",
" [1.2, -1.2, -1],\n",
" [1.8, -7.5, -20],\n",
" [2.2, -10, -1]\n",
"]\n",
"plotSplinesY(x_y_dydx)"
]
},
{
"cell_type": "code",
"execution_count": 7,
"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": [
"plotSplines_dydx(x_y_dydx)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 2",
"language": "python",
"name": "python2"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 2
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython2",
"version": "2.7.15"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment