{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "slide"
    }
   },
   "source": [
    "# Python Arrays "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "fragment"
    }
   },
   "source": [
    "### Import Libraries"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {
    "slideshow": {
     "slide_type": "fragment"
    }
   },
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "%matplotlib inline"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "slide"
    }
   },
   "source": [
    "## Array basics were covered earlier\n",
    "- Review those if needed\n",
    "- [See this page](https://www.w3schools.com/python/python_lists.asp) for more information on built-in Python Lists.\n",
    "\n",
    "## Numpy arrays\n",
    "\n",
    "- Python lists are nice, but for numerical work, numpy arrays are much better.\n",
    "- 90% of the work we will do in science, math, and engineering, is best done using numpy arrays.\n",
    "- All of the above regarding Python lists is the same, **except**\n",
    "    - Each element type needs to be the same.\n",
    "    - The way we create arrays is different.\n",
    "\n",
    "### Some good links:\n",
    "- [Numpy for Matlab users](https://docs.scipy.org/doc/numpy-1.15.0/user/numpy-for-matlab-users.html)\n",
    "    - [This too](http://mathesaurus.sourceforge.net/matlab-numpy.html)\n",
    "- [Tentative numpy tutorial](https://scipy.github.io/old-wiki/pages/Tentative_NumPy_Tutorial)\n",
    "- [Numpy quickstart tutorial](https://numpy.org/doc/stable/user/quickstart.html)\n",
    "- [Linear algebra](http://docs.scipy.org/doc/numpy/reference/routines.linalg.html)\n",
    "- [Cookbook with good recipes](https://scipy-cookbook.readthedocs.io)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "slide"
    }
   },
   "source": [
    "### Length of a list\n",
    "`len` function"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {
    "slideshow": {
     "slide_type": "fragment"
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAAoAAAAOCAYAAAAWo42rAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAArklEQVQoFWP4//8/AzZcX19vBMQzYXJMDLjBaqCUEEwaq8KGhoYymAIYjaEQqMgIKPkBimHqGDAUAmXCgYpnwVVAGSgKoVbORFcE4sMVAhUpAfkfgPQ9vAqBkunYrIRpApsIVJAGFMBqJVwh1EoBXFbCFDICQ98FyEmHCSDRIUA2KJj2APE9rNEHijagAe+BeDUxUSgANAmEwYARpAMZAN0K8hQoqEBOAoE1QHwaAIFUXZ4aMJQ9AAAAAElFTkSuQmCC",
      "text/latex": [
       "$\\displaystyle 4$"
      ],
      "text/plain": [
       "4"
      ]
     },
     "execution_count": 32,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "a = np.array([1.1, 2.2, 3.3, 4.4])\n",
    "\n",
    "len(a)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "slide"
    }
   },
   "source": [
    "## Creating arrays\n",
    "\n",
    "- `array` (we've already seen this)\n",
    "- `linspace`, `arange`\n",
    "- `empty`, `zeros`, `ones`, `full`\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {
    "slideshow": {
     "slide_type": "slide"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([0. , 0.5, 1. , 1.5, 2. , 2.5, 3. , 3.5, 4. , 4.5, 5. ])"
      ]
     },
     "execution_count": 33,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# linspace\n",
    "\n",
    "np.linspace(0,5,11)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "metadata": {
    "slideshow": {
     "slide_type": "slide"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([ 0. ,  2.2,  4.4,  6.6,  8.8, 11. , 13.2, 15.4, 17.6, 19.8])"
      ]
     },
     "execution_count": 34,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# arange\n",
    "\n",
    "np.arange(0,20,2.2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "metadata": {
    "slideshow": {
     "slide_type": "slide"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([ 1. ,  2. ,  2.5,  5. , 10. ])"
      ]
     },
     "execution_count": 35,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# empty\n",
    "\n",
    "np.empty(5)         # creates space, but arbitrary values (not set, faster)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "metadata": {
    "slideshow": {
     "slide_type": "slide"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([0., 0., 0., 0., 0.])"
      ]
     },
     "execution_count": 36,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# zeros\n",
    "\n",
    "np.zeros(5)         # array of 5 zeros"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "metadata": {
    "slideshow": {
     "slide_type": "slide"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([1., 1., 1., 1., 1.])"
      ]
     },
     "execution_count": 37,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# ones\n",
    "\n",
    "np.ones(5)           # array of 5 ones"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([2.2, 2.2, 2.2, 2.2, 2.2])"
      ]
     },
     "execution_count": 38,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# full\n",
    "\n",
    "np.full(5, 2.2)      # array of 5 2.2's"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "slide"
    }
   },
   "source": [
    "### Access elements\n",
    "- use square brackets with index number\n",
    "- array indexing **starts at zero**\n",
    "- for 2D arrays (matrix) `x[i,j]` is row `i`, column `j`\n",
    "- **can access backwards**0\n",
    "    - `x[-1]` is the last element\n",
    "    - `x[-2]` is the second to the last element, etc.\n",
    "    - See the figure below. If we wrap the array into a circle. Then element 0 is at the top. We index by +1 in moving clockwise, and index by -1 in moving counter-clockwise.\n",
    "    \n",
    "<img src=http://ignite.byu.edu/cbe263/lectures/arrays_f2.png width=800>"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "metadata": {
    "slideshow": {
     "slide_type": "slide"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[ 3  6  9 12 15 18]\n",
      "[ 6 12 18]\n",
      "[ 6 12 18]\n"
     ]
    }
   ],
   "source": [
    "x = np.arange(3,21,3)               # x is         [3 6 9 12 15 18]\n",
    "print(x)\n",
    "\n",
    "# Access elements with index values\n",
    "\n",
    "print( x[[1,3,5]] )\n",
    "\n",
    "# or use an \"index array\"\n",
    "\n",
    "i = [1,3,5]\n",
    "print( x[i] )\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "slide"
    }
   },
   "source": [
    "### Array slices\n",
    "- Can access multiple elements using syntax: `a[s:e]`\n",
    "    - `s` is the start (optional)\n",
    "    - `e` is the end (optional)\n",
    "    - (stops short of the end)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "metadata": {
    "slideshow": {
     "slide_type": "slide"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[ 0.   1.5  3.   4.5  6.   7.5  9.  10.5]\n",
      "[ 3.   4.5  6.   7.5  9.  10.5]\n",
      "[0.  1.5 3.  4.5 6.  7.5]\n",
      "[3.  4.5 6. ]\n"
     ]
    }
   ],
   "source": [
    "x = np.arange(0,11,1.5)       \n",
    "\n",
    "print( x[:] )                      # get all elements\n",
    "print( x[2:] )                     # get indices 2 to the end\n",
    "print( x[:-2] )                    # get elements start to one before 2nd to last (stops short)\n",
    "print( x[2:5] )                    # get indices 2 to 4 (stops short of 5; prints 5-2=3 elements)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Example\n",
    "\n",
    "We have an array of times $t$, and we want the array of differences $dt$ between times.\n",
    "- How big is $t$?\n",
    "- How big will $dt$ be?\n",
    "- Create $dt$ using a loop.\n",
    "- Create $dt$ using slice-indexing.\n",
    "    - Note, for arrays `a` and `b`, `a-b` is done element-wise.\n",
    "\n",
    "<img src=http://ignite.byu.edu/cbe263/lectures/arrays_f1.png width=300>"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[0.00519201 0.008924   0.05150365 0.10265789 0.01849523 0.0260607\n",
      " 0.06202102 0.00262901 0.07387573 0.06282502 0.02410695 0.0229147\n",
      " 0.12078709 0.14506406 0.12058017 0.02950857 0.00302003 0.0020224\n",
      " 0.08349777]\n",
      "[0.00519201 0.008924   0.05150365 0.10265789 0.01849523 0.0260607\n",
      " 0.06202102 0.00262901 0.07387573 0.06282502 0.02410695 0.0229147\n",
      " 0.12078709 0.14506406 0.12058017 0.02950857 0.00302003 0.0020224\n",
      " 0.08349777]\n"
     ]
    }
   ],
   "source": [
    "t = np.array([ \n",
    "    0.01136646,  0.01655847,  0.02548247,  0.07698612,  0.17964401,\n",
    "    0.19813924,  0.22419994,  0.28622096,  0.28884997,  0.3627257 ,\n",
    "    0.42555072,  0.44965767,  0.47257237,  0.59335946,  0.73842352,\n",
    "    0.85900369,  0.88851226,  0.89153229,  0.89355469,  0.97705246,\n",
    "    ])\n",
    "\n",
    "# loop\n",
    "\n",
    "dt = np.empty(len(t)-1)\n",
    "for i in range(len(dt)):\n",
    "    dt[i] = t[i+1] - t[i]\n",
    "print(dt)\n",
    "\n",
    "# slice\n",
    "\n",
    "dt = t[1:] - t[:-1]\n",
    "print(dt)\n",
    "\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "slide"
    }
   },
   "source": [
    "### Array properties\n",
    "\n",
    "- `size` and `shape`"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 42,
   "metadata": {
    "slideshow": {
     "slide_type": "fragment"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[[ 1  2  3  4]\n",
      " [ 7  8  9 10]]\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAADEAAAAVCAYAAADvoQY8AAAACXBIWXMAAA7EAAAOxAGVKw4bAAACoklEQVRYCc2X0XHbMAyGVV8H0GUEdYO02cDZIE03SDZwr0/2a7tBukEv3SBdodnA3qBNNnC/j6YUmaZSyZbvjDsaJEgCP0gApor1el2023w+r9rjU+vn8E2KFi0WixnD85boFLtVxNlge+NJS0xcwS7gn4Mg/jCu6NayD/T/Okb+GJccjWHDA72F37aNMPawn+HflYebYFDS/wKvwTpXMNaBO3hQBH/PWPC/6U/hx6Z7DJylRrD9DZmYxL1xAv6VdqcgIeXpKejoM00DRyMAetqvkXjF1zhxzaZwNckuT3tZe9ya+0W/RO5NjU7oNYw8KFuWIl5xlxN+zIVVdmVRCHbFmi5lZce+Q8WfIsj/6RH39Vt+LmmC3SEUfdwRbgShgjE/enKj0zDKhXYOirgvTWwrzjK3IifDiA4YRltFILd2qAzd6rXqdEVGqlLclU4YEpbNvmRC/8SQFWJssuLkcrPLjriDE5awrpjf2owBr9kc6QqzrfVDBui8YX3fMKpVe2OlN9GLopEzuDk0KqHTMLLa9Q2j2n64ABPbK3m1yqDcCvYO3txANFzAhxquAbS5TvhaSP97Qv5FuRGQ5mFIBZ0QhEqyxEYV7TxHkOlYE7+s8yR7hWVqiH1WmZ0KifxJObw5vGSvN7HSCcvkRTIZhmzWOU9HRWm8TpGF5IZ7Ik/wR5pPk7FIvbYuCs+gCbM/aJ52jh4Q6ohJl7bm1AFuPyRZdIjh/oQO32valjyse1ruGTJl/iF8S/BGX9LOD/12QMcVrTxUT5/92KloS9d6E9LOQ28jHvxr7jQ3NHj3sA0m+csDEMMmqB8bhs5exF5j989emwduijjFGwpLfROqsQKkyTtE/Q1Kj/EvnsMgzpdPhHb8xTibtWWn1gfjTJxtXP8AHTuA5BwhN8MAAAAASUVORK5CYII=",
      "text/latex": [
       "$\\displaystyle \\left( 2, \\  4\\right)$"
      ],
      "text/plain": [
       "(2, 4)"
      ]
     },
     "execution_count": 42,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "x = np.array([[1,2,3,4],[7,8,9,10]])\n",
    "print(x)\n",
    "\n",
    "np.shape(x)            # rows x columns"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 43,
   "metadata": {
    "slideshow": {
     "slide_type": "slide"
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAAoAAAAOCAYAAAAWo42rAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAA+UlEQVQoFW2SsXHCQBBFD2jALdhOiXADCnAHogSbEhgiKXUJuAW5AxMo95gO7NQZ0IF4b+E00oz/zGrv7/z7u3enSdd1SdR1fUfaBrl+5A31fVCFRlVVu7zOmVpDlPKpana9kr5j5/jzAo0uIYQ8Es9jzZhl4RflEudPwtky3ljsJBP7CwQNqQyS0oZsFzd+WMuOClfwd4tApyVxkIihULczoZNX8kD8YBBdojXEUz+R1+TATeA4br7PjrZyrh4InU13D7ec3RbU6+GrUE6pKIpT27Zzln9TBFqfyc70H3Tc59ae2He12APu7F7R7/AeFxRtf+yVg5/iAl5gbKb5R2kWAAAAAElFTkSuQmCC",
      "text/latex": [
       "$\\displaystyle 8$"
      ],
      "text/plain": [
       "8"
      ]
     },
     "execution_count": 43,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.size(x)             # total number of elements"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 44,
   "metadata": {
    "slideshow": {
     "slide_type": "fragment"
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAAkAAAAOCAYAAAD9lDaoAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAA3UlEQVQoFW2RvRGCQBCFD7UAxhIgNXI0J8AO1BK0BEJItQMMTTU0w4DE1A6gBMYOzu+dg4PIzrzZ27dvf+7Os9aaLMsCY0wCZAvQgAT+KWIMJMghtlEU3cCpLMsZ3Bn/IK5HBAewB1+jQF1f4CJSohhUJHwRHbtz9uEDiRTUBKocMt9o8SGkaVoBUtaN+6um6xxSF3I31rgh08JXxEeX7I9iRA6KLv/TicodlVP8qtt+0gYk1pxD/KbDaa/P4iS06BLffk2rU2HjMV/qAui9+hZTGGqcBBJqn765D34Dzrdx4/BA7EwAAAAASUVORK5CYII=",
      "text/latex": [
       "$\\displaystyle 2$"
      ],
      "text/plain": [
       "2"
      ]
     },
     "execution_count": 44,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "len(x)                 # length of first dimension (rows)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 45,
   "metadata": {
    "slideshow": {
     "slide_type": "fragment"
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAAoAAAAOCAYAAAAWo42rAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAArklEQVQoFWP4//8/AzZcX19vBMQzYXJMDLjBaqCUEEwaq8KGhoYymAIYjaEQqMgIKPkBimHqGDAUAmXCgYpnwVVAGSgKoVbORFcE4sMVAhUpAfkfgPQ9vAqBkunYrIRpApsIVJAGFMBqJVwh1EoBXFbCFDICQ98FyEmHCSDRIUA2KJj2APE9rNEHijagAe+BeDUxUSgANAmEwYARpAMZAN0K8hQoqEBOAoE1QHwaAIFUXZ4aMJQ9AAAAAElFTkSuQmCC",
      "text/latex": [
       "$\\displaystyle 4$"
      ],
      "text/plain": [
       "4"
      ]
     },
     "execution_count": 45,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "x = np.array([1,2,3,4])\n",
    "len(x)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "slide"
    }
   },
   "source": [
    "### Arithmetic"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 46,
   "metadata": {
    "slideshow": {
     "slide_type": "fragment"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([0, 1, 2, 3, 4, 5, 6, 7, 8])"
      ]
     },
     "execution_count": 46,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "a = np.arange(9)\n",
    "a"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 47,
   "metadata": {
    "slideshow": {
     "slide_type": "slide"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[0.  0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8]\n"
     ]
    }
   ],
   "source": [
    "#------- THIS\n",
    "\n",
    "b = 0.1 * a                 # multiplies each element of a by 0.1 and assigns whole resulting array to b\n",
    "\n",
    "#------- NOT THIS\n",
    "\n",
    "b = np.empty(len(a))\n",
    "for i in range(len(b)):\n",
    "    b[i] = 0.1*a[i]\n",
    "    \n",
    "#-------\n",
    "\n",
    "print(b)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 48,
   "metadata": {
    "slideshow": {
     "slide_type": "slide"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([0. , 1.1, 2.2, 3.3, 4.4, 5.5, 6.6, 7.7, 8.8])"
      ]
     },
     "execution_count": 48,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "a+b                 # adds element-wise"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 49,
   "metadata": {
    "slideshow": {
     "slide_type": "fragment"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([ 0,  1,  4,  9, 16, 25, 36, 49, 64])"
      ]
     },
     "execution_count": 49,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "a**2                # squares element-wise"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "slide"
    }
   },
   "source": [
    "### BE CAREFUL about assignment"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 50,
   "metadata": {
    "slideshow": {
     "slide_type": "slide"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[ 1  2  3 44]\n",
      "[ 1  2  3 44]\n"
     ]
    }
   ],
   "source": [
    "x = np.array([1,2,3,4]) \n",
    "y = x                    # note, y is now just a reference to x.\n",
    "y[3] = 44                # if we change an element of y, it will change in x too!\n",
    "print(x)                 # this is not usually what we want\n",
    "print(y)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 51,
   "metadata": {
    "slideshow": {
     "slide_type": "fragment"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[1 2 3 4]\n",
      "[ 1  2  3 44]\n"
     ]
    }
   ],
   "source": [
    "x = np.array([1,2,3,4])\n",
    "y = x.copy()                 # now x and y are two different objects\n",
    "y[3] = 44                    #   could also do y = np.array(x)\n",
    "print(x)\n",
    "print(y)\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "slide"
    }
   },
   "source": [
    "## Basic Plots"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 52,
   "metadata": {
    "slideshow": {
     "slide_type": "fragment"
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "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hSrtmOuFl2HDhgmbNm0S/vjjD6GkpOS6zxcZGSksWrSo2WO33nqrMHPmTEuV3G5tDS+rVq0SFArFNf/BYAovP//8s7B582YhNTXVkqXekI0bNwoAhNLSUkEQBCE5OVkAIOzdu9d8TU1NjeDi4iJ89tlnLT5HR+5pL3mNi0vozJkzV/U69O3bFw0NDUhLS7PYPXKyc+dOxMTEXHejofXr1+Prr7/GnXfeiT59+uD48eNWqrD9srOz8b///Q+vvPIKIiIisHTp0lav1el0SE5ObvFreObMGbFLvWFff/01hg0bhn79+l3zOoVCgf/+979YtmwZhg0bhilTpqC8vNxKVd6Y1r7HqqqqcPHiRYvdIyc7d+5E7969r3uo7E8//YSvvvoK06dPR//+/WX9dzY1NRUff/wxXnzxRURERGDZsmWtXltdXY3s7Gyb/r68+eab0b1792tep1Kp8MEHH+B///sfBg4ciBkzZlzVXyiFnTt3IiQkBL6+vgBg/n9+5dfDzc0N3bp1a/Xr0ZF72ovhpUllZaX5i2Xi5+cHwNisZal75GL9+vX49ttv8Y9//OOa13300UdIS0vDli1bkJ6ejj59+mDOnDlobGy0UqVtN2HCBFy8eBHbt2/HkSNH8N133+Gll17C77//3uL1NTU1MBgMLX4N5f71u3TpErZt24bHHnvsmtd5eHggPj4ex44dw/bt25GSkoLz58/j+eeft06hN6izfV+uWrUKv/zyC5YsWXLN65YvX46UlBRs2bIFaWlpiIiIwLx582AwGKxUadtNmzYNOTk5+O2335CQkIBly5bh2WefxaFDh1q8vrKyEgBs8vsyIyMDe/bsue73pZ+fH44fP474+Hjs2LED586dw7Fjx/Dyyy9bqdKWbd++HZ988gn++c9/mh8zfT3+3C92ra9HR+5pL4aXJmq1GjU1Nc0eM33cUud1R++Rg127duHee+/FP/7xj+uuxLntttvM/+3k5ITXX38dGRkZOHv2rNhlttuoUaOanUZ69913o1+/fi2utgFgHnFq6Wso568fAHz77bdwdna+bvObn58fhg0bZv44JCQETz31VKv/T+SmM31fbtmyBY888gg++ugjTJ48+ZrXXvl96eLigldeeQXnzp2T5YjvmDFjmjWLP/zww+jWrRu2bNnS4vW2/H35zTffwNfXF3feeec1rwsJCUH/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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "x = np.linspace(0,20,1000)\n",
    "y = np.exp(-x/5)*np.sin(x)\n",
    "\n",
    "plt.plot(x,y);"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "slide"
    }
   },
   "source": [
    "### Problem 1\n",
    "\n",
    "* Make an array of $x$ from 0 to 5 with 1000 points.\n",
    "* create the following arrays\n",
    "    * $2x$\n",
    "    * $x^2 -3x + 4$\n",
    "    * $\\sin(5x)$\n",
    "* Plot each array versus $x$ on a single plot."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 53,
   "metadata": {
    "slideshow": {
     "slide_type": "slide"
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "x = np.linspace(0,5,1000)\n",
    "y = 2*x\n",
    "z = x**2 - 3*x + 4\n",
    "w = np.sin(5*x)\n",
    "\n",
    "plt.plot(x,y)\n",
    "plt.plot(x,z)\n",
    "plt.plot(x,w);"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "slide"
    }
   },
   "source": [
    "### Problem 2\n",
    "\n",
    "* Ideal gas law\n",
    "$$\\rho = \\frac{MP}{RT}$$\n",
    "* M=29 kg/kmol\n",
    "* R=8314 J/kmol*K\n",
    "* P=101325 Pa\n",
    "* **Find $\\rho$ for $T=300,400,\\ldots1000$ K**\n",
    "    * Store $\\rho$ and $T$ as arrays\n",
    "    * Plot $\\rho$ versus $T$"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 54,
   "metadata": {
    "slideshow": {
     "slide_type": "slide"
    }
   },
   "outputs": [],
   "source": [
    "M = 29     # kg/kmol\n",
    "R = 8314   # J/kmol*K\n",
    "P = 101325 # Pa\n",
    "\n",
    "# define T array using a numpy array building function\n",
    "\n",
    "# compute rho using the above formula (don't use a for loop) \n",
    "\n",
    "# plot the rho versus T"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "slide"
    }
   },
   "source": [
    "### Problem 3\n",
    "\n",
    "- Redo Problem 2 by writing a function for $\\rho(T)$ as you would have in a previous lecture.\n",
    "    - Call the function with an array of $T$ and store the result as an array of $\\rho$.\n",
    "    - Plot $\\rho$ versus $T$.\n",
    "\n",
    "**Example**\n",
    "    \n",
    "```python\n",
    "def f(T):                 # if T is an array, then \n",
    "    return 5*T            # return 5 times the T array, which is an array\n",
    "    \n",
    "T = np.array([300, 400, 500])\n",
    "\n",
    "fiveTimesT = f(T)    # fiveTimesT is np.array([1500, 2000, 2500])\n",
    "\n",
    "```"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "slideshow": {
     "slide_type": "slide"
    }
   },
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "slide"
    }
   },
   "source": [
    "### Problem 4\n",
    "\n",
    "- You have an array of $x$ points $x=0.0, 0.1, \\ldots, 50$.\n",
    "- Create $x$\n",
    "- Create $y=\\sin(x)$\n",
    "- At interior points, use a central difference approximation to find the derivative \n",
    "$$\\left(\\frac{dy}{dx}\\right)_i \\approx \\frac{y_{i+1}-y_{i-1}}{2\\Delta x},$$\n",
    "where $\\Delta x = x_1-x_0$.\n",
    "- At edge point use a one-sided difference approximation,\n",
    "$$\\left(\\frac{dy}{dx}\\right)_0 \\approx \\frac{y_{1}-y_{0}}{\\Delta x},$$\n",
    "$$\\left(\\frac{dy}{dx}\\right)_{n-1} \\approx \\frac{y_{n-1}-y_{n-2}}{\\Delta x}.$$\n",
    "- Plot $dy/dx$ versus $x$ , and $\\cos(x)$ versus $x$."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 55,
   "metadata": {
    "slideshow": {
     "slide_type": "slide"
    }
   },
   "outputs": [],
   "source": [
    "# y: * (*  *  *  *  *  *) *        # boundary, (interior), boundary\n",
    "#    0  1  2  3  4  5  6  7\n",
    "#                     n-2 n-1\n",
    "\n",
    "#---------- create array x\n",
    "\n",
    "#---------- create array y\n",
    "\n",
    "#---------- create array dydx\n",
    "# First make an empty or unfilled array to store the values: np.empty, or np.zeros\n",
    "# (the size is the same as x and y since you want the derivative at every point)\n",
    "# Fill in dydx[0] using the formula given\n",
    "# Fill in the last value of dydx using the formula given (what \"index\" for dydx is best to use?)\n",
    "# Fill in the interior values using an array slice\n",
    "\n",
    "#---------- plot results"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "slide"
    }
   },
   "source": [
    "### Problem 5\n",
    "- Solve the rate equation below to $t=5$ s using the Explicit Euler method $y_{i+1} = y_i + \\Delta tf(y_i,t_i).$\n",
    "\n",
    "$$\\frac{dy}{dt} = -ky,$$\n",
    "$$y_0=1,$$\n",
    "$$k=2.$$\n",
    "\n",
    "- Use $\\Delta t = 0.5$.\n",
    "- Store $t$ and $y$ in arrays.\n",
    "- Plot $y$ versus $t$, and $y_0e^{-kt}$ versus $t$ on the same plot."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 56,
   "metadata": {
    "slideshow": {
     "slide_type": "slide"
    }
   },
   "outputs": [],
   "source": [
    "#---------- think through the approach:\n",
    "# what variables should be defined?\n",
    "# what arrays should be defined\n",
    "# how to fill in dydt (recommend using a for loop)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "slide"
    }
   },
   "source": [
    "### Problem 6\n",
    "- The Haaland equation relates the friction factor $f$ in turbulent pipe flow to the Reynolds number $Re$.\n",
    "$$\\frac{1}{\\sqrt{f}} = -1.8\\log_{10}\\left[\\left(\\frac{\\epsilon/D}{3.7}\\right)^{1.11}+ \\frac{6.9}{Re}\\right].$$\n",
    "\n",
    "- Write a function to compute $f(Re, \\epsilon/D)$.\n",
    "- Create an array of 100 points that is uniformly spaced on a log scale, for $1000\\le Re\\le 1\\times 10^8$\n",
    "- Plot $f$ versus $\\log_{10}(Re)$. \n",
    "- Use $\\epsilon/D=0.001$."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "slideshow": {
     "slide_type": "slide"
    }
   },
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "celltoolbar": "Slideshow",
  "kernelspec": {
   "display_name": "base",
   "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.14.7"
  },
  "varInspector": {
   "cols": {
    "lenName": 16,
    "lenType": 16,
    "lenVar": 40
   },
   "kernels_config": {
    "python": {
     "delete_cmd_postfix": "",
     "delete_cmd_prefix": "del ",
     "library": "var_list.py",
     "varRefreshCmd": "print(var_dic_list())"
    },
    "r": {
     "delete_cmd_postfix": ") ",
     "delete_cmd_prefix": "rm(",
     "library": "var_list.r",
     "varRefreshCmd": "cat(var_dic_list()) "
    }
   },
   "types_to_exclude": [
    "module",
    "function",
    "builtin_function_or_method",
    "instance",
    "_Feature"
   ],
   "window_display": false
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
