132 lines
27 KiB
Plaintext
132 lines
27 KiB
Plaintext
{
|
|
"cells": [
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 2,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"from matplotlib import pyplot as plt\n",
|
|
"import numpy as np\n"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 18,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"image/png": "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",
|
|
"text/plain": [
|
|
"<Figure size 432x288 with 1 Axes>"
|
|
]
|
|
},
|
|
"metadata": {
|
|
"needs_background": "light"
|
|
},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"# create a decaying sinewave, 8 cycles with decaying amplitude\n",
|
|
"t = np.linspace(0, 8, 1000)\n",
|
|
"decaying_sine = np.sin(t * np.pi) * 0.8 * np.exp(-t * np.pi / 4) + np.log(1 + t**0.25)\n",
|
|
"\n",
|
|
"# graph the decaying sinewave \n",
|
|
"plt.plot(t, decaying_sine)\n",
|
|
"plt.show()"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 25,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"1.0\n",
|
|
"1.0\n",
|
|
"1.0\n",
|
|
"1.0\n"
|
|
]
|
|
},
|
|
{
|
|
"data": {
|
|
"image/png": "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",
|
|
"text/plain": [
|
|
"<Figure size 432x288 with 1 Axes>"
|
|
]
|
|
},
|
|
"metadata": {
|
|
"needs_background": "light"
|
|
},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"\n",
|
|
"def plot_graph_tangent_at_time(graph, t, t_index, label='slope'):\n",
|
|
" # Get the slope of graph at that location\n",
|
|
" slope = np.gradient(graph, t)[t_index]\n",
|
|
" tangent = np.arctan(1/slope)\n",
|
|
" line_length = 1\n",
|
|
" line_w = np.sin(tangent) * line_length\n",
|
|
" line_h = np.cos(tangent) * line_length\n",
|
|
" # recalculate the length of the line\n",
|
|
" line_length = np.sqrt(line_w**2 + line_h**2)\n",
|
|
" print(line_length)\n",
|
|
"\n",
|
|
" # Add a line to the graph\n",
|
|
" plt.scatter(t[t_index], graph[t_index], color='C1', linewidth=2)\n",
|
|
" plt.plot([t[t_index] - line_w, t[t_index] + line_w], [graph[t_index] - line_h, graph[t_index] + line_h], 'C1--', label=label)\n",
|
|
"\n",
|
|
"# PLot the last graph again\n",
|
|
"plt.plot(t, decaying_sine, label='decaying sine wave')\n",
|
|
"\n",
|
|
"plot_graph_tangent_at_time(decaying_sine, t, 100)\n",
|
|
"plot_graph_tangent_at_time(decaying_sine, t, 165)\n",
|
|
"plot_graph_tangent_at_time(decaying_sine, t, 500)\n",
|
|
"plot_graph_tangent_at_time(decaying_sine, t, 700)\n",
|
|
"# plt.legend()\n",
|
|
"plt.axis('equal')\n",
|
|
"# set y axis range from 2 to 0\n",
|
|
"plt.ylim(0, 2)\n",
|
|
"\n",
|
|
"plt.savefig(\"slopes_on_wave.png\", bbox_inches=\"tight\")\n",
|
|
"plt.savefig(\"slopes_on_wave.svg\", bbox_inches=\"tight\", format=\"svg\")\n",
|
|
"plt.show()\n"
|
|
]
|
|
}
|
|
],
|
|
"metadata": {
|
|
"kernelspec": {
|
|
"display_name": "Python 3.7.4 ('.venv': venv)",
|
|
"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.7.4"
|
|
},
|
|
"orig_nbformat": 4,
|
|
"vscode": {
|
|
"interpreter": {
|
|
"hash": "97190208b4a6552dc9493965a1caf8d39c9d1897fe9495f2fe88af90c5a07bd6"
|
|
}
|
|
}
|
|
},
|
|
"nbformat": 4,
|
|
"nbformat_minor": 2
|
|
}
|