{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## This notebook both plots a given parametic curve and computes its Frenet appartus.\n",
    "\n",
    "That is it will plot the curve and compute its curvature, unit, and\n",
    "unit normal.\n",
    "\n",
    "Start by importing the required libraries:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "metadata": {},
   "outputs": [],
   "source": [
    "from sympy import *  #python symbolic math package.\n",
    "import numpy as np   #numerical mathmatics library.\n",
    "import matplotlib.pyplot as plt    #plotting library.\n",
    "init_printing()            #to get good looking output."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Declare $t$ to be a symbol, give the domain $[a,b]$ of \n",
    "the curve, and define $x$ and $y$ as functions of $t$.\n",
    "These should all be editted as needed."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 82,
   "metadata": {},
   "outputs": [],
   "source": [
    "t = symbols('t')\n",
    "a = 0\n",
    "b = 20*pi\n",
    "x = exp(-t/5)*cos(t)\n",
    "y = exp(-t/5)*sin(t)\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Divide the domain into pieces of length $h$ to be used in plotting\n",
    "and compute the $x$ and $y$ values at these the subdivsions of the domain\n",
    "and store in them in lists."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 83,
   "metadata": {},
   "outputs": [],
   "source": [
    "h = .1   #edit if need be.\n",
    "t_dom = np.arange(a,b,h)\n",
    "x_vals = [x.subs(t,s) for s in t_dom]\n",
    "y_vals = [y.subs(t,s) for s in t_dom]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Plot the curve."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 84,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/latex": [
       "$\\displaystyle \\left( -0.6208197852041253, \\  1.0771818945335299, \\  -0.45454513588891127, \\  0.8018979325108379\\right)$"
      ],
      "text/plain": [
       "(-0.6208197852041253, 1.0771818945335299, -0.45454513588891127, 0.801897932510\n",
       "8379)"
      ]
     },
     "execution_count": 84,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "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": [
    "plt.plot(x_vals,y_vals)\n",
    "plt.axis('equal')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Compute the deriviatives of $x$ and $y$ with respect to $t$ and use\n",
    "them to compute the speed, $v$."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 85,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/latex": [
       "$\\displaystyle 1.01980390271856 \\left(e^{- \\frac{2 t}{5}}\\right)^{0.5}$"
      ],
      "text/plain": [
       "                         0.5\n",
       "                 ⎛ -2⋅t ⎞   \n",
       "                 ⎜ ─────⎟   \n",
       "                 ⎜   5  ⎟   \n",
       "1.01980390271856⋅⎝ℯ     ⎠   "
      ]
     },
     "execution_count": 85,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "dx = diff(x,t)\n",
    "dy = diff(y,t)\n",
    "v = (dx**2 + dy**2)**(1/2)\n",
    "v.simplify()  # simplfy v if possible."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Compute the unit tangent $\\mathbf t$ and unit normal $\\mathbf n$."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 86,
   "metadata": {},
   "outputs": [],
   "source": [
    "t1 = simplify(dx/v)\n",
    "t2 = simplify(dy/v)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The unit tangent is"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 87,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/latex": [
       "$\\displaystyle \\left( - \\frac{\\left(0.98058067569092 \\sin{\\left(t \\right)} + 0.196116135138184 \\cos{\\left(t \\right)}\\right) e^{- \\frac{t}{5}}}{\\left(e^{- \\frac{2 t}{5}}\\right)^{0.5}}, \\  \\frac{1.0 \\left(- 0.196116135138184 \\sin{\\left(t \\right)} + 0.98058067569092 \\cos{\\left(t \\right)}\\right) e^{- \\frac{t}{5}}}{\\left(e^{- \\frac{2 t}{5}}\\right)^{0.5}}\\right)$"
      ],
      "text/plain": [
       "⎛                                                              -0.5           \n",
       "⎜                                                      ⎛ -2⋅t ⎞      -t       \n",
       "⎜                                                      ⎜ ─────⎟      ───      \n",
       "⎜                                                      ⎜   5  ⎟       5       \n",
       "⎝-(0.98058067569092⋅sin(t) + 0.196116135138184⋅cos(t))⋅⎝ℯ     ⎠    ⋅ℯ   , 1.0⋅\n",
       "\n",
       "                                                              -0.5     ⎞\n",
       "                                                      ⎛ -2⋅t ⎞      -t ⎟\n",
       "                                                      ⎜ ─────⎟      ───⎟\n",
       "                                                      ⎜   5  ⎟       5 ⎟\n",
       "(-0.196116135138184⋅sin(t) + 0.98058067569092⋅cos(t))⋅⎝ℯ     ⎠    ⋅ℯ   ⎠"
      ]
     },
     "execution_count": 87,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "(t1,t2)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The unit normal is"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 88,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/latex": [
       "$\\displaystyle \\left( - \\frac{1.0 \\left(- 0.196116135138184 \\sin{\\left(t \\right)} + 0.98058067569092 \\cos{\\left(t \\right)}\\right) e^{- \\frac{t}{5}}}{\\left(e^{- \\frac{2 t}{5}}\\right)^{0.5}}, \\  - \\frac{\\left(0.98058067569092 \\sin{\\left(t \\right)} + 0.196116135138184 \\cos{\\left(t \\right)}\\right) e^{- \\frac{t}{5}}}{\\left(e^{- \\frac{2 t}{5}}\\right)^{0.5}}\\right)$"
      ],
      "text/plain": [
       "⎛                                                                   -0.5      \n",
       "⎜                                                           ⎛ -2⋅t ⎞      -t  \n",
       "⎜                                                           ⎜ ─────⎟      ─── \n",
       "⎜                                                           ⎜   5  ⎟       5  \n",
       "⎝-1.0⋅(-0.196116135138184⋅sin(t) + 0.98058067569092⋅cos(t))⋅⎝ℯ     ⎠    ⋅ℯ   ,\n",
       "\n",
       "                                                               -0.5     ⎞\n",
       "                                                       ⎛ -2⋅t ⎞      -t ⎟\n",
       "                                                       ⎜ ─────⎟      ───⎟\n",
       "                                                       ⎜   5  ⎟       5 ⎟\n",
       " -(0.98058067569092⋅sin(t) + 0.196116135138184⋅cos(t))⋅⎝ℯ     ⎠    ⋅ℯ   ⎠"
      ]
     },
     "execution_count": 88,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "(-t2,t1)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Compute the second derivatives of $x$ and $y$ and use them to \n",
    "compute the curvature and print it out"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 89,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/latex": [
       "$\\displaystyle \\frac{0.98058067569092}{\\left(e^{- \\frac{2 t}{5}}\\right)^{0.5}}$"
      ],
      "text/plain": [
       "                         -0.5\n",
       "                 ⎛ -2⋅t ⎞    \n",
       "                 ⎜ ─────⎟    \n",
       "                 ⎜   5  ⎟    \n",
       "0.98058067569092⋅⎝ℯ     ⎠    "
      ]
     },
     "execution_count": 89,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "ddx = diff(dx,t)\n",
    "ddy = diff(dy,t)\n",
    "num = simplify(dx*ddy - ddx*dy)\n",
    "curvature = simplify(num/v**3)\n",
    "curvature.simplify()"
   ]
  }
 ],
 "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.7.1"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
