{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", "import matplotlib.pyplot as plt" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Define the force law" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "def a(x):\n", " return -x" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [], "source": [ "deltaT = 0.01\n", "tFinal = 10.0\n", "N = int(tFinal/deltaT)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### create empty array for $T$ $X$ $V$" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [], "source": [ "T = np.zeros(N+1, float)\n", "X = np.zeros(N+1, float)\n", "V = np.zeros(N+1, float)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Intial conditons" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [], "source": [ "X[0] = 1.0\n", "V[0] = 0.0" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Solve by forward integration" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [], "source": [ "for n in range(1, N+1):\n", " T[n] = n * deltaT\n", " X[n] = X[n-1] + V[n-1] * deltaT\n", " V[n] = V[n-1] + a(X[n-1]) * deltaT\n", " #print(\"T = \", round(T[n], 3), \" X = \", round(X[n], 3), \" V = \", round(V[n], 3))" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plt.scatter(T,X, marker = 'o')\n", "Xexact = np.cos(T)\n", "plt.plot(T,Xexact)\n", "plt.ylabel(\"Position of the mass\")\n", "plt.xlabel(\"time\")\n", "plt.axhline(y=0, color='b')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Solve by leapfrog method" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "![](leapFrog.png \"Leap Frog Method\")" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [], "source": [ "deltaT = 0.1\n", "tFinal = 7.0\n", "N = int(tFinal/deltaT)\n", "T = np.zeros(N+1, float)\n", "X = np.zeros(N+1, float)\n", "V = np.zeros(N+1, float)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Calculate the velocity at $\\epsilon/2$ using \n", "$$v(\\epsilon/2)=v(0)+\\frac{\\epsilon}{2}a(0)$$" ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [], "source": [ "X[0] = 1.0\n", "V[0] = (deltaT/2.0) * a(1.0) # the first element" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [], "source": [ "for n in range(1, N+1):\n", " T[n] = n * deltaT\n", " X[n] = X[n-1] + V[n-1] * deltaT #using velocity at the midpoint of the interval\n", " V[n] = V[n-1] + a(X[n]) * deltaT #using accel at the midpoint of the interval" ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 20, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plt.scatter(T,X, marker = 'o')\n", "Xexact = np.cos(T)\n", "plt.plot(T,Xexact)\n", "plt.ylabel(\"Position of the mass\")\n", "plt.xlabel(\"time\")\n", "plt.axhline(y=0, color='b')" ] }, { "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.8" } }, "nbformat": 4, "nbformat_minor": 2 }