diff --git a/.codespell-ignore-words b/.codespell-ignore-words
new file mode 100644
index 00000000..e69de29b
diff --git a/.codespellrc b/.codespellrc
new file mode 100644
index 00000000..029c71ef
--- /dev/null
+++ b/.codespellrc
@@ -0,0 +1,5 @@
+[codespell]
+skip = .git,*.bib,*.ps,*.js,*.pdf,_build,*.fodp,*.fods
+ignore-words = .codespell-ignore-words
+
+
diff --git a/.github/dependabot.yml b/.github/dependabot.yml
new file mode 100644
index 00000000..5d808809
--- /dev/null
+++ b/.github/dependabot.yml
@@ -0,0 +1,13 @@
+# Dependabot configuration
+# ref: https://docs.github.com/en/code-security/supply-chain-security/keeping-your-dependencies-updated-automatically/configuration-options-for-dependency-updates
+version: 2
+updates:
+ - package-ecosystem: "github-actions"
+ directory: "/"
+ schedule:
+ interval: "weekly"
+
+ - package-ecosystem: "pip"
+ directory: "/"
+ schedule:
+ interval: "weekly"
diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml
new file mode 100644
index 00000000..cc35d354
--- /dev/null
+++ b/.github/workflows/main.yml
@@ -0,0 +1,37 @@
+name: Publish JupyterBook to GitHub Pages
+
+on:
+ push: # trigger build only when push to main
+ branches:
+ - main
+
+jobs:
+ build:
+ runs-on: ubuntu-latest
+
+ steps:
+ - uses: actions/checkout@v6
+ - name: Set up Python
+ uses: actions/setup-python@v6
+ with:
+ python-version: "3.14"
+ cache: "pip"
+ - name: Install Python dependencies
+ run: |
+ sudo apt-get install python3-pip graphviz
+ pip install -r requirements.txt
+ pip install ghp-import
+ PATH="${PATH}:${HOME}/.local/bin"
+
+ - name: Build book HTML
+ run: |
+ KERAS_BACKEND="torch" jupyter-book build ./content
+
+ - name: Push _build/html to gh-pages
+ run: |
+ sudo chown -R $(whoami):$(whoami) .
+ git config --global user.email "$GITHUB_ACTOR@users.noreply.github.com"
+ git config --global user.name "$GITHUB_ACTOR"
+ git remote set-url origin "https://$GITHUB_ACTOR:${{ secrets.GITHUB_TOKEN }}@github.com/$GITHUB_REPOSITORY"
+
+ ghp-import ./content/_build/html -f -p -n
diff --git a/.gitignore b/.gitignore
index 9c538cf9..0045a3f3 100644
--- a/.gitignore
+++ b/.gitignore
@@ -16,3 +16,7 @@ syllabus.out
*egg-info
.~lock*
+
+*.fodp
+
+_build
diff --git a/CHANGES b/CHANGES
index aeb0e7da..0c9edf6f 100644
--- a/CHANGES
+++ b/CHANGES
@@ -1,5 +1,8 @@
-- python tutor: http://www.pythontutor.com/
+-- show pybind11
+ https://pybind11.readthedocs.io/en/stable/basics.html#compiling-the-test-cases
+
-- use RISE:
https://damianavila.github.io/RISE/customize.html
diff --git a/lectures/01-python/NOTE b/content/01-python/NOTE
similarity index 100%
rename from lectures/01-python/NOTE
rename to content/01-python/NOTE
diff --git a/lectures/01-python/VARDEN-tests.ini b/content/01-python/VARDEN-tests.ini
similarity index 100%
rename from lectures/01-python/VARDEN-tests.ini
rename to content/01-python/VARDEN-tests.ini
diff --git a/content/01-python/basics.md b/content/01-python/basics.md
new file mode 100644
index 00000000..0a3d9198
--- /dev/null
+++ b/content/01-python/basics.md
@@ -0,0 +1,51 @@
+# Python Basics
+
+The following references give helpful introductions to python:
+
+* The [official python tutorial](http://docs.python.org/3/tutorial/)
+
+* The [software carpentry python lessons](https://swcarpentry.github.io/python-novice-inflammation/)
+
+
+## Practicing
+
+Some resources for practicing on your own:
+
+* [Code Academy python rack](http://www.codecademy.com/tracks/python):
+ step-by-step tutorial through the basics of the language
+
+* [Project Euler](https://projecteuler.net/):
+ a set of increasingly complex programming tasks to try out with
+ python
+
+
+## Online books:
+
+* [Think python](https://greenteapress.com/wp/think-python-3rd-edition/)
+
+* [Dive into Python](https://diveintopython3.net/)
+
+* [SciPy Lecture Notes](http://scipy-lectures.github.io/)
+
+* [Google's python class](https://developers.google.com/edu/python/)
+
+* more resources can be found at: http://pythonbooks.revolunet.com/
+
+
+## Domain-specific libraries
+
+* Astronomy: [AstroPy](http://astropy.org)
+
+* Atmospheric sciences: [PyAOS](https://pyaos.github.io/)
+
+* Biology: [Biopython](http://biopython.org/)
+
+* Ocean and marine sciences: [OceanPython](http://oceanpython.org/)
+
+* Psychology resources: [PyschoPy](http://www.psychopy.org/)
+
+* Quantum physics: [QuTiP](http://qutip.org/)
+
+* Solar physics: [SunPy](http://sunpy.org/)
+
+
diff --git a/content/01-python/functions-classes.md b/content/01-python/functions-classes.md
new file mode 100644
index 00000000..f347a7dc
--- /dev/null
+++ b/content/01-python/functions-classes.md
@@ -0,0 +1,5 @@
+# Functions and Classes
+
+Functions and classes are the building blocks of complex programs.
+These allow you to organize your code into logical units that can
+reused.
diff --git a/content/01-python/installing.md b/content/01-python/installing.md
new file mode 100644
index 00000000..8c7d3dfa
--- /dev/null
+++ b/content/01-python/installing.md
@@ -0,0 +1,41 @@
+# Introduction
+
+This class will introduce the basics of the python programming
+language and the libraries used for scientific computing.
+
+```{tip}
+To get the most from this class, you should work on your own laptop. That
+way you practice using python and the scientific libraries on the in the
+environment you are most comfortable with.
+```
+
+## Getting python
+
+You will want to install python and the associated libraries on your
+laptop that you can bring to the seminar.
+
+On Linux machines, you probably already have python and you can get
+the needed libraries through your system package manager.
+
+For Mac and Windows, I recommend the free Anaconda distribution:
+
+https://www.anaconda.com/products/individual
+
+This will install everything that you need.
+
+```{tip}
+If you have trouble getting a local install working, most of the class
+material will work automatically in the cloud, either on
+[binder](https://mybinder.org/) or [google
+colab](https://research.google.com/colaboratory/).
+```
+
+If you have python successfully installed, you should be able to start
+the python interpreter at the command line as: `python`. A shell will
+come up, and you can try out your first program:
+
+```
+print("hello, world")
+```
+
+
diff --git a/content/01-python/misc.md b/content/01-python/misc.md
new file mode 100644
index 00000000..59891c0e
--- /dev/null
+++ b/content/01-python/misc.md
@@ -0,0 +1,5 @@
+# Miscellaneous
+
+There are a lot of topics that we didn't cover, as well as a lot of
+the python standard library that we won't address. Here we introduce
+a few more concepts.
diff --git a/lectures/01-python/myprofile.py b/content/01-python/myprofile.py
similarity index 97%
rename from lectures/01-python/myprofile.py
rename to content/01-python/myprofile.py
index 9ec4d463..1a5d66ec 100644
--- a/lectures/01-python/myprofile.py
+++ b/content/01-python/myprofile.py
@@ -22,7 +22,7 @@
enough to offset the overhead of the timer class method
calls.
- Multiple timers can be instanciated and nested. The stackCount
+ Multiple timers can be instantiated and nested. The stackCount
global parameter keeps count of the level of nesting, and the
timerNesting data structure stores the nesting level for each
defined timer.
diff --git a/lectures/01-python/paradigms.png b/content/01-python/paradigms.png
similarity index 100%
rename from lectures/01-python/paradigms.png
rename to content/01-python/paradigms.png
diff --git a/lectures/01-python/python-io.ipynb b/content/01-python/python-io.ipynb
similarity index 100%
rename from lectures/01-python/python-io.ipynb
rename to content/01-python/python-io.ipynb
diff --git a/content/01-python/python.md b/content/01-python/python.md
new file mode 100644
index 00000000..60132f80
--- /dev/null
+++ b/content/01-python/python.md
@@ -0,0 +1,3 @@
+# python
+
+These notebooks introduce the core python language
diff --git a/lectures/01-python/python.png b/content/01-python/python.png
similarity index 100%
rename from lectures/01-python/python.png
rename to content/01-python/python.png
diff --git a/lectures/01-python/scipy.png b/content/01-python/scipy.png
similarity index 100%
rename from lectures/01-python/scipy.png
rename to content/01-python/scipy.png
diff --git a/lectures/01-python/shopping.csv b/content/01-python/shopping.csv
similarity index 100%
rename from lectures/01-python/shopping.csv
rename to content/01-python/shopping.csv
diff --git a/lectures/01-python/shopping.fods b/content/01-python/shopping.fods
similarity index 100%
rename from lectures/01-python/shopping.fods
rename to content/01-python/shopping.fods
diff --git a/lectures/01-python/shopping_cart.py b/content/01-python/shopping_cart.py
similarity index 100%
rename from lectures/01-python/shopping_cart.py
rename to content/01-python/shopping_cart.py
diff --git a/lectures/01-python/test.txt b/content/01-python/test.txt
similarity index 100%
rename from lectures/01-python/test.txt
rename to content/01-python/test.txt
diff --git a/lectures/01-python/tic_tac_toe.py b/content/01-python/tic_tac_toe.py
similarity index 100%
rename from lectures/01-python/tic_tac_toe.py
rename to content/01-python/tic_tac_toe.py
diff --git a/content/01-python/using.md b/content/01-python/using.md
new file mode 100644
index 00000000..c9e2738d
--- /dev/null
+++ b/content/01-python/using.md
@@ -0,0 +1,45 @@
+# Using These Notes
+
+These notes are built via [Jupyter book](https://jupyterbook.org/), as
+a collection of [Jupyter](https://jupyter.org/) notebooks and markdown
+pages.
+
+The course is on Github at:
+https://github.com/sbu-python-class/python-science, and the course
+website is built automatically via a Github action each time a change
+is pushed.
+
+If you find any problems or have suggestions for improving the notes,
+feel free to create an issue or pull request at the Github repo.
+
+## Interactive Usage
+
+For the Jupyter notebooks in this collection, there are a few ways to
+access them to run them on your own.
+
+* clicking on the {octicon}`download` icon in the upper right let's
+ you download the raw notebook so you can run it on your local
+ computer.
+
+* clicking on the {octicon}`rocket` icon in the upper right will allow
+ you to run the notebook directly in the cloud. There are 2 different
+ compute clouds:
+
+ * [mybinder](https://mybinder.org/) : this is an open project with
+ ties to the Jupyter project. It can take a few minutes for the
+ page to appear if it hasn't been accessed recently, but then it
+ will give you the standard Jupyter experience.
+
+ * [Google colab](https://colab.research.google.com/) : this is
+ Google's version of an online notebook, which runs directly in
+ Google's cloud. This starts up almost instantly.
+
+````{note}
+Some notebooks use [MyST Markdown](https://jupyterbook.org/en/stable/content/myst.html) to
+allow for more styling. To see these styles, you need to install `jupyterlab-myst`, which
+can be done via:
+```
+pip install jupyterlab_myst
+```
+
+````
diff --git a/lectures/01-python/vector2d.py b/content/01-python/vector2d.py
similarity index 100%
rename from lectures/01-python/vector2d.py
rename to content/01-python/vector2d.py
diff --git a/content/01-python/w1-jupyter.ipynb b/content/01-python/w1-jupyter.ipynb
new file mode 100644
index 00000000..5db52542
--- /dev/null
+++ b/content/01-python/w1-jupyter.ipynb
@@ -0,0 +1,184 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Jupyter"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "We'll be using Jupyter for all of our examples -- this allows us to run python in a web-based notebook, keeping a history of input and output, along with text and images.\n",
+ "\n",
+ "For Jupyter help, visit:\n",
+ "https://jupyter.readthedocs.io/en/latest/content-quickstart.html"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "````{note}\n",
+ "There are several interfaces to [Jupyter](https://jupyter.org/).\n",
+ "\n",
+ "We will use *JupyterLab*, which is traditionally started at the command line via:\n",
+ "```\n",
+ "jupyter lab\n",
+ "```\n",
+ "\n",
+ "The older (classic) interface is *Jupyter Notebook*, which can be started via:\n",
+ "```\n",
+ "jupyter notebook\n",
+ "```\n",
+ "````"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "We interact with python by typing into _cells_ in the notebook. \n",
+ "\n",
+ "By default, a cell is a _code_ cell, which means that you can enter any valid python code into it and run it. \n",
+ "\n",
+ "Another important type of cell is a _markdown_ cell. This lets you put text, with different formatting (italics, bold, etc) that describes what the notebook is doing."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "A \"markdown cell\" enables you to typeset LaTeX equations right in your notebook. Just put them in `$` or `$$`:\n",
+ "\n",
+ "$$\\frac{\\partial \\rho}{\\partial t} + \\nabla \\cdot (\\rho U) = 0$$"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "```{tip}\n",
+ "You can change the cell type via the menu at the top, or using the shortcuts:\n",
+ "\n",
+ " * ctrl-m m : mark down cell\n",
+ " * ctrl-m y : code cell\n",
+ "```"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Some useful short-cuts:\n",
+ "\n",
+ " * shift+enter = run cell and jump to the next (creating a new cell if there is no other new one)\n",
+ " * ctrl+enter = run cell-in place\n",
+ " * alt+enter = run cell and insert a new one below"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "```{warning}\n",
+ "When you work through a notebook, everything you did in previous cells is still in memory and _known_ by python, so you can refer to functions and variables that were previously defined. Even if you go up to the top of a notebook and insert a cell, all the information done earlier in your notebook session is still defined -- it doesn't matter where physically you are in the notebook. If you want to reset things, you can use the options under the _Kernel_ menu.\n",
+ "```"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "````{admonition} Quick Exercise\n",
+ " \n",
+ "Create a new cell below this one. Make sure that it is a _code_ cell, and enter the following code and run it:\n",
+ " \n",
+ "```\n",
+ "\n",
+ " print(\"Hello, World\")\n",
+ " \n",
+ "```\n",
+ "\n",
+ "````"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "`print()` is a _function_ in python that takes arguments (in the `()`) and outputs to the screen. You can print multiple quantities at once like:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "1 2 3\n"
+ ]
+ }
+ ],
+ "source": [
+ "print(1, 2, 3)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Note that the default behavior in Jupyter is to print the return value from the last statement in a cell, so we don't need to `print` if we just want the value of something like:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {
+ "tags": []
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "10"
+ ]
+ },
+ "execution_count": 1,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "a = 10\n",
+ "a"
+ ]
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 3 (ipykernel)",
+ "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.13.1"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 4
+}
diff --git a/lectures/01-python/w1-python-datatypes.ipynb b/content/01-python/w1-python-datatypes.ipynb
similarity index 52%
rename from lectures/01-python/w1-python-datatypes.ipynb
rename to content/01-python/w1-python-datatypes.ipynb
index 73e6cac0..a8608991 100644
--- a/lectures/01-python/w1-python-datatypes.ipynb
+++ b/content/01-python/w1-python-datatypes.ipynb
@@ -1,135 +1,47 @@
{
"cells": [
- {
- "cell_type": "code",
- "execution_count": 1,
- "metadata": {},
- "outputs": [],
- "source": [
- "from __future__ import print_function"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "# Jupyter"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "We'll be using Jupyter for all of our examples -- this allows us to run python in a web-based notebook, keeping a history of input and output, along with text and images.\n",
- "\n",
- "For Jupyter help, visit:\n",
- "https://jupyter.readthedocs.io/en/latest/content-quickstart.html"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "We interact with python by typing into _cells_ in the notebook. By default, a cell is a _code_ cell, which means that you can enter any valid python code into it and run it. Another important type of cell is a _markdown_ cell. This lets you put text, with different formatting (italics, bold, etc) that describes what the notebook is doing.\n",
- "\n",
- "You can change the cell type via the menu at the top, or using the shortcuts:\n",
- "\n",
- " * ctrl-m m : mark down cell\n",
- " * ctrl-m y : code cell"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "Some useful short-cuts:\n",
- "\n",
- " * shift+enter = run cell and jump to the next (creating a new cell if there is no other new one)\n",
- " * ctrl+enter = run cell-in place\n",
- " * alt+enter = run cell and insert a new one below\n",
- "\n",
- "ctrl+m h lists other commands"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "A \"markdown cell\" enables you to typeset LaTeX equations right in your notebook. Just put them in $ or $$:\n",
- "\n",
- "$$\\frac{\\partial \\rho}{\\partial t} + \\nabla \\cdot (\\rho U) = 0$$"
- ]
- },
{
"cell_type": "markdown",
"metadata": {},
"source": [
- "
\n",
- "**Important**: when you work through a notebook, everything you did in previous cells is still in memory and _known_ by python, so you can refer to functions and variables that were previously defined. Even if you go up to the top of a notebook and insert a cell, all the information done earlier in your notebook session is still defined -- it doesn't matter where physically you are in the notebook. If you want to reset things, you can use the options under the _Kernel_ menu.\n",
- "
\n",
- "\n",
+ "````{admonition} Quick Exercise\n",
+ " \n",
"`zip()` allows us to loop over two iterables at the same time. Consider the following two\n",
"lists:\n",
"\n",
"```\n",
- "a = [1, 2, 3, 4, 5, 6, 7, 8]\n",
- "b = [\"a\", \"b\", \"c\", \"d\", \"e\", \"f\", \"g\", \"h\"]\n",
+ "\n",
+ " a = [1, 2, 3, 4, 5, 6, 7, 8]\n",
+ " b = [\"a\", \"b\", \"c\", \"d\", \"e\", \"f\", \"g\", \"h\"]\n",
+ " \n",
"```\n",
"\n",
"`zip(a, b)` will act like a list with each element a tuple with one item from `a` and the corresponding element from `b`. \n",
"\n",
"Try looping over these lists together (using `zip()`) and print the corresponding elements from each list together on a single line.\n",
"\n",
- ""
+ "````"
]
},
{
@@ -276,11 +367,10 @@
},
{
"cell_type": "markdown",
- "metadata": {
- "collapsed": true
- },
+ "metadata": {},
"source": [
- "
Quick Exercise:
\n",
+ "````{admonition} Quick Exercise\n",
+ " \n",
"\n",
"The `.split()` function on a string can split it into words (separating on spaces). \n",
"\n",
@@ -290,7 +380,77 @@
"\n",
"and print one word per line\n",
"\n",
- ""
+ "````"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## List Comprehensions"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "list comprehensions provide a compact way to initialize lists. Some examples from the tutorial"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 25,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "squares = [x**2 for x in range(10)]"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 26,
+ "metadata": {
+ "tags": []
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]"
+ ]
+ },
+ "execution_count": 26,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "squares"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "````{admonition} Quick Exercise\n",
+ "\n",
+ "Use a list comprehension to create a new list from `squares` containing only the even numbers. It might be helpful to use the modulus operator, `%`\n",
+ "\n",
+ "````"
]
},
{
@@ -303,7 +463,7 @@
],
"metadata": {
"kernelspec": {
- "display_name": "Python 3",
+ "display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
@@ -317,9 +477,9 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
- "version": "3.6.4"
+ "version": "3.13.1"
}
},
"nbformat": 4,
- "nbformat_minor": 1
+ "nbformat_minor": 4
}
diff --git a/lectures/01-python/w2-python-exercises.ipynb b/content/01-python/w2-python-exercises.ipynb
similarity index 93%
rename from lectures/01-python/w2-python-exercises.ipynb
rename to content/01-python/w2-python-exercises.ipynb
index c99983e6..1651a963 100644
--- a/lectures/01-python/w2-python-exercises.ipynb
+++ b/content/01-python/w2-python-exercises.ipynb
@@ -1,16 +1,5 @@
{
"cells": [
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {
- "collapsed": true
- },
- "outputs": [],
- "source": [
- "from __future__ import print_function"
- ]
- },
{
"cell_type": "markdown",
"metadata": {},
@@ -41,7 +30,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {
- "collapsed": true
+ "tags": []
},
"outputs": [],
"source": []
@@ -67,7 +56,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {
- "collapsed": true
+ "tags": []
},
"outputs": [],
"source": []
@@ -78,13 +67,13 @@
"source": [
"## Q 3\n",
"\n",
- "The function `enumerate(sequence)` returns tuples containing indicies of objects in the sequence, and the objects. \n",
+ "The function `enumerate(sequence)` returns tuples containing indices of objects in the sequence, and the objects. \n",
"\n",
"The `random` module provides tools for working with the random numbers. In particular, `random.randint(start, end)` generates a random number not smaller than `start`, and not bigger than `end`.\n",
"\n",
" * Generate a list of 10 random numbers from 0 to 9.\n",
" \n",
- " * Using the `enumerate(random_list)` function, iterate over the tuples of random numbers and their indicies, and print out *\"Match: NUMBER and INDEX\"* if the random number and its index in the list match."
+ " * Using the `enumerate(random_list)` function, iterate over the tuples of random numbers and their indices, and print out *\"Match: NUMBER and INDEX\"* if the random number and its index in the list match."
]
},
{
@@ -130,7 +119,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {
- "collapsed": true
+ "tags": []
},
"outputs": [],
"source": []
@@ -150,7 +139,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {
- "collapsed": true
+ "tags": []
},
"outputs": [],
"source": []
@@ -168,7 +157,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {
- "collapsed": true
+ "tags": []
},
"outputs": [],
"source": [
@@ -188,7 +177,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {
- "collapsed": true
+ "tags": []
},
"outputs": [],
"source": []
@@ -206,7 +195,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {
- "collapsed": true
+ "tags": []
},
"outputs": [],
"source": [
@@ -248,7 +237,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {
- "collapsed": true
+ "tags": []
},
"outputs": [],
"source": [
@@ -288,7 +277,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "Another problem is case—we want to count \"but\" and \"But\" as the same. Strings have a `lower()` method that can be used to covert a string:"
+ "Another problem is case—we want to count \"but\" and \"But\" as the same. Strings have a `lower()` method that can be used to convert a string:"
]
},
{
@@ -331,7 +320,7 @@
" * convert to lowercase\n",
" * test if the word is already a key in the dictionary (using the `in` operator)\n",
" - if the key exists, increment the word count for that key\n",
- " - otherwise, add it to the dictionary with the appropiate count of `1`.\n",
+ " - otherwise, add it to the dictionary with the appropriate count of `1`.\n",
"\n",
"At the end, print out the words and a count of how many times they appear"
]
@@ -340,7 +329,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {
- "collapsed": true
+ "tags": []
},
"outputs": [],
"source": [
@@ -367,7 +356,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {
- "collapsed": true
+ "tags": []
},
"outputs": [],
"source": [
@@ -385,7 +374,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {
- "collapsed": true
+ "tags": []
},
"outputs": [],
"source": [
@@ -423,7 +412,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {
- "collapsed": true
+ "tags": []
},
"outputs": [],
"source": [
@@ -442,7 +431,7 @@
],
"metadata": {
"kernelspec": {
- "display_name": "Python 3",
+ "display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
@@ -456,9 +445,9 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
- "version": "3.6.4"
+ "version": "3.9.9"
}
},
"nbformat": 4,
- "nbformat_minor": 1
+ "nbformat_minor": 4
}
diff --git a/lectures/01-python/w3-python-exceptions.ipynb b/content/01-python/w3-python-exceptions.ipynb
similarity index 95%
rename from lectures/01-python/w3-python-exceptions.ipynb
rename to content/01-python/w3-python-exceptions.ipynb
index ae2a9b1e..c5769516 100644
--- a/lectures/01-python/w3-python-exceptions.ipynb
+++ b/content/01-python/w3-python-exceptions.ipynb
@@ -1,16 +1,5 @@
{
"cells": [
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {
- "collapsed": true
- },
- "outputs": [],
- "source": [
- "from __future__ import print_function"
- ]
- },
{
"cell_type": "markdown",
"metadata": {},
@@ -173,7 +162,7 @@
],
"metadata": {
"kernelspec": {
- "display_name": "Python 3",
+ "display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
@@ -187,9 +176,9 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
- "version": "3.6.3"
+ "version": "3.9.9"
}
},
"nbformat": 4,
- "nbformat_minor": 1
+ "nbformat_minor": 4
}
diff --git a/lectures/01-python/w3-python-exercises.ipynb b/content/01-python/w3-python-exercises.ipynb
similarity index 81%
rename from lectures/01-python/w3-python-exercises.ipynb
rename to content/01-python/w3-python-exercises.ipynb
index cbee0823..f84e4a67 100644
--- a/lectures/01-python/w3-python-exercises.ipynb
+++ b/content/01-python/w3-python-exercises.ipynb
@@ -1,5 +1,12 @@
{
"cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Exercises"
+ ]
+ },
{
"cell_type": "markdown",
"metadata": {},
@@ -73,36 +80,10 @@
},
{
"cell_type": "code",
- "execution_count": 12,
+ "execution_count": null,
"metadata": {},
- "outputs": [
- {
- "data": {
- "text/plain": [
- "[1, 2, 1]"
- ]
- },
- "execution_count": 12,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "def primes(n):\n",
- " p = [1, 2]\n",
- " for num in range(n):\n",
- " prime = True\n",
- " for c in p:\n",
- " if num % c == 0:\n",
- " prime = False\n",
- " else:\n",
- " prime = True\n",
- " if prime:\n",
- " p.append(num)\n",
- " return p\n",
- "\n",
- "primes(15)"
- ]
+ "outputs": [],
+ "source": []
},
{
"cell_type": "markdown",
@@ -120,7 +101,7 @@
},
{
"cell_type": "code",
- "execution_count": 13,
+ "execution_count": 3,
"metadata": {},
"outputs": [
{
@@ -146,7 +127,7 @@
},
{
"cell_type": "code",
- "execution_count": 14,
+ "execution_count": 4,
"metadata": {},
"outputs": [
{
@@ -156,7 +137,7 @@
"traceback": [
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[0;31mValueError\u001b[0m Traceback (most recent call last)",
- "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[0ma\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m\"this is a string\"\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 2\u001b[0;31m \u001b[0mb\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mfloat\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0ma\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m",
+ "Cell \u001b[0;32mIn[4], line 2\u001b[0m\n\u001b[1;32m 1\u001b[0m a \u001b[38;5;241m=\u001b[39m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mthis is a string\u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[0;32m----> 2\u001b[0m b \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mfloat\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43ma\u001b[49m\u001b[43m)\u001b[49m\n",
"\u001b[0;31mValueError\u001b[0m: could not convert string to float: 'this is a string'"
]
}
@@ -168,7 +149,7 @@
},
{
"cell_type": "code",
- "execution_count": 15,
+ "execution_count": 5,
"metadata": {},
"outputs": [
{
@@ -178,7 +159,7 @@
"traceback": [
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[0;31mValueError\u001b[0m Traceback (most recent call last)",
- "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[0ma\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m\"1.2345\"\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 2\u001b[0;31m \u001b[0mb\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0ma\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 3\u001b[0m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mb\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtype\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mb\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
+ "Cell \u001b[0;32mIn[5], line 2\u001b[0m\n\u001b[1;32m 1\u001b[0m a \u001b[38;5;241m=\u001b[39m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m1.2345\u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[0;32m----> 2\u001b[0m b \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mint\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43ma\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 3\u001b[0m \u001b[38;5;28mprint\u001b[39m(b, \u001b[38;5;28mtype\u001b[39m(b))\n",
"\u001b[0;31mValueError\u001b[0m: invalid literal for int() with base 10: '1.2345'"
]
}
@@ -191,7 +172,7 @@
},
{
"cell_type": "code",
- "execution_count": 16,
+ "execution_count": 6,
"metadata": {},
"outputs": [
{
@@ -236,7 +217,7 @@
},
{
"cell_type": "code",
- "execution_count": 17,
+ "execution_count": 7,
"metadata": {},
"outputs": [],
"source": [
@@ -259,7 +240,7 @@
},
{
"cell_type": "code",
- "execution_count": 18,
+ "execution_count": 8,
"metadata": {},
"outputs": [
{
@@ -290,7 +271,7 @@
},
{
"cell_type": "code",
- "execution_count": 19,
+ "execution_count": 1,
"metadata": {},
"outputs": [
{
@@ -307,7 +288,7 @@
" 's9': ''}"
]
},
- "execution_count": 19,
+ "execution_count": 1,
"metadata": {},
"output_type": "execute_result"
}
@@ -317,7 +298,7 @@
"\n",
"def initialize_board(play):\n",
" for n in range(9):\n",
- " play[\"s{}\".format(n+1)] = \"\"\n",
+ " play[f\"s{n+1}\"] = \"\"\n",
"\n",
"initialize_board(play)\n",
"play"
@@ -332,7 +313,7 @@
},
{
"cell_type": "code",
- "execution_count": 20,
+ "execution_count": 10,
"metadata": {},
"outputs": [
{
@@ -341,7 +322,7 @@
"'2 1'"
]
},
- "execution_count": 20,
+ "execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
@@ -362,7 +343,7 @@
},
{
"cell_type": "code",
- "execution_count": 21,
+ "execution_count": 11,
"metadata": {},
"outputs": [
{
@@ -398,7 +379,7 @@
},
{
"cell_type": "code",
- "execution_count": 22,
+ "execution_count": 12,
"metadata": {},
"outputs": [],
"source": [
@@ -408,20 +389,34 @@
" the desired square \"\"\"\n",
" valid_move = False\n",
" while not valid_move:\n",
- " idx = input(\"player {}, enter your move (1-9)\".format(n))\n",
- " if play[\"s{}\".format(idx)] == \"\":\n",
+ " idx = input(f\"player {n}, enter your move (1-9)\")\n",
+ " if play[f\"s{idx}\"] == \"\":\n",
" valid_move = True\n",
" else:\n",
- " print(\"invalid: {}\".format(play[\"s{}\".format(idx)]))\n",
+ " print(\"invalid move\")\n",
" \n",
- " play[\"s{}\".format(idx)] = xo"
+ " play[f\"s{idx}\"] = xo"
]
},
{
"cell_type": "code",
- "execution_count": null,
+ "execution_count": 13,
"metadata": {},
- "outputs": [],
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Help on function get_move in module __main__:\n",
+ "\n",
+ "get_move(n, xo, play)\n",
+ " ask the current player, n, to make a move -- make sure the square was not \n",
+ " already played. xo is a string of the character (x or o) we will place in\n",
+ " the desired square\n",
+ "\n"
+ ]
+ }
+ ],
"source": [
"help(get_move)"
]
@@ -442,21 +437,48 @@
},
{
"cell_type": "code",
- "execution_count": null,
+ "execution_count": 14,
"metadata": {
- "collapsed": true
+ "tags": []
},
"outputs": [],
"source": [
"def play_game():\n",
" \"\"\" play a game of tic-tac-toe \"\"\"\n",
- " "
+ " \n",
+ " play ={}\n",
+ " initialize_board(play)\n",
+ " show_board(play)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 15,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "\n",
+ " | | \n",
+ "-----+-----+-----\n",
+ " | | \n",
+ "-----+-----+----- 123\n",
+ " | | 456\n",
+ " 789 \n",
+ "\n"
+ ]
+ }
+ ],
+ "source": [
+ "play_game()"
]
}
],
"metadata": {
"kernelspec": {
- "display_name": "Python 3",
+ "display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
@@ -470,9 +492,9 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
- "version": "3.6.4"
+ "version": "3.11.6"
}
},
"nbformat": 4,
- "nbformat_minor": 2
+ "nbformat_minor": 4
}
diff --git a/lectures/01-python/w3-python-functions.ipynb b/content/01-python/w3-python-functions.ipynb
similarity index 61%
rename from lectures/01-python/w3-python-functions.ipynb
rename to content/01-python/w3-python-functions.ipynb
index 8566467d..ee20eaf9 100644
--- a/lectures/01-python/w3-python-functions.ipynb
+++ b/content/01-python/w3-python-functions.ipynb
@@ -1,19 +1,10 @@
{
"cells": [
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "from __future__ import print_function"
- ]
- },
{
"cell_type": "markdown",
"metadata": {},
"source": [
- "# functions"
+ "# Functions"
]
},
{
@@ -27,33 +18,24 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "A function takes arguments, listed in the `()` and returns a value. Even if you don't explictly give a return value, one will be return (e.g., `None`). \n",
+ "A function takes arguments, listed in the `()` and returns a value. Even if you don't explicitly give a return value, one will be return (e.g., `None`). \n",
"\n",
"Here's a simple example of a function that takes a single argument, `i`"
]
},
{
"cell_type": "code",
- "execution_count": 1,
+ "execution_count": null,
"metadata": {},
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "Hello\n",
- "None\n"
- ]
- }
- ],
+ "outputs": [],
"source": [
- "a = print(\"Hello\")\n",
- "print(a)"
+ "def my_fun(i):\n",
+ " print(f\"in the function, i = {i}\")"
]
},
{
"cell_type": "code",
- "execution_count": 2,
+ "execution_count": null,
"metadata": {},
"outputs": [
{
@@ -66,154 +48,44 @@
}
],
"source": [
- "def my_fun(i):\n",
- " print(\"in the function, i = {}\".format(i))\n",
- " \n",
"my_fun(10)\n",
"my_fun(5)"
]
},
- {
- "cell_type": "code",
- "execution_count": 3,
- "metadata": {},
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "in the function, i = 0\n",
- "None\n"
- ]
- }
- ],
- "source": [
- "a = my_fun(0)\n",
- "print(a)"
- ]
- },
{
"cell_type": "markdown",
"metadata": {},
"source": [
- "functions are one place where _scope_ comes into play. A function has its own _namespace_. If a variable is not defined in that function, then it will look to the namespace from where it was called to see if that variable exists there. \n",
+ "```{note}\n",
+ "Functions are one place where _scope_ comes into play. A function has its own _namespace_. If a variable is not defined in that function, then it will look to the namespace from where it was called to see if that variable exists there. \n",
"\n",
"However, you should avoid this as much as possible (variables that persist across namespaces are called global variables).\n",
- "\n",
- "We already saw one instance of namespaces when we imported from the `math` module."
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 4,
- "metadata": {},
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "-----\n",
- "----------\n"
- ]
- }
- ],
- "source": [
- "global_var = 10\n",
- "\n",
- "def print_fun(string, n):\n",
- " if n < global_var:\n",
- " print(string*n)\n",
- " else:\n",
- " print(string*global_var)\n",
- "\n",
- "print_fun(\"-\", 5)\n",
- "print_fun(\"-\", 20)"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 5,
- "metadata": {},
- "outputs": [],
- "source": [
- "global_var = 100"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 6,
- "metadata": {},
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "--------------------------------------------------\n"
- ]
- }
- ],
- "source": [
- "print_fun(\"-\",50)"
+ "```"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
- "By default, python will let you read from a global, but not update it."
+ "Functions always return a value—if one is not explicitly given, then they return `None`, otherwise, they can return values (even multiple values) of any type"
]
},
{
"cell_type": "code",
- "execution_count": 7,
- "metadata": {},
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "in function outer = -100.0\n",
- "outside, outer = -100.0\n"
- ]
- }
- ],
- "source": [
- "outer = 1.0\n",
- "\n",
- "def update():\n",
- " # uncomment this to allow us to access outer in the calling namespace\n",
- " global outer\n",
- " outer = -100.0\n",
- " print(\"in function outer = {}\".format(outer))\n",
- " \n",
- "update()\n",
- "print(\"outside, outer = {}\".format(outer))"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "functions always return a value—if one is not explicitly given, then they return None, otherwise, they can return values (even multiple values) of any type"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 8,
+ "execution_count": 2,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
- "in the function, i = 10\n",
- "None\n"
+ "in the function, i = 10\n"
]
}
],
"source": [
"a = my_fun(10)\n",
- "print(a)"
+ "a"
]
},
{
@@ -225,15 +97,20 @@
},
{
"cell_type": "code",
- "execution_count": 9,
- "metadata": {},
+ "execution_count": 3,
+ "metadata": {
+ "tags": []
+ },
"outputs": [
{
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "12\n"
- ]
+ "data": {
+ "text/plain": [
+ "12"
+ ]
+ },
+ "execution_count": 3,
+ "metadata": {},
+ "output_type": "execute_result"
}
],
"source": [
@@ -241,18 +118,19 @@
" return a*b\n",
"\n",
"c = multiply(3, 4)\n",
- "print(c)"
+ "c"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
- "
Quick Exercise:
\n",
+ "````{admonition} Quick Exercise\n",
+ " \n",
"\n",
"Write a simple function that takes a sentence (as a string) and returns an integer equal to the length of the longest word in the sentence. The `len()` function and the `.split()` methods will be useful here.\n",
"\n",
- ""
+ "````"
]
},
{
@@ -266,13 +144,27 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "None is a special quantity in python (analogous to `null` in some other languages). We can test on `None`—the preferred manner is to use `is`:"
+ "`None` is a special quantity in python (analogous to `null` in some other languages). We can test on `None`—the preferred manner is to use `is`:"
]
},
{
"cell_type": "code",
- "execution_count": 10,
- "metadata": {},
+ "execution_count": null,
+ "metadata": {
+ "tags": []
+ },
+ "outputs": [],
+ "source": [
+ "def do_nothing():\n",
+ " pass"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {
+ "tags": []
+ },
"outputs": [
{
"name": "stdout",
@@ -283,9 +175,6 @@
}
],
"source": [
- "def do_nothing():\n",
- " pass\n",
- "\n",
"a = do_nothing()\n",
"if a is None:\n",
" print(\"we didn't do anything\")"
@@ -293,8 +182,10 @@
},
{
"cell_type": "code",
- "execution_count": 11,
- "metadata": {},
+ "execution_count": 5,
+ "metadata": {
+ "tags": []
+ },
"outputs": [
{
"data": {
@@ -302,7 +193,7 @@
"True"
]
},
- "execution_count": 11,
+ "execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
@@ -315,112 +206,106 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "## More Complex Functions\n",
- "\n",
- "Here's a more complex example. We return a pair of variables—behind the scenes in python this is done by packing them into a tuple and then unpacking on the calling end. Also note the _docstring_ here."
+ "## Keyword arguments\n"
]
},
{
- "cell_type": "code",
- "execution_count": 13,
+ "cell_type": "markdown",
"metadata": {},
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "14\n",
- "[0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233]\n"
- ]
- }
- ],
"source": [
- "def fib2(n): # return Fibonacci series up to n (from the python tutorial)\n",
- " \"\"\"Return a list containing the Fibonacci series up to n.\"\"\"\n",
- " result = []\n",
- " a, b = 0, 1\n",
- " while a < n:\n",
- " result.append(a) # see below\n",
- " a, b = b, a+b\n",
- " return result, len(result)\n",
- "\n",
- "fib, n = fib2(250)\n",
- "print(n)\n",
- "print(fib)"
+ "You can have optional arguments which provide defaults. Here's a simple function that computes $\\sin(\\theta)$ where $\\theta$ can optionally be in degrees."
]
},
{
- "cell_type": "markdown",
+ "cell_type": "code",
+ "execution_count": 1,
"metadata": {},
+ "outputs": [],
"source": [
- "Note that this function includes a docstring (just after the function definition). This is used by the help system"
+ "import math"
]
},
{
"cell_type": "code",
- "execution_count": 14,
- "metadata": {},
+ "execution_count": 2,
+ "metadata": {
+ "tags": []
+ },
+ "outputs": [],
+ "source": [
+ "def my_sin(theta, in_degrees=False):\n",
+ " if in_degrees:\n",
+ " return math.sin(math.radians(theta))\n",
+ " return math.sin(theta)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {
+ "tags": []
+ },
"outputs": [
{
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "Help on function fib2 in module __main__:\n",
- "\n",
- "fib2(n)\n",
- " Return a list containing the Fibonacci series up to n.\n",
- "\n"
- ]
+ "data": {
+ "text/plain": [
+ "(0.7071067811865475, 0.7071067811865475)"
+ ]
+ },
+ "execution_count": 3,
+ "metadata": {},
+ "output_type": "execute_result"
}
],
"source": [
- "help(fib2)"
+ "my_sin(math.pi/4), my_sin(45, in_degrees=True) "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
- "You can have optional arguments which provide defaults. Here's a simple function that validates an answer, with an optional argument that can provide the correct answer."
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "def check_answer(val, correct_answer=\"a\"):\n",
- " if val == correct_answer:\n",
- " return True\n",
- " else:\n",
- " return False\n",
+ "```{important}\n",
+ "It is important to note that python evaluates the optional arguments once—when the function is defined. This means that if you make the default an empty object, for instance, it will persist across all call.\n",
"\n",
- "print(check_answer(\"a\"))\n",
- "print(check_answer(\"a\", correct_answer=\"b\"))"
+ "**This leads to one of the most common errors for beginners**\n",
+ "```"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
- "it is important to note that python evaluates the optional arguments once—when the function is defined. This means that if you make the default an empty object, for instance, it will persist across all calls.\n",
- "\n",
- "** This leads to one of the most common errors for beginners **\n",
- "\n",
"Here's an example of trying to initialize to an empty list:"
]
},
{
"cell_type": "code",
- "execution_count": null,
+ "execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"def f(a, L=[]):\n",
" L.append(a)\n",
- " return L\n",
- "\n",
+ " return L"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "[1]\n",
+ "[1, 2]\n",
+ "[1, 2, 3]\n"
+ ]
+ }
+ ],
+ "source": [
"print(f(1))\n",
"print(f(2))\n",
"print(f(3))"
@@ -440,7 +325,13 @@
"execution_count": null,
"metadata": {},
"outputs": [],
- "source": []
+ "source": [
+ "def fnew(a, L=None):\n",
+ " if L is None:\n",
+ " L = []\n",
+ " L.append(a)\n",
+ " return L"
+ ]
},
{
"cell_type": "code",
@@ -448,12 +339,6 @@
"metadata": {},
"outputs": [],
"source": [
- "def fnew(a, L=None):\n",
- " if L is None:\n",
- " L = []\n",
- " L.append(a)\n",
- " return L\n",
- "\n",
"print(fnew(1))\n",
"print(fnew(2))\n",
"print(fnew(3))"
@@ -461,9 +346,17 @@
},
{
"cell_type": "code",
- "execution_count": null,
+ "execution_count": 11,
"metadata": {},
- "outputs": [],
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "[1, 2]\n"
+ ]
+ }
+ ],
"source": [
"L = fnew(1)\n",
"print(fnew(2, L=L))"
@@ -478,9 +371,20 @@
},
{
"cell_type": "code",
- "execution_count": null,
+ "execution_count": 12,
"metadata": {},
- "outputs": [],
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "[1, 2]"
+ ]
+ },
+ "execution_count": 12,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
"source": [
"L"
]
@@ -503,7 +407,7 @@
},
{
"cell_type": "code",
- "execution_count": null,
+ "execution_count": 13,
"metadata": {},
"outputs": [],
"source": [
@@ -513,9 +417,20 @@
},
{
"cell_type": "code",
- "execution_count": null,
+ "execution_count": 14,
"metadata": {},
- "outputs": [],
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "[(4, 'four'), (1, 'one'), (3, 'three'), (2, 'two')]"
+ ]
+ },
+ "execution_count": 14,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
"source": [
"pairs"
]
@@ -524,14 +439,41 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "Here we use a lambda in an extract from a list (with the filter command)"
+ "Here we use a lambda in an extract from a list (with the filter function)"
]
},
{
"cell_type": "code",
- "execution_count": null,
+ "execution_count": 15,
"metadata": {},
- "outputs": [],
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "[0,\n",
+ " 36,\n",
+ " 144,\n",
+ " 324,\n",
+ " 576,\n",
+ " 900,\n",
+ " 1296,\n",
+ " 1764,\n",
+ " 2304,\n",
+ " 2916,\n",
+ " 3600,\n",
+ " 4356,\n",
+ " 5184,\n",
+ " 6084,\n",
+ " 7056,\n",
+ " 8100,\n",
+ " 9216]"
+ ]
+ },
+ "execution_count": 15,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
"source": [
"squares = [x**2 for x in range(100)]\n",
"sq = list(filter(lambda x : x%2 == 0 and x%3 == 0, squares))\n",
@@ -540,9 +482,44 @@
},
{
"cell_type": "code",
- "execution_count": null,
+ "execution_count": 16,
"metadata": {},
- "outputs": [],
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Help on class filter in module builtins:\n",
+ "\n",
+ "class filter(object)\n",
+ " | filter(function or None, iterable) --> filter object\n",
+ " | \n",
+ " | Return an iterator yielding those items of iterable for which function(item)\n",
+ " | is true. If function is None, return the items that are true.\n",
+ " | \n",
+ " | Methods defined here:\n",
+ " | \n",
+ " | __getattribute__(self, name, /)\n",
+ " | Return getattr(self, name).\n",
+ " | \n",
+ " | __iter__(self, /)\n",
+ " | Implement iter(self).\n",
+ " | \n",
+ " | __next__(self, /)\n",
+ " | Implement next(self).\n",
+ " | \n",
+ " | __reduce__(...)\n",
+ " | Return state information for pickling.\n",
+ " | \n",
+ " | ----------------------------------------------------------------------\n",
+ " | Static methods defined here:\n",
+ " | \n",
+ " | __new__(*args, **kwargs) from builtins.type\n",
+ " | Create and return a new object. See help(type) for accurate signature.\n",
+ "\n"
+ ]
+ }
+ ],
"source": [
"help(filter)"
]
@@ -550,7 +527,7 @@
],
"metadata": {
"kernelspec": {
- "display_name": "Python 3",
+ "display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
@@ -564,9 +541,9 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
- "version": "3.6.4"
+ "version": "3.13.2"
}
},
"nbformat": 4,
- "nbformat_minor": 1
+ "nbformat_minor": 4
}
diff --git a/lectures/01-python/w4-python-classes.ipynb b/content/01-python/w4-python-classes.ipynb
similarity index 75%
rename from lectures/01-python/w4-python-classes.ipynb
rename to content/01-python/w4-python-classes.ipynb
index 969e2657..6e539844 100644
--- a/lectures/01-python/w4-python-classes.ipynb
+++ b/content/01-python/w4-python-classes.ipynb
@@ -1,16 +1,5 @@
{
"cells": [
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {
- "collapsed": true
- },
- "outputs": [],
- "source": [
- "from __future__ import print_function"
- ]
- },
{
"cell_type": "markdown",
"metadata": {},
@@ -20,7 +9,9 @@
},
{
"cell_type": "markdown",
- "metadata": {},
+ "metadata": {
+ "tags": []
+ },
"source": [
"Classes are the fundamental concept for object oriented programming. A class defines a data type with both data and functions that can operate on the data. An object is an instance of a class. Each object will have its own namespace (separate from other instances of the class and other functions, etc. in your program).\n",
"\n",
@@ -29,47 +20,36 @@
},
{
"cell_type": "markdown",
- "metadata": {},
+ "metadata": {
+ "tags": []
+ },
"source": [
- "simplest example: just a container (like a struct in C)"
+ "## Naming conventions"
]
},
{
- "cell_type": "code",
- "execution_count": null,
+ "cell_type": "markdown",
"metadata": {},
- "outputs": [],
"source": [
- "class Container(object):\n",
- " pass\n",
- " \n",
- "a = Container()\n",
- "a.x = 1\n",
- "a.y = 2\n",
- "a.z = 3\n",
+ "The python community has some naming convections, defined in PEP-8:\n",
"\n",
- "b = Container()\n",
- "b.xyz = 1\n",
- "b.uvw = 2\n",
+ "https://www.python.org/dev/peps/pep-0008/\n",
"\n",
- "print(a.x, a.y, a.z)\n",
- "print(b.xyz, b.uvw)"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "notice that you don't have to declare what variables are members of the class ahead of time (although, usually that's good practice).\n",
+ "The widely adopted ones are:\n",
"\n",
- "Here, we give the class name an argument, `object`. This is an example of inheritance. For a general class, we inherit from the base python `object` class."
+ "* class names start with an uppercase, and use \"camelcase\" for multiword names, e.g. `ShoppingCart`\n",
+ "\n",
+ "* variable names (including objects which are instances of a class) are lowercase and use underscores to separate words, e.g., `shopping_cart`\n",
+ "\n",
+ "* module names should be lowercase with underscores\n",
+ "\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
- "## More useful class"
+ "## A simple class"
]
},
{
@@ -85,15 +65,24 @@
"metadata": {},
"outputs": [],
"source": [
- "class Student(object):\n",
+ "class Student:\n",
" def __init__(self, name, grade=None):\n",
" self.name = name\n",
" self.grade = grade"
]
},
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "This has a function, `__init__()` which is called automatically when we create an instance of the class. \n",
+ "\n",
+ "The argument `self` refers to the object that we will create, and points to the memory that they object will use to store the class's contents."
+ ]
+ },
{
"cell_type": "code",
- "execution_count": 5,
+ "execution_count": 2,
"metadata": {},
"outputs": [
{
@@ -120,7 +109,7 @@
},
{
"cell_type": "code",
- "execution_count": 6,
+ "execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
@@ -144,42 +133,19 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "
Quick Exercise:
\n",
+ "````{admonition} Quick Exercise\n",
"\n",
"Loop over the students in the `students` list and print out the name and grade of each student, one per line.\n",
"\n",
- ""
+ "````"
]
},
{
"cell_type": "code",
- "execution_count": 7,
+ "execution_count": null,
"metadata": {},
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "fry F-\n",
- "leela A\n",
- "zoidberg F\n",
- "hubert C+\n",
- "bender B\n",
- "calculon C\n",
- "amy A\n",
- "hermes A\n",
- "scruffy D\n",
- "flexo F\n",
- "morbo D\n",
- "hypnotoad A+\n",
- "zapp Q\n"
- ]
- }
- ],
- "source": [
- "for s in students:\n",
- " print(s.name, s.grade)"
- ]
+ "outputs": [],
+ "source": []
},
{
"cell_type": "markdown",
@@ -190,7 +156,7 @@
},
{
"cell_type": "code",
- "execution_count": 8,
+ "execution_count": 4,
"metadata": {},
"outputs": [
{
@@ -199,7 +165,7 @@
"['leela', 'amy', 'hermes', 'hypnotoad']"
]
},
- "execution_count": 8,
+ "execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
@@ -220,18 +186,16 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "here's a more complicated class that represents a playing card. Notice that we are using unicode to represent the suits.\n",
- "\n",
- "unicode support in python is also one of the major differences between python 2 and 3. In python 3, every string is unicode."
+ "Here's a more complicated class that represents a playing card. Notice that we are using unicode to represent the suits."
]
},
{
"cell_type": "code",
- "execution_count": 9,
+ "execution_count": 5,
"metadata": {},
"outputs": [],
"source": [
- "class Card(object):\n",
+ "class Card:\n",
" \n",
" def __init__(self, suit=1, rank=2):\n",
" if suit < 1 or suit > 4:\n",
@@ -241,7 +205,6 @@
" self.suit = suit\n",
" self.rank = rank\n",
" \n",
- "\n",
" def value(self):\n",
" \"\"\" we want things order primarily by rank then suit \"\"\"\n",
" return self.suit + (self.rank-1)*14\n",
@@ -250,7 +213,13 @@
" def __lt__(self, other):\n",
" return self.value() < other.value()\n",
"\n",
- " def __unicode__(self):\n",
+ " def __eq__(self, other):\n",
+ " return self.rank == other.rank and self.suit == other.suit\n",
+ " \n",
+ " def __repr__(self):\n",
+ " return self.__str__()\n",
+ " \n",
+ " def __str__(self):\n",
" suits = [u\"\\u2660\", # spade\n",
" u\"\\u2665\", # heart\n",
" u\"\\u2666\", # diamond\n",
@@ -266,25 +235,19 @@
" elif self.rank == 14:\n",
" r = \"A\"\n",
" \n",
- " return r +':'+suits[self.suit-1]\n",
- " \n",
- " def __str__(self):\n",
- " return self.__unicode__() #.encode('utf-8')\n",
- " "
+ " return r +':'+suits[self.suit-1]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
- "When you instantiate a class, the `__init__` method is called. Note that all method in a class always have \"`self`\" as the first argument -- this refers to the object that is invoking the method.\n",
- "\n",
"we can create a card easily."
]
},
{
"cell_type": "code",
- "execution_count": 10,
+ "execution_count": 6,
"metadata": {},
"outputs": [],
"source": [
@@ -300,11 +263,11 @@
},
{
"cell_type": "code",
- "execution_count": 11,
+ "execution_count": 7,
"metadata": {},
"outputs": [],
"source": [
- "c2 = Card(suit=1, rank=13)"
+ "c2 = Card(suit=2, rank=2)"
]
},
{
@@ -316,27 +279,27 @@
},
{
"cell_type": "code",
- "execution_count": 12,
+ "execution_count": 8,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
- "15"
+ "16"
]
},
- "execution_count": 12,
+ "execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
- "c1.value()"
+ "c2.value()"
]
},
{
"cell_type": "code",
- "execution_count": 13,
+ "execution_count": 9,
"metadata": {},
"outputs": [
{
@@ -355,12 +318,12 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "The `__str__` method converts the object into a string that can be printed. The `__unicode__` method is actually for python 2."
+ "The `__str__` method converts the object into a string that can be printed."
]
},
{
"cell_type": "code",
- "execution_count": 14,
+ "execution_count": 10,
"metadata": {},
"outputs": [
{
@@ -368,7 +331,7 @@
"output_type": "stream",
"text": [
"2:♠\n",
- "K:♠\n"
+ "2:♥\n"
]
}
],
@@ -386,7 +349,7 @@
},
{
"cell_type": "code",
- "execution_count": 15,
+ "execution_count": 11,
"metadata": {},
"outputs": [
{
@@ -412,7 +375,7 @@
},
{
"cell_type": "code",
- "execution_count": 16,
+ "execution_count": 12,
"metadata": {},
"outputs": [
{
@@ -422,7 +385,7 @@
"traceback": [
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[0;31mTypeError\u001b[0m Traceback (most recent call last)",
- "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mc1\u001b[0m \u001b[0;34m+\u001b[0m \u001b[0mc2\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m",
+ "Cell \u001b[0;32mIn[12], line 1\u001b[0m\n\u001b[0;32m----> 1\u001b[0m \u001b[43mc1\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m+\u001b[39;49m\u001b[43m \u001b[49m\u001b[43mc2\u001b[49m\n",
"\u001b[0;31mTypeError\u001b[0m: unsupported operand type(s) for +: 'Card' and 'Card'"
]
}
@@ -435,116 +398,24 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "
Quick Exercise:
\n",
+ "````{admonition} Quick Exercise\n",
"\n",
" * Create a \"hand\" corresponding to a straight (5 cards of any suite, but in sequence of rank)\n",
" * Create another hand corresponding to a flush (5 cards all of the same suit, of any rank)\n",
" * Finally create a hand with one of the cards duplicated—this should not be allowed in a standard deck of cards. How would you check for this?\n",
"\n",
- ""
+ "````"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
- "collapsed": true
+ "tags": []
},
"outputs": [],
"source": []
},
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "## Deck of Cards"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "classes can use other include other classes as data objects—here's a deck of cards. Note that we are using the python random module here."
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "import random\n",
- "\n",
- "class Deck(object):\n",
- " \"\"\" the deck is a collection of cards \"\"\"\n",
- "\n",
- " def __init__(self):\n",
- "\n",
- " self.nsuits = 4\n",
- " self.nranks = 13\n",
- " self.minrank = 2\n",
- " self.maxrank = self.minrank + self.nranks - 1\n",
- "\n",
- " self.cards = []\n",
- "\n",
- " for rank in range(self.minrank,self.maxrank+1):\n",
- " for suit in range(1, self.nsuits+1):\n",
- " self.cards.append(Card(rank=rank, suit=suit))\n",
- "\n",
- " def shuffle(self):\n",
- " random.shuffle(self.cards)\n",
- "\n",
- " def get_cards(self, num=1):\n",
- " hand = []\n",
- " for n in range(num):\n",
- " hand.append(self.cards.pop())\n",
- "\n",
- " return hand\n",
- " \n",
- " def __str__(self):\n",
- " string = \"\"\n",
- " for c in self.cards:\n",
- " string += str(c) + \" \"\n",
- " return string"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "let's create a deck, shuffle, and deal a hand (for a poker game)"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "mydeck = Deck()\n",
- "print(mydeck)\n",
- "print(len(mydeck.cards))"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "notice that there is no error handling in this class. The get_cards() will deal cards from the deck, removing them in the process. Eventually we'll run out of cards."
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "mydeck.shuffle()\n",
- "\n",
- "hand = mydeck.get_cards(5)\n",
- "for c in sorted(hand): print(c)"
- ]
- },
{
"cell_type": "markdown",
"metadata": {},
@@ -561,11 +432,11 @@
},
{
"cell_type": "code",
- "execution_count": 20,
+ "execution_count": null,
"metadata": {},
"outputs": [],
"source": [
- "class Currency(object):\n",
+ "class Currency:\n",
" \"\"\" a simple class to hold foreign currency \"\"\"\n",
" \n",
" def __init__(self, amount, country=\"US\"):\n",
@@ -573,12 +444,13 @@
" self.country = country\n",
" \n",
" def __add__(self, other):\n",
- " if self.country != other.country:\n",
- " return None\n",
" return Currency(self.amount + other.amount, country=self.country)\n",
- " \n",
+ "\n",
+ " def __sub__(self, other):\n",
+ " return Currency(self.amount - other.amount, country=self.country)\n",
+ "\n",
" def __str__(self):\n",
- " return \"{} {}\".format(self.amount, self.country)"
+ " return f\"{self.amount} {self.country}\""
]
},
{
@@ -590,48 +462,38 @@
},
{
"cell_type": "code",
- "execution_count": 21,
+ "execution_count": null,
"metadata": {},
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "None\n"
- ]
- }
- ],
+ "outputs": [],
"source": [
"d1 = Currency(10, \"US\")\n",
- "d2 = Currency(15, \"Euro\")\n",
- "print(d1 + d2)"
+ "d2 = Currency(15, \"US\")\n",
+ "print(d2 - d1)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
- "
Note that the traditional way to import numpy is to rename it np. This saves on typing and makes your code a little more compact.
"
+ "````{note}\n",
+ " \n",
+ "Note that the traditional way to import numpy is to rename it `np`. This saves on typing and makes your code a little more compact.\n",
+ "````"
]
},
{
@@ -57,7 +51,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "# Array Creation and Properties"
+ "## Array Creation and Properties"
]
},
{
@@ -132,7 +126,7 @@
"metadata": {},
"outputs": [],
"source": [
- "help(a)"
+ "#help(a)"
]
},
{
@@ -175,7 +169,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "There is also an analogous ones() and empty() array routine. Note that here we can explicitly set the datatype for the array in this function if we wish. \n",
+ "There is also an analogous `ones()` and `empty()` array routine. Note that here we can explicitly set the datatype for the array in this function if we wish. \n",
"\n",
"Unlike lists in python, all of the elements of a numpy array are of the same datatype"
]
@@ -211,11 +205,11 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "
Quick Exercise:
\n",
+ "````{admonition} Quick Exercise\n",
"\n",
"Analogous to `linspace()`, there is a `logspace()` function that creates an array with elements equally spaced in log. Use `help(np.logspace)` to see the arguments, and create an array with 10 elements from $10^{-6}$ to $10^3$.\n",
"\n",
- ""
+ "````"
]
},
{
@@ -229,34 +223,22 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "we can also initialize an array based on a function"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "f = np.fromfunction(lambda i, j: i + j, (3, 3), dtype=int)\n",
- "f"
+ "## Array Operations"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
- "# Array Operations"
+ "most operations (`+`, `-`, `*`, `/`) will work on an entire array at once, element-by-element.\n",
+ "\n",
+ "Note that that the multiplication operator is not a matrix multiply, but `@` will do matrix multiplication."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
- "most operations (`+`, `-`, `*`, `/`) will work on an entire array at once, element-by-element.\n",
- "\n",
- "Note that that the multiplication operator is not a matrix multiply (there is a new operator in python 3.5+, `@`, to do matrix multiplicaiton.\n",
- "\n",
"Let's create a simply array to start with"
]
},
@@ -312,7 +294,9 @@
{
"cell_type": "code",
"execution_count": null,
- "metadata": {},
+ "metadata": {
+ "tags": []
+ },
"outputs": [],
"source": [
"a*a"
@@ -322,18 +306,11 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "We can think of our 2-d array as a 3 x 5 matrix (3 rows, 5 columns). We can take the transpose to geta 5 x 3 matrix, and then we can do a matrix multiplication"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "
Quick Exercise:
\n",
+ "````{admonition} Quick Exercise\n",
"\n",
"What do you think `1./a` will do? Try it and see\n",
"\n",
- ""
+ "````"
]
},
{
@@ -343,6 +320,13 @@
"outputs": [],
"source": []
},
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "We can think of our 2-d array as a 3 x 4 matrix (3 rows, 4 columns). We can take the transpose to geta 4 x 3 matrix, and then we can do a matrix multiplication"
+ ]
+ },
{
"cell_type": "markdown",
"metadata": {},
@@ -389,11 +373,11 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "
Quick Exercise:
\n",
+ "````{admonition} Quick Exercise\n",
"\n",
"`sum()` takes an optional argument, `axis=N`, where `N` is the axis to sum over. Sum the elements of `a` across rows to create an array with just the sum along each column of `a`.\n",
"\n",
- ""
+ "````"
]
},
{
@@ -430,7 +414,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "universal functions work element-by-element. Let's create a new array scaled by `pi`"
+ "universal functions work element-by-element. Let's create a new array scaled by `pi / 12`"
]
},
{
@@ -475,14 +459,14 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "
Quick Exercise:
\n",
+ "````{admonition} Quick Exercise\n",
"\n",
"We will often want to write our own function that operates on an array and returns a new array. We can do this just like we did with functions previously—the key is to use the methods from the `np` module to do any operations, since they work on, and return, arrays.\n",
"\n",
"Write a simple function that returns $\\sin(2\\pi x)$ for an input array `x`. Then test it \n",
"by passing in an array `x` that you create via `linspace()`\n",
"\n",
- ""
+ "````"
]
},
{
@@ -496,7 +480,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "# Slicing"
+ "## Slicing"
]
},
{
@@ -505,9 +489,7 @@
"source": [
"slicing works very similarly to how we saw with strings. Remember, python uses 0-based indexing\n",
"\n",
- "\n",
- "\n",
- "Let's create this array from the image:"
+ "Consider the following array:"
]
},
{
@@ -547,7 +529,9 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "Giving a range uses the range of the edges to return the values"
+ "When we do a range, like `a[2:5]`, then we get the elements starting at index 2 and up to, *but not including* index 5.\n",
+ "\n",
+ "That is, slicing uses the interval: [begin, end)"
]
},
{
@@ -556,7 +540,7 @@
"metadata": {},
"outputs": [],
"source": [
- "print(a[2:3])"
+ "a[2:5]"
]
},
{
@@ -604,24 +588,26 @@
"* passing arrays between languages (we'll talk about this later this semester)\n",
"* looping over arrays -- you want to access elements that are next to one-another in memory\n",
" * e.g, in Fortran:\n",
- " ```\n",
- " double precision :: A(M,N)\n",
- " do j = 1, N\n",
- " do i = 1, M\n",
- " A(i,j) = …\n",
- " enddo\n",
- " enddo\n",
- " ```\n",
+ " \n",
+ " ```\n",
+ " double precision :: A(M,N)\n",
+ " do j = 1, N\n",
+ " do i = 1, M\n",
+ " A(i,j) = …\n",
+ " enddo\n",
+ " enddo\n",
+ " ```\n",
" \n",
" * in C\n",
- " ```\n",
- " double A[M][N];\n",
- " for (i = 0; i < M; i++) {\n",
- " for (j = 0; j < N; j++) {\n",
- " A[i][j] = …\n",
- " }\n",
- " } \n",
- " ```\n",
+ " \n",
+ " ```\n",
+ " double A[M][N];\n",
+ " for (i = 0; i < M; i++) {\n",
+ " for (j = 0; j < N; j++) {\n",
+ " A[i][j] = …\n",
+ " }\n",
+ " } \n",
+ " ```\n",
" \n",
"\n",
"In python, using NumPy, we'll try to avoid explicit loops over elements as much as possible\n",
@@ -750,516 +736,24 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "
Quick Exercise:
\n",
- "\n",
- "Consider the array defined as:"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "q = np.array([[1, 2, 3, 2, 1],\n",
- " [2, 4, 4, 4, 2],\n",
- " [3, 4, 4, 4, 3],\n",
- " [2, 4, 4, 4, 2],\n",
- " [1, 2, 3, 2, 1]])"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- " * using slice notation, create an array that consists of only the `4`'s in `q` (this will be called a _view_, as we'll see shortly)\n",
- " * zero out all of the elements in your view\n",
- " * how does `q` change?\n",
- ""
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "# Copying Arrays"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "simply using \"=\" does not make a copy, but much like with lists, you will just have multiple names pointing to the same ndarray object\n",
- "\n",
- "Therefore, we need to understand if two arrays, `A` and `B` point to:\n",
- "* the same array, including shape and data/memory space\n",
- "* the same data/memory space, but perhaps different shapes (a _view_)\n",
- "* a separate cpy of the data (i.e. stored completely separately in memory)\n",
- "\n",
- "All of these are possible:\n",
- "* `B = A`\n",
- " \n",
- " this is _assignment_. No copy is made. `A` and `B` point to the same data in memory and share the same shape, etc. They are just two different labels for the same object in memory\n",
- " \n",
- "\n",
- "* `B = A[:]`\n",
- "\n",
- " this is a _view_ or _shallow copy_. The shape info for A and B are stored independently, but both point to the same memory location for data\n",
- " \n",
- " \n",
- "* `B = A.copy()`\n",
- "\n",
- " this is a _deep_ copy. A completely separate object will be created in memory, with a completely separate location in memory.\n",
- " \n",
- "Let's look at examples"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "a = np.arange(10)\n",
- "print(a)\n"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "Here is assignment—we can just use the `is` operator to test for equality"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "b = a\n",
- "b is a"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "Since `b` and `a` are the same, changes to the shape of one are reflected in the other—no copy is made."
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "b.shape = (2, 5)\n",
- "print(b)\n",
- "a.shape"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "b is a"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "print(a)"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "a shallow copy creates a new *view* into the array—the _data_ is the same, but the array properties can be different"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "a = np.arange(12)\n",
- "c = a[:]\n",
- "a.shape = (3,4)\n",
- "\n",
- "print(a)\n",
- "print(c)"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "since the underlying data is the same memory, changing an element of one is reflected in the other"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "c[1] = -1\n",
- "print(a)"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "Even slices into an array are just views, still pointing to the same memory"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "d = c[3:8]\n",
- "print(d)"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "d[:] = 0 "
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "print(a)\n",
- "print(c)\n",
- "print(d)"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {
- "collapsed": true
- },
- "source": [
- "There are lots of ways to inquire if two arrays are the same, views, own their own data, etc"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "print(c is a)\n",
- "print(c.base is a)\n",
- "print(c.flags.owndata)\n",
- "print(a.flags.owndata)"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "to make a copy of the data of the array that you can deal with independently of the original, you need a _deep copy_"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "d = a.copy()\n",
- "d[:,:] = 0.0\n",
- "\n",
- "print(a)\n",
- "print(d)"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "# Boolean Indexing"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "There are lots of fun ways to index arrays to access only those elements that meet a certain condition"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "a = np.arange(12).reshape(3,4)\n",
- "a"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "Here we set all the elements in the array that are > 4 to zero"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "a[a > 4] = 0\n",
- "a"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "and now, all the zeros to -1"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "a[a == 0] = -1\n",
- "a"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "a == -1"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "if we have 2 tests, we need to use `logical_and()` or `logical_or()`"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "a = np.arange(12).reshape(3,4)\n",
- "a[np.logical_and(a > 3, a <= 9)] = 0.0\n",
- "a"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "Our test that we index the array with returns a boolean array of the same shape:"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "a > 4"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "# Avoiding Loops"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "In general, you want to avoid loops over elements on an array.\n",
+ "````{admonition} Quick Exercise\n",
"\n",
- "Here, let's create 1-d x and y coordinates and then try to fill some larger array"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "M = 32\n",
- "N = 64\n",
- "xmin = ymin = 0.0\n",
- "xmax = ymax = 1.0\n",
+ "Consider the array defined as:\n",
"\n",
- "x = np.linspace(xmin, xmax, M, endpoint=False)\n",
- "y = np.linspace(ymin, ymax, N, endpoint=False)\n",
+ "```\n",
"\n",
- "print(x.shape)\n",
- "print(y.shape)"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "we'll time out code"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "import time"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "t0 = time.time()\n",
- "\n",
- "g = np.zeros((M, N))\n",
+ " q = np.array([[1, 2, 3, 2, 1],\n",
+ " [2, 4, 4, 4, 2],\n",
+ " [3, 4, 4, 4, 3],\n",
+ " [2, 4, 4, 4, 2],\n",
+ " [1, 2, 3, 2, 1]])\n",
+ " \n",
+ "```\n",
"\n",
- "for i in range(M):\n",
- " for j in range(N):\n",
- " g[i,j] = np.sin(2.0*np.pi*x[i]*y[j])\n",
- " \n",
- "t1 = time.time()\n",
- "print(\"time elapsed: {} s\".format(t1-t0))"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "Now let's instead do this using all array syntax. First will extend our 1-d coordinate arrays to be 2-d. NumPy has a function for this (`meshgrid()`)"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "x2d, y2d = np.meshgrid(x, y, indexing=\"ij\")\n",
- "\n",
- "print(x2d[:,0])\n",
- "print(x2d[0,:])\n",
- "\n",
- "print(y2d[:,0])\n",
- "print(y2d[0,:])"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "t0 = time.time()\n",
- "g2 = np.sin(2.0*np.pi*x2d*y2d)\n",
- "t1 = time.time()\n",
- "print(\"time elapsed: {} s\".format(t1-t0))"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "print(np.max(np.abs(g2-g)))"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "### Numerical differencing on NumPy arrays"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "Now we want to construct a derivative, \n",
- "$$\n",
- "\\frac{d f}{dx}\n",
- "$$"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "x = np.linspace(0, 2*np.pi, 25)\n",
- "f = np.sin(x)"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "We want to do this without loops—we'll use views into arrays offset from one another. Recall from calculus that a derivative is approximately:\n",
- "$$\n",
- "\\frac{df}{dx} = \\frac{f(x+h) - f(x)}{h}\n",
- "$$\n",
- "Here, we'll take $h$ to be a single adjacent element"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "dx = x[1] - x[0]\n",
- "dfdx = (f[1:] - f[:-1])/dx"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "dfdx"
+ " * using slice notation, create an array that consists of only the `4`'s in `q` (this will be called a _view_, as we'll see shortly)\n",
+ " * zero out all of the elements in your view\n",
+ " * how does `q` change?\n",
+ "````"
]
},
{
@@ -1272,7 +766,7 @@
],
"metadata": {
"kernelspec": {
- "display_name": "Python 3",
+ "display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
@@ -1286,9 +780,9 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
- "version": "3.6.4"
+ "version": "3.13.2"
}
},
"nbformat": 4,
- "nbformat_minor": 1
+ "nbformat_minor": 4
}
diff --git a/lectures/02-numpy/numpy-exercises.ipynb b/content/02-numpy/numpy-exercises.ipynb
similarity index 95%
rename from lectures/02-numpy/numpy-exercises.ipynb
rename to content/02-numpy/numpy-exercises.ipynb
index 1a5e8454..1a352e89 100644
--- a/lectures/02-numpy/numpy-exercises.ipynb
+++ b/content/02-numpy/numpy-exercises.ipynb
@@ -18,10 +18,8 @@
},
{
"cell_type": "code",
- "execution_count": 1,
- "metadata": {
- "collapsed": true
- },
+ "execution_count": 2,
+ "metadata": {},
"outputs": [],
"source": [
"import numpy as np"
@@ -45,7 +43,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {
- "collapsed": true
+ "tags": []
},
"outputs": [],
"source": []
@@ -73,7 +71,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {
- "collapsed": true
+ "tags": []
},
"outputs": [],
"source": []
@@ -99,7 +97,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {
- "collapsed": true
+ "tags": []
},
"outputs": [],
"source": []
@@ -121,7 +119,10 @@
"cell_type": "code",
"execution_count": null,
"metadata": {
- "collapsed": true
+ "collapsed": true,
+ "jupyter": {
+ "outputs_hidden": true
+ }
},
"outputs": [],
"source": []
@@ -143,7 +144,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {
- "collapsed": true
+ "tags": []
},
"outputs": [],
"source": []
@@ -168,7 +169,7 @@
"cell_type": "code",
"execution_count": null,
"metadata": {
- "collapsed": true
+ "tags": []
},
"outputs": [],
"source": []
@@ -185,6 +186,7 @@
"\n",
"Given an array, $a$, and an average $\\bar{a}$, the standard deviation\n",
"is:\n",
+ "\n",
"$$\n",
"\\sigma = \\left [ \\frac{1}{N} \\sum_{i=1}^N (a_i - \\bar{a})^2 \\right ]^{1/2}\n",
"$$\n",
@@ -209,7 +211,7 @@
],
"metadata": {
"kernelspec": {
- "display_name": "Python 3",
+ "display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
@@ -223,9 +225,9 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
- "version": "3.4.2"
+ "version": "3.12.1"
}
},
"nbformat": 4,
- "nbformat_minor": 2
+ "nbformat_minor": 4
}
diff --git a/content/02-numpy/numpy.md b/content/02-numpy/numpy.md
new file mode 100644
index 00000000..19ab63c9
--- /dev/null
+++ b/content/02-numpy/numpy.md
@@ -0,0 +1,3 @@
+# NumPy
+
+The NumPy library provides a class for n-dimensional arrays of data.
diff --git a/lectures/02-numpy/row_column_major.png b/content/02-numpy/row_column_major.png
similarity index 100%
rename from lectures/02-numpy/row_column_major.png
rename to content/02-numpy/row_column_major.png
diff --git a/content/02-numpy/sample.txt b/content/02-numpy/sample.txt
new file mode 100644
index 00000000..2c311fcd
--- /dev/null
+++ b/content/02-numpy/sample.txt
@@ -0,0 +1,100 @@
+0 -4.756772745910339
+1 6.889533541096673
+2 8.996896092374172
+3 -1.7461017125141964
+4 1.0304402925205614
+5 4.635768431188638
+6 5.177225916739488
+7 15.964690203916664
+8 -12.021098174294892
+9 -18.10087879725122
+10 -25.178886598285644
+11 4.518925348029733
+12 9.043916771177502
+13 -0.5221535906039717
+14 -3.1338886609447583
+15 -6.914714941474996
+16 -6.314263548047582
+17 6.706901891085466
+18 -25.971636440421232
+19 -4.435372425747847
+20 0.4889050161324564
+21 -0.036004810755168606
+22 -4.372545660650671
+23 0.4047031759550273
+24 3.090597990424291
+25 19.306526596830842
+26 6.48611581937894
+27 -10.781128554191731
+28 -12.85791882558559
+29 -1.0278401126239605
+30 -30.58842788782183
+31 -6.517109634143572
+32 -7.489210194855196
+33 -11.105721713012358
+34 4.120721916704712
+35 -3.153239578756935
+36 1.4135041696471733
+37 22.583374665055885
+38 -12.27556599640208
+39 -4.793102896606837
+40 -7.128537547009972
+41 -17.279019221677267
+42 19.655635821341445
+43 -1.2745066768475497
+44 3.738058165511088
+45 10.481959096601695
+46 -12.814187304346124
+47 -22.424530149878166
+48 4.137834007998959
+49 -0.04131996932026964
+50 7.375298054261892
+51 -4.098385522108854
+52 -5.599571617055626
+53 -13.253443154026934
+54 16.290743431455287
+55 10.424184766192798
+56 -4.27251751782754
+57 19.01684691299122
+58 3.15448738602801
+59 -9.704807918052413
+60 -0.0008101176931862717
+61 6.104424953162043
+62 24.47811290783359
+63 14.846618329919092
+64 -2.186378655814549
+65 9.86177633783792
+66 12.724976950604734
+67 4.037245731028271
+68 -0.656843975486256
+69 15.37262575716834
+70 -7.880872346846276
+71 2.54070374695715
+72 -1.022544832116583
+73 20.91034858050119
+74 9.222541985448974
+75 -11.056628565277206
+76 27.93950830400997
+77 -6.032857683782997
+78 18.098345716611153
+79 38.59487842850004
+80 -0.8720942826849941
+81 1.7229720788142675
+82 -4.174088180887814
+83 -8.318962830280652
+84 14.512558782294388
+85 5.630837289759344
+86 13.097667005419458
+87 9.517210836578036
+88 -3.2730322970019206
+89 14.22975371499751
+90 -12.903078745763068
+91 10.69546941555894
+92 -6.12535752853502
+93 -0.0538615350527278
+94 8.344238543768178
+95 12.569544805707704
+96 -1.5730683048208713
+97 9.588349649640545
+98 -17.791062662128468
+99 -4.613995471504272
diff --git a/lectures/02-numpy/slicing.png b/content/02-numpy/slicing.png
similarity index 100%
rename from lectures/02-numpy/slicing.png
rename to content/02-numpy/slicing.png
diff --git a/content/03-practices/git-single.md b/content/03-practices/git-single.md
new file mode 100644
index 00000000..a82a2436
--- /dev/null
+++ b/content/03-practices/git-single.md
@@ -0,0 +1,162 @@
+A single-user interaction with git:
+
+* Make your project
+
+ We'll start by making our project directory and moving into it:
+
+ ```
+ $ mkdir myproject
+ $ cd myproject/
+ ```
+
+* Now have git track this
+
+ Now we do `git init .` -- this tells git to initialize this
+ directory under version control
+
+ ```
+ $ git init .
+ ```
+
+ If we do `ls` at this point, we see nothing. However, there is a
+ "hidden" directory called `.git/` which we can see by passing `-a`
+ to `ls`:
+
+ ```
+ $ ls -al
+ $ ls -l .git
+ ```
+
+ In that directory are the files that git uses to keep track of
+ changes and the history.
+
+* Create a file
+
+ We'll create a file called `README` (use whatever editor you like,
+ I'll use emacs):
+
+ ```
+ $ emacs -nw README
+ ```
+
+ Add some descriptive text to the file and save it. At the moment,
+ git doesn't know about this file -- you can see this via `git
+ status`:
+
+ ```
+ $ git status
+ ```
+
+* Tell git about the file
+
+ Now we need to tell git to start tracking the file. We use
+ `git add` for this. Then we need to tell git to store the current
+ state of the file -- we use `git commit` for this:
+
+ ```
+ $ git add README
+ $ git commit README
+ ```
+
+ Notice that an editor window pops up -- take the time to give a
+ descriptive message about the changes.
+
+ If you make more changes to the file, git won't store them until
+ you commit them. So you'll commit the same file over and over as
+ it changes, but only add it once.
+
+* Create another file
+
+ Let's create a python program, `awesome.py` with the line:
+
+ ```
+ print("hello")
+ ```
+
+ Now add that file and commit it too
+
+ ```
+ $ git add awesome.py
+ $ git commit .
+ ```
+
+* Look at your log
+
+ `git log` will show you all the commits, the message you entered
+ when you made the commit (that helps you understand what was done).
+ It will also have a "hash" next to the commit (like
+ `dbc2916bb609759d54ca7668558bc639bab9b60b`)
+
+ ```
+ $ git log
+ ```
+
+* Add to you code
+
+ Edit `awesome.py` and make it a function and have your program call
+ the function. Now we need to commit this again:
+
+ ```
+ $ git commit awesome.py
+ ```
+
+ And `git log` will show this commit as separate from the one we made
+ when we created the file.
+
+* Go back in time
+
+ Suppose our code is not working anymore, and we know it was in the
+ past. We can go back to any previous version of the code by using
+ `checkout` and the hash next to that commit (note: your hashes will
+ be different than mine).
+
+ ```
+ $ git log
+ $ git checkout dbc2916bb609759d54ca7668558bc639bab9b60b
+ ```
+
+ Look at the file, and you'll see it is different.
+
+ If you want to go back to the latest version, you can checkout `master`
+ -- that's the name of the main "branch" git recognizes.
+
+ ```
+ git checkout master
+ ```
+
+* Working with branches
+
+ Suppose we want to do some development that might be invasive and we
+ don't want to break the working code on "master". We can use a
+ branch for this -- thing of this as a parallel development that can
+ track the master branch and merge back and forth with it. We can
+ work on this new branch until we are happy, and then incorporate our
+ changes back to `master`.
+
+ Here we'll create a new branch called `development`:
+
+ ```
+ $ git checkout -b development
+ ```
+
+ Now make some changes to `awesome.py` and commit them.
+
+ ```
+ $ emacs -nw awesome.py
+ $ git commit awesome.py
+ ```
+
+ If you go back to `master`, you won't see these changes:
+
+ ```
+ $ git checkout master
+ $ more awesome.py
+ ```
+
+ If you are happy with the changes, you can do a merge. While on
+ `master`, merge `development` into `master` with:
+
+ ```
+ $ git merge development
+ ```
+
diff --git a/lectures/03-practices/git.png b/content/03-practices/git.png
similarity index 100%
rename from lectures/03-practices/git.png
rename to content/03-practices/git.png
diff --git a/lectures/03-practices/git.txt b/content/03-practices/git.txt
similarity index 100%
rename from lectures/03-practices/git.txt
rename to content/03-practices/git.txt
diff --git a/lectures/03-practices/python-style.ipynb b/content/03-practices/python-style.ipynb
similarity index 85%
rename from lectures/03-practices/python-style.ipynb
rename to content/03-practices/python-style.ipynb
index ff82e6a8..3eca3af9 100644
--- a/lectures/03-practices/python-style.ipynb
+++ b/content/03-practices/python-style.ipynb
@@ -18,21 +18,21 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "### code lay-out"
+ "## code lay-out"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
- "#### indentation"
+ "### indentation"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
- "Intentation should use 4 spaces per indentation level (and NOT tabs). Python 3 does not allow for a mixture of tabs and spaces. Note that a lot of editors will map the tab key into a sequence of spaces\n",
+ "Indentation should use 4 spaces per indentation level (and NOT tabs). Python 3 does not allow for a mixture of tabs and spaces. Note that a lot of editors will map the tab key into a sequence of spaces\n",
"\n",
"Continuation lines should align wrapped elements either vertically inside parentheses, brackets, or braces, or using a hanging indent (with no arguments on the first line)\n",
"\n",
@@ -65,7 +65,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "## line length"
+ "### line length"
]
},
{
@@ -78,14 +78,17 @@
"\n",
"Comments and docstrings should be limited to 72-characters\n",
"\n",
- "Implied line continuation is automatic inside paranthesis, brackets"
+ "Implied line continuation is automatic inside parenthesis, brackets"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
- "collapsed": false
+ "collapsed": false,
+ "jupyter": {
+ "outputs_hidden": false
+ }
},
"outputs": [],
"source": []
@@ -93,23 +96,23 @@
],
"metadata": {
"kernelspec": {
- "display_name": "Python 2",
+ "display_name": "Python 3 (ipykernel)",
"language": "python",
- "name": "python2"
+ "name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
- "version": 2
+ "version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
- "pygments_lexer": "ipython2",
- "version": "2.7.10"
+ "pygments_lexer": "ipython3",
+ "version": "3.10.2"
}
},
"nbformat": 4,
- "nbformat_minor": 0
+ "nbformat_minor": 4
}
diff --git a/lectures/04-matplotlib/NOTES b/content/04-matplotlib/NOTES
similarity index 100%
rename from lectures/04-matplotlib/NOTES
rename to content/04-matplotlib/NOTES
diff --git a/lectures/04-matplotlib/anatomy1.png b/content/04-matplotlib/anatomy1.png
similarity index 100%
rename from lectures/04-matplotlib/anatomy1.png
rename to content/04-matplotlib/anatomy1.png
diff --git a/content/04-matplotlib/ipyvolume-example.ipynb b/content/04-matplotlib/ipyvolume-example.ipynb
new file mode 100644
index 00000000..fd588bc9
--- /dev/null
+++ b/content/04-matplotlib/ipyvolume-example.ipynb
@@ -0,0 +1,310 @@
+{
+ "cells": [
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "import numpy as np\n",
+ "import ipyvolume"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "N = 64\n",
+ "x = np.linspace(0.0, 1.0, N)\n",
+ "y = np.linspace(0.0, 1.0, N)\n",
+ "z = np.linspace(0.0, 1.0, N)\n",
+ "\n",
+ "x3d, y3d, z3d = np.meshgrid(x, y, z, indexing=\"ij\")\n",
+ "\n",
+ "r = np.sqrt((x3d - 0.5)**2 + (y3d - 0.5)**2 + (z3d - 0.5)**2)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "f = 1.0 + np.sin(x3d*np.pi*5)*np.sin(y3d*np.pi*7)*np.cos(z3d*np.pi*2) * np.exp(-r**2/0.25**2)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "/home/zingale/.local/lib/python3.6/site-packages/ipyvolume/serialize.py:66: RuntimeWarning: invalid value encountered in true_divide\n",
+ " gradient = gradient / np.sqrt(gradient[0]**2 + gradient[1]**2 + gradient[2]**2)\n"
+ ]
+ }
+ ],
+ "source": [
+ "a = ipyvolume.volshow(f)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "application/vnd.jupyter.widget-view+json": {
+ "model_id": "71282540aea047f289ece9c4179a7715",
+ "version_major": 2,
+ "version_minor": 0
+ },
+ "text/html": [
+ "
Failed to display Jupyter Widget of type Figure.
\n",
+ "
\n",
+ " If you're reading this message in the Jupyter Notebook or JupyterLab Notebook, it may mean\n",
+ " that the widgets JavaScript is still loading. If this message persists, it\n",
+ " likely means that the widgets JavaScript library is either not installed or\n",
+ " not enabled. See the Jupyter\n",
+ " Widgets Documentation for setup instructions.\n",
+ "
\n",
+ "
\n",
+ " If you're reading this message in another frontend (for example, a static\n",
+ " rendering on GitHub or NBViewer),\n",
+ " it may mean that your frontend doesn't currently support widgets.\n",
+ "
\n",
+ " If you're reading this message in the Jupyter Notebook or JupyterLab Notebook, it may mean\n",
+ " that the widgets JavaScript is still loading. If this message persists, it\n",
+ " likely means that the widgets JavaScript library is either not installed or\n",
+ " not enabled. See the Jupyter\n",
+ " Widgets Documentation for setup instructions.\n",
+ "
\n",
+ "
\n",
+ " If you're reading this message in another frontend (for example, a static\n",
+ " rendering on GitHub or NBViewer),\n",
+ " it may mean that your frontend doesn't currently support widgets.\n",
+ "
"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "fig, ax = plt.subplots()\n",
+ "ax.plot(data[:,1], data[:,2]/np.max(data[:,2]), label=r\"$\\rho$\")\n",
+ "ax.plot(data[:,1], data[:,3]/np.max(data[:,3]), label=r\"$u$\")\n",
+ "ax.plot(data[:,1], data[:,4]/np.max(data[:,4]), label=r\"$p$\")\n",
+ "ax.plot(data[:,1], data[:,5]/np.max(data[:,5]), label=r\"$T$\")\n",
+ "ax.set_ylim(0,1.1)\n",
+ "ax.legend(frameon=False, fontsize=12)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Final fun"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "if you want to make things look hand-drawn in the style of xkcd, rerun these examples after doing\n",
+ "plt.xkcd()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 24,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ ""
+ ]
+ },
+ "execution_count": 24,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "plt.xkcd()"
+ ]
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 3 (ipykernel)",
+ "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.13.2"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 4
+}
diff --git a/content/04-matplotlib/matplotlib-exercises.ipynb b/content/04-matplotlib/matplotlib-exercises.ipynb
new file mode 100644
index 00000000..126e4c0a
--- /dev/null
+++ b/content/04-matplotlib/matplotlib-exercises.ipynb
@@ -0,0 +1,321 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# matplotlib exercises"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "import matplotlib.pyplot as plt\n",
+ "import numpy as np"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Q1: planetary positions\n",
+ "\n",
+ "The distances of the planets from the Sun (technically, their semi-major axes) are:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "a = np.array([0.39, 0.72, 1.00, 1.52, 5.20, 9.54, 19.22, 30.06, 39.48])"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "These are in units where the Earth-Sun distance is 1 (astronomical units).\n",
+ "\n",
+ "The corresponding periods of their orbits (how long they take to go once around the Sun) are, in years"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "P = np.array([0.24, 0.62, 1.00, 1.88, 11.86, 29.46, 84.01, 164.8, 248.09])"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Finally, the names of the planets corresponding to these are:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "names = [\"Mercury\", \"Venus\", \"Earth\", \"Mars\", \"Jupiter\", \"Saturn\", \n",
+ " \"Uranus\", \"Neptune\", \"Pluto\"]"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "(technically, pluto isn't a planet anymore, but we still love it :)\n",
+ "\n",
+ " * Plot as points, the periods vs. distances for each planet on a log-log plot.\n",
+ "\n",
+ " * Write the name of the planet next to the point for that planet on the plot"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {
+ "tags": []
+ },
+ "outputs": [],
+ "source": []
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Q2: drawing a circle\n",
+ "\n",
+ "For an angle $\\theta$ in the range $\\theta \\in [0, 2\\pi]$, the polar equations of a circle of radius $R$ are:\n",
+ "\n",
+ "$$x = R\\cos(\\theta)$$\n",
+ "\n",
+ "$$y = R\\sin(\\theta)$$\n",
+ "\n",
+ "We want to draw a circle. \n",
+ "\n",
+ " * Create an array to hold the theta values—the more we use, the smoother the circle will be\n",
+ " * Create `x` and `y` arrays from `theta` for your choice of $R$\n",
+ " * Plot `y` vs. `x`\n",
+ " \n",
+ "Now, look up the matplotlib `fill()` function, and draw a circle filled in with a solid color."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {
+ "tags": []
+ },
+ "outputs": [],
+ "source": []
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Q3: Circles, circles, circles...\n",
+ "\n",
+ "Generalize your circle drawing commands to produce a function, \n",
+ "```\n",
+ "draw_circle(x0, y0, R, color)\n",
+ "```\n",
+ "that draws the circle. Here, `(x0, y0)` is the center of the circle, `R` is the radius, and `color` is the color of the circle. \n",
+ "\n",
+ "Now randomly draw 10 circles at different locations, with random radii, and random colors on the same plot."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {
+ "tags": []
+ },
+ "outputs": [],
+ "source": []
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Q4: Climate\n",
+ "\n",
+ "Download the data file of global surface air temperature averages from here:\n",
+ "https://raw.githubusercontent.com/sbu-python-summer/python-tutorial/master/day-4/nasa-giss.txt\n",
+ "\n",
+ "(this data comes from: https://data.giss.nasa.gov/gistemp/graphs/)\n",
+ "\n",
+ "There are 3 columns here: the year, the temperature change, and a smoothed representation of the temperature change. \n",
+ "\n",
+ " * Read in this data using `np.loadtxt()`. \n",
+ " * Plot as a line the smoothed representation of the temperature changes. \n",
+ " * Plot as points the temperature change (no smoothing). Color the points blue if they are < 0 and color them red if they are >= 0\n",
+ " \n",
+ "You might find the NumPy `where()` function useful."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {
+ "tags": []
+ },
+ "outputs": [],
+ "source": []
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Q5: subplots\n",
+ "\n",
+ "matplotlib has a number of ways to create multiple axes in a figure -- look at `plt.subplots()` (http://matplotlib.org/api/pyplot_api.html#matplotlib.pyplot.subplot)\n",
+ "\n",
+ "Create an `x` array using NumPy with a number of points, spanning from $[0, 2\\pi]$. \n",
+ "\n",
+ "Create 3 axes vertically, and do the following:\n",
+ "\n",
+ "* Define a new numpy array `f` initialized to a function of your choice.\n",
+ "* Plot f in the top axes\n",
+ "* Compute a numerical derivative of `f`,\n",
+ " $$ f' = \\frac{f_{i+1} - f_i}{\\Delta x}$$\n",
+ " and plot this in the middle axes\n",
+ "* Do this again, this time on $f'$ to compute the second derivative and plot that in the bottom axes\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {
+ "tags": []
+ },
+ "outputs": [],
+ "source": []
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Q6: Mandelbrot set\n",
+ "\n",
+ "The [Mandelbrot set](https://en.wikipedia.org/wiki/Mandelbrot_set) is defined such that $z_{k+1} = z_k^2 + c$\n",
+ "remains bounded, which is usually taken as $|z_{k+1}| \\le 2$\n",
+ "where $c$ is a complex number and we start with $z_0 = 0$\n",
+ "\n",
+ "We want to consider a range of $c$, as complex numbers $c = x + iy$,\n",
+ "where $-2 < x < 2$ and $-2 < y < 2$.\n",
+ "\n",
+ "For each $c$, identify its position on a Cartesian grid as $(x,y)$ and \n",
+ "assign a value $N$ that is the number of iterations, $k$, required for $|z_{k+1}|$ to become greater than $2$.\n",
+ "\n",
+ "The plot of this function is called the Mandelbrot set.\n",
+ "\n",
+ "Here's a simple implementation that just does a fixed number of iterations and then colors points in Z depending on whether they satisfy $|z| \\le 2$. \n",
+ "\n",
+ "Your task is to extend this to record the number of iterations it takes for each point in the Z-plane to violate that constraint,\n",
+ "and then plot that data -- it will show more structure\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "N = 256\n",
+ "x = np.linspace(-2, 2, N)\n",
+ "y = np.linspace(-2, 2, N)\n",
+ "\n",
+ "xv, yv = np.meshgrid(x, y, indexing=\"ij\")"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 8,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "c = xv + 1j*y\n",
+ "\n",
+ "z = np.zeros((N, N), dtype=np.complex128)\n",
+ "\n",
+ "for i in range(10):\n",
+ " z = z**2 + c\n",
+ " \n",
+ "m = np.ones((N, N))\n",
+ "m[np.abs(z) <= 2] = 0.0"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 10,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ ""
+ ]
+ },
+ "execution_count": 10,
+ "metadata": {},
+ "output_type": "execute_result"
+ },
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ "
"
+ ]
+ },
+ "metadata": {
+ "needs_background": "light"
+ },
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "fig, ax = plt.subplots()\n",
+ "ax.imshow(m)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 3 (ipykernel)",
+ "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.12.3"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 4
+}
diff --git a/content/04-matplotlib/matplotlib.md b/content/04-matplotlib/matplotlib.md
new file mode 100644
index 00000000..c089ad68
--- /dev/null
+++ b/content/04-matplotlib/matplotlib.md
@@ -0,0 +1,3 @@
+# matplotlib
+
+matplotlib is the core plotting library for python.
diff --git a/lectures/04-matplotlib/matplotlib.pdf b/content/04-matplotlib/matplotlib.pdf
similarity index 100%
rename from lectures/04-matplotlib/matplotlib.pdf
rename to content/04-matplotlib/matplotlib.pdf
diff --git a/content/04-matplotlib/test.png b/content/04-matplotlib/test.png
new file mode 100644
index 00000000..31955505
Binary files /dev/null and b/content/04-matplotlib/test.png differ
diff --git a/lectures/04-matplotlib/test1.exact.128.out b/content/04-matplotlib/test1.exact.128.out
similarity index 100%
rename from lectures/04-matplotlib/test1.exact.128.out
rename to content/04-matplotlib/test1.exact.128.out
diff --git a/lectures/05-scipy/bisection.avi b/content/05-scipy/bisection.avi
similarity index 100%
rename from lectures/05-scipy/bisection.avi
rename to content/05-scipy/bisection.avi
diff --git a/lectures/05-scipy/condition-example.py b/content/05-scipy/condition-example.py
similarity index 100%
rename from lectures/05-scipy/condition-example.py
rename to content/05-scipy/condition-example.py
diff --git a/lectures/05-scipy/integrals.py b/content/05-scipy/integrals.py
similarity index 100%
rename from lectures/05-scipy/integrals.py
rename to content/05-scipy/integrals.py
diff --git a/lectures/05-scipy/newton.avi b/content/05-scipy/newton.avi
similarity index 100%
rename from lectures/05-scipy/newton.avi
rename to content/05-scipy/newton.avi
diff --git a/content/05-scipy/orbit_setup.png b/content/05-scipy/orbit_setup.png
new file mode 100644
index 00000000..8c263965
Binary files /dev/null and b/content/05-scipy/orbit_setup.png differ
diff --git a/lectures/05-scipy/pendulum_answer.py b/content/05-scipy/pendulum_answer.py
similarity index 100%
rename from lectures/05-scipy/pendulum_answer.py
rename to content/05-scipy/pendulum_answer.py
diff --git a/lectures/05-scipy/pendulum_fft.py b/content/05-scipy/pendulum_fft.py
similarity index 100%
rename from lectures/05-scipy/pendulum_fft.py
rename to content/05-scipy/pendulum_fft.py
diff --git a/lectures/05-scipy/rectangle.png b/content/05-scipy/rectangle.png
similarity index 100%
rename from lectures/05-scipy/rectangle.png
rename to content/05-scipy/rectangle.png
diff --git a/lectures/05-scipy/rk4_Euler.png b/content/05-scipy/rk4_Euler.png
similarity index 100%
rename from lectures/05-scipy/rk4_Euler.png
rename to content/05-scipy/rk4_Euler.png
diff --git a/lectures/05-scipy/rk4_final.png b/content/05-scipy/rk4_final.png
similarity index 100%
rename from lectures/05-scipy/rk4_final.png
rename to content/05-scipy/rk4_final.png
diff --git a/lectures/05-scipy/rk4_initial.png b/content/05-scipy/rk4_initial.png
similarity index 100%
rename from lectures/05-scipy/rk4_initial.png
rename to content/05-scipy/rk4_initial.png
diff --git a/lectures/05-scipy/rk4_k1.png b/content/05-scipy/rk4_k1.png
similarity index 100%
rename from lectures/05-scipy/rk4_k1.png
rename to content/05-scipy/rk4_k1.png
diff --git a/lectures/05-scipy/rk4_k2.png b/content/05-scipy/rk4_k2.png
similarity index 100%
rename from lectures/05-scipy/rk4_k2.png
rename to content/05-scipy/rk4_k2.png
diff --git a/lectures/05-scipy/rk4_k3.png b/content/05-scipy/rk4_k3.png
similarity index 100%
rename from lectures/05-scipy/rk4_k3.png
rename to content/05-scipy/rk4_k3.png
diff --git a/lectures/05-scipy/rk4_k4.png b/content/05-scipy/rk4_k4.png
similarity index 100%
rename from lectures/05-scipy/rk4_k4.png
rename to content/05-scipy/rk4_k4.png
diff --git a/lectures/05-scipy/rk4_plot.py b/content/05-scipy/rk4_plot.py
similarity index 100%
rename from lectures/05-scipy/rk4_plot.py
rename to content/05-scipy/rk4_plot.py
diff --git a/content/05-scipy/scipy-basics-2.ipynb b/content/05-scipy/scipy-basics-2.ipynb
new file mode 100644
index 00000000..c40d60e5
--- /dev/null
+++ b/content/05-scipy/scipy-basics-2.ipynb
@@ -0,0 +1,1313 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# More SciPy"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "import numpy as np\n",
+ "import matplotlib.pyplot as plt"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Fitting\n",
+ "\n",
+ "Fitting is used to match a model to experimental data. E.g. we have N points of $(x_i, y_i)$ with associated errors, $\\sigma_i$, and we want to find a simply function that best represents the data.\n",
+ "\n",
+ "Usually this means that we will need to define a metric, often called the residual, for how well our function matches the data, and then minimize this residual. [Least-squares fitting](https://en.wikipedia.org/wiki/Least_squares) is a popular formulation.\n",
+ "\n",
+ "We want to fit our data to a function $Y(x, \\{a_j\\})$, where $a_j$ are model parameters we can adjust. We want to find the optimal $a_j$ to minimize the distance of $Y$ from our data, *measured parallel to the $y$-axis*:\n",
+ "\n",
+ "$$\\Delta_i = Y(x_i, \\{a_j\\}) - y_i$$\n",
+ "\n",
+ "[Least-squares](https://en.wikipedia.org/wiki/Ordinary_least_squares) minimizes the distance between the\n",
+ "data points and the model line parallel to the $y$-axis. We write this as $\\chi^2$:\n",
+ "\n",
+ "$$\\chi^2(\\{a_j\\}) = \\sum_{i=1}^N \\left ( \\frac{\\Delta_i}{\\sigma_i} \\right )^2$$"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "from scipy import optimize"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### general linear least squares"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "First we'll make some experimental data (a quadratic with random fashion). We use the [standard_normal](https://numpy.org/doc/stable/reference/random/generated/numpy.random.Generator.standard_normal.html) function to provide Gaussian normalized errors."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "def y_experiment2(a1, a2, a3, sigma, x):\n",
+ " \"\"\" return the experimental data in a quadratic + random fashion, \n",
+ " with a1, a2, a3 the coefficients of the quadratic and sigma is \n",
+ " the error. This will be poorly matched to a linear fit for \n",
+ " a3 != 0 \"\"\"\n",
+ "\n",
+ " N = len(x)\n",
+ "\n",
+ " # standard_normal gives samples from the \"standard normal\" distribution\n",
+ " rng = np.random.default_rng()\n",
+ " r = rng.standard_normal(N)\n",
+ "\n",
+ " y = a1 + a2*x + a3*x*x + sigma*r\n",
+ "\n",
+ " return y"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "N = 40\n",
+ "sigma = 5.0*np.ones(N)\n",
+ "\n",
+ "x = np.linspace(0, 100.0, N)\n",
+ "y = y_experiment2(2.0, 1.50, -0.02, sigma, x)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ ""
+ ]
+ },
+ "execution_count": 7,
+ "metadata": {},
+ "output_type": "execute_result"
+ },
+ {
+ "data": {
+ "image/png": "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",
+ "text/plain": [
+ "
"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "fig, ax = plt.subplots()\n",
+ "ax.scatter(x,y)\n",
+ "ax.errorbar(x, y, yerr=sigma, fmt=\"o\")"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "```{note}\n",
+ "\"linear\" in general linear least squares means that the fit parameters enter into the fitting function linearly,\n",
+ "the function itself can be nonlinear in $x$.\n",
+ "```"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "We'll use the [leastsq()](https://docs.scipy.org/doc/scipy/reference/generated/scipy.optimize.leastsq.html) function to minimize the square of the residual. \n",
+ "\n",
+ "First our function to compute the residual."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 8,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "def resid(avec, x, y, sigma):\n",
+ " \"\"\" the residual function -- this is what will be minimized by the\n",
+ " scipy.optimize.leastsq() routine. avec is the parameters we\n",
+ " are optimizing -- they are packed in here, so we unpack to\n",
+ " begin. (x, y) are the data points \n",
+ "\n",
+ " scipy.optimize.leastsq() minimizes:\n",
+ "\n",
+ " x = arg min(sum(func(y)**2,axis=0))\n",
+ " y\n",
+ "\n",
+ " so this should just be the distance from a point to the curve,\n",
+ " and it will square it and sum over the points\n",
+ " \"\"\"\n",
+ "\n",
+ " a0, a1, a2 = avec\n",
+ " \n",
+ " return (y - (a0 + a1*x + a2*x**2))/sigma"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 9,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "[-1.15667857 1.51771559 -0.01948624]\n"
+ ]
+ }
+ ],
+ "source": [
+ "# initial guesses\n",
+ "a0, a1, a2 = 1, 1, 1\n",
+ "\n",
+ "afit, flag = optimize.leastsq(resid, [a0, a1, a2], args=(x, y, sigma))\n",
+ "\n",
+ "print(afit)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 10,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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jx507twZgPz8fNxuN40bN660bFJSEvn5+RZVGprefPNNVq1axYoVK6o8pu3sHxs2bOD5559n9OjR3HPPPaxYsYLbbrsNt9vN4MGDvduyus8RbWffjRkzhqKiIjp16kRUVBQVFRU89NBDDBw4EPb/f0bb2e982a75+fm0aNGi0uMul4vExES/b3sFFQm6ESNG8O233/LZZ59ZXUrY2bRpE7fffjvz5s0jNjbW6nLClsfjoVu3bjz88MMAnHLKKXz77be88MILDB482OrywsZ///tfpk2bxuuvv84JJ5zA6tWrGTVqFK1atdJ2jiAa+jlMs2bNiIqKqnIUREFBAcnJyZbVFS5GjhzJhx9+yCeffELr1q299ycnJ1NaWsrOnTsrLa/tXjcrV65k27ZtnHrqqbhcLlwuFwsXLuSZZ57B5XKRlJSk7ewHLVu2JD09vdJ9xx9/PL/88gvs///M/u16KG3nuvn73//OmDFjuOqqqzjxxBMZNGgQd9xxBzk5OaDtHDC+bNfk5GS2bdtW6fHy8nJ27Njh922voHIYt9tN165dmT9/vvc+j8fD/PnzycjIsLS2UGYYBiNHjuTdd99lwYIFpKWlVXq8a9euREdHV9ru69ev55dfftF2r4NevXqxZs0aVq9e7b1069aNgQMHeq9rOx+9Hj16VDm8/ocffqBt27YApKWlkZycXGk7FxUVsWzZMm3nOiguLsbprPw1FRUVhcfjAW3ngPFlu2ZkZLBz505WrlzpXWbBggV4PB66d+/u34L8OjU3TLz55ptGTEyM8corrxhr1641brzxRqNx48ZGfn6+1aWFrJtvvtlISEgwPv30U2Pr1q3eS3FxsXeZm266yWjTpo2xYMEC48svvzQyMjKMjIwMS+sOB4ce9WNoO/vF8uXLDZfLZTz00EPGjz/+aEybNs2Ii4szXnvtNe8yEyZMMBo3bmy89957xjfffGNcfPHFOmy2jgYPHmwce+yx3sOT33nnHaNZs2bGXXfd5V1G27l+du3aZXz11VfGV199ZQDGE088YXz11VfGxo0bDcPH7dqnTx/jlFNOMZYtW2Z89tlnxnHHHafDk4Pp2WefNdq0aWO43W7j9NNPN5YuXWp1SSENqPYyZcoU7zJ79+41brnlFqNJkyZGXFyccemllxpbt261tO5wcHhQ0Xb2jw8++MDo3LmzERMTY3Tq1Ml48cUXKz3u8XiMcePGGUlJSUZMTIzRq1cvY/369ZbVG4qKioqM22+/3WjTpo0RGxtrtGvXzhg7dqxRUlLiXUbbuX4++eSTaj+TBw8ebBg+btft27cbV199tdGwYUMjPj7euO6664xdu3b5vVaHcWiLPxEREREb0RwVERERsS0FFREREbEtBRURERGxLQUVERERsS0FFREREbEtBRURERGxLQUVERERsS0FFREREbEtBRURERGxLQUVERERsS0FFREREbEtBRURERGxrf8HgOYpzIy40XUAAAAASUVORK5CYII=",
+ "text/plain": [
+ "
"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "fig, ax = plt.subplots()\n",
+ "ax.scatter(x,y)\n",
+ "ax.errorbar(x, y, yerr=sigma, fmt=\"o\", label=\"_nolegend_\")"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "our function to minimize"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 14,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "def resid(avec, x, y):\n",
+ " \"\"\" the residual function -- this is what will be minimized by the \n",
+ " scipy.optimize.leastsq() routine. avec is the parameters we \n",
+ " are optimizing -- they are packed in here, so we unpack to \n",
+ " begin. (x, y) are the data points \n",
+ " \n",
+ " scipy.optimize.leastsq() minimizes: \n",
+ " \n",
+ " x = arg min(sum(func(y)**2,axis=0)) \n",
+ " y \n",
+ " \n",
+ " so this should just be the distance from a point to the curve, \n",
+ " and it will square it and sum over the points \n",
+ " \"\"\"\n",
+ "\n",
+ " a0, a1 = avec\n",
+ "\n",
+ " # note: if we wanted to deal with error bars, we would weight each \n",
+ " # residual accordingly \n",
+ " return y - a0*np.exp(a1*x)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 15,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "1\n",
+ "[3.22621618 0.58391382]\n"
+ ]
+ }
+ ],
+ "source": [
+ "a0, a1 = 1, 1\n",
+ "afit, flag = optimize.leastsq(resid, [a0, a1], args=(x, y))\n",
+ "\n",
+ "print(flag)\n",
+ "print(afit)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 16,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAAAioAAAGdCAYAAAA8F1jjAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy80BEi2AAAACXBIWXMAAA9hAAAPYQGoP6dpAABg40lEQVR4nO3deXQUVcLG4V93ks6eQIAkQFb2HWQ1IIqCMIC4MYoKiMKIIjIgjgLjKKOOBvRzHBdURAcYFMFlQGURkWETQXZZRWUXSACBBBKyddf3R4eGhqwkne5O3uecPlBVt6pvpZL0m1v33jIZhmEgIiIi4oHM7q6AiIiISGEUVERERMRjKaiIiIiIx1JQEREREY+loCIiIiIeS0FFREREPJaCioiIiHgsBRURERHxWL7urkBZ2Ww2jh49SmhoKCaTyd3VERERkRIwDIOzZ89Sp04dzObC2028PqgcPXqU2NhYd1dDRERErsLhw4eJiYkpdLvXB5XQ0FDIP9GwsDB3V0dERERKID09ndjYWMfneGG8PqhcuN0TFhamoCIiIuJliuu2oc60IiIi4rEUVERERMRjKaiIiIiIx1JQEREREY+loCIiIiIeS0FFREREPJaCioiIiHgsBRURERHxWAoqIiIi4rEUVERERMRjKaiIiIiIx1JQkRJ55513aNWqleOZSklJSSxevLjIfZKTk+nQoQOhoaFERkZy++23s2fPnhJvv+DIkSMMGjSIGjVqEBgYSMuWLdm4cWOpjrNq1Sr69etHnTp1MJlMzJ8/v8A6F/de3mrKlCkkJCQQEBBAp06dWL9+fZHl//73v2MymZxeTZo0cSpjtVp55plnSExMJDAwkPr16/PCCy9gGIajTEm+b86ePcuYMWOIj48nMDCQzp07s2HDBqcyJb1+AJMmTcJkMjFmzJhSfpVExBMpqEiJxMTEMGnSJDZt2sTGjRu56aabuO2229i5c2eh+6xcuZKRI0eybt06li5dSm5uLj179iQjI6NE2wFOnz5Nly5d8PPzY/HixezatYtXX32V6tWrl/h9ADIyMmjdujVTpkwptL4leS9vNHfuXMaOHcvEiRPZvHkzrVu3plevXhw/frzI/Zo3b86xY8ccr++++85p++TJk3nnnXd466232L17N5MnT+bll1/mzTffdJQpyffNn/70J5YuXcqsWbPYvn07PXv2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8TpuvXH12muvYTab6d+/v9OEbyIiIiJUdFC5vBNiQEAAU6ZMKfaJqCIiIlI1Va2HEoqIiIhXUVARERERj6WgIiIiIh5LQUVEREQ8loKKiIiIeCwFFREREfFYCiqVyN///nfatGlTqn26devGmDFjKrwea9asoWXLlvj5+XH77beX6/uX1gMPPOD2OoiISME880lFclX+8pe/MGrUqFLt89///hc/Pz+X1akwY8eOpU2bNixevJiQkJAKec8DBw6QmJjIli1bnILU66+/jouezSkiImWkoFIJGIaB1WolJCSk1B/6ERERLqtXUfbu3csjjzxCTEyMW97/UuHh4e6ugoiIFEK3fjxQdnY2f/7zn4mMjCQgIIDrrruODRs2OLavWLECk8nE4sWLadeuHf7+/nz33XdX3HLJy8vjz3/+M9WqVaNGjRqMGzeOIUOGON3muPzWT0JCAi+99BJDhw4lNDSUuLg43nvvPaf6jRs3jkaNGhEUFES9evV45plnyM3NLdG5HThwAJPJxO+//87QoUMxmUzMmDGDGTNmOD1FG2D+/PmYTCbH8oXzmzVrFgkJCYSHh3PPPfdw9uxZRxmbzcbLL79MgwYN8Pf3Jy4ujhdffBGAxMREAK655hpMJhPdunWDAm79lPTrv2zZMtq3b09QUBCdO3dmz549JfoaiIhIyVXJoJKZm0lmbqZTc3+uNZfM3ExyrDkFlrUZtotlbfay2dbsEpUtraeeeorPP/+cmTNnsnnzZho0aECvXr04deqUU7nx48czadIkdu/eTatWra44zuTJk/noo4+YPn06a9asIT09nfnz5xf7/q+++irt27dny5YtPProo4wYMcLpQzg0NJQZM2awa9cuXn/9daZNm8Zrr71WonOLjY3l2LFjhIWF8a9//Ytjx44xYMCAEu1LfkvM/PnzWbBgAQsWLGDlypVMmjTJsX3ChAlMmjSJZ555hl27djF79myioqLgkqcff/vttxw7doz//ve/Bb5HSb/+Tz/9NK+++iobN27E19eXoUOHlvg8RESkhAwvl5aWZgBGWlpaifdpMaOF0WJGC+P387871k39carRYkYLY+KaiU5lO3zYwWgxo4Xx29nfHOv+s/M/RosZLYynVj7lVLbrx12NFjNaGL+c+sWx7tM9n5bqfM6dO2f4+fkZH330kWNdTk6OUadOHePll182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rvXUklKF6XlUIlIV6FPOi1waSoZ0SVBIERGRSk+fdCIiIuKxFFRERETEYymoiIiIiMdSZ1oXU4dHERGRq6cWFREREfFYCioiIiLisRRUpMxy8myO/89cc8BpWUREpCwUVKRMkhftou0LSx3Lk5fsockzi0letMut9RIRkcpBnWnlqiUv2sXUVfuvWG8zcKzX9P4iIlIWalGRq5KTZ2Pa6itDyqWmrd6v20AiIlImCipyVWatPeD0gMSC2Ax7ORERkauloCJX5eCpzHItJyIiUhAFFbkq8RFB5VpORESkIAoqclUGJyVgNhVdxmyylxMREblaCipyVSy+Zh7qmlhkmYe6JmLx1beYiIhcPQ1Plqt2YejxtNX7nTrWmk32kKKhySIiUlYKKlImE/o0Y0S3BrR53j7p27hejRnWtZ5aUkREpFzo00TK7NJQMqRLgkKKiIiUG32iiIiIiMdSUBERERGPpaAiIiIiHktBRURERDyWgoqIiIh4LAUVERER8VgKKiIiIuKxFFRERETEYymoiIiIiMfSFPpeJMjiy4FJfd1dDRERkQqjFhURERHxWAoqIiIi4rEUVERERMRjKaiIiIiIx1JQEREREY+loCIiIiIeS0FFREREPJaCioiIiHgsBRURERHxWAoqIiIi4rEUVERERMRjKaiIiIiIx1JQEREREY+loCIiIiIeS0FFREREPJaCioiIiHgsX3dXQLxfkMWXA5P6ursaIiJSCalFRURERDyWgoqIiIh4LAUVERER8VgKKiIiIuKxFFRERETEYymoiIiIiMdyWVB58cUX6dy5M0FBQVSrVq3AMocOHaJv374EBQURGRnJk08+SV5enquqJCIiIl7GZfOo5OTkcNddd5GUlMQHH3xwxXar1Urfvn2Jjo7m+++/59ixY9x///34+fnx0ksvuapaIiIi4kVMhmEYrnyDGTNmMGbMGM6cOeO0fvHixdxyyy0cPXqUqKgoAN59913GjRvHiRMnsFgsJTp+eno64eHhpKWlERYW5pJzEBERkfJV0s9vt/VRWbt2LS1btnSEFIBevXqRnp7Ozp07C90vOzub9PR0p5eIiIhUTm4LKikpKU4hBXAsp6SkFLpfcnIy4eHhjldsbKzL6yoiIiLuUaqgMn78eEwmU5Gvn376yXW1BSZMmEBaWprjdfjwYZe+n4iIiLhPqTrTPvHE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bt3qeLVv356BAweydevWK0IK7rqGLuum6+HmzJlj+Pv7GzNmzDB27dplDB8+3KhWrZqRkpJiGIZhDB482Bg/fryj/Jo1awxfX1/j//7v/4zdu3cbEydONPz8/Izt27e78SyKVtpzfO6554wlS5YYe/fuNTZt2mTcc889RkBAgLFz5043nkXhzp49a2zZssXYsmWLARj//Oc/jS1bthgHDx40DMMwxo8fbwwePNhRft++fUZQUJDx5JNPGrt37zamTJli+Pj4GF9//bUbz6JwpT2/1157zZg/f77xyy+/GNu3bzdGjx5tmM1m49tvv3XjWRRuxIgRRnh4uLFixQrj2LFjjldmZqajjDf/HF7N+Xnbz+D48eONlStXGvv37ze2bdtmjB8/3jCZTMY333xjGF5+/YyrOD9vu34FuXzUjydcwyobVAzDMN58800jLi7OsFgsRseOHY1169Y5tt1www3GkCFDnMp/8sknRqNGjQyLxWI0b97cWLhwoRtqXTqlOccxY8Y4ykZFRRl9+vQxNm/e7KaaF+/CcNzLXxfOaciQIcYNN9xwxT5t2rQxLBaLUa9ePWP69Oluqn3xSnt+kydPNurXr28EBAQYERERRrdu3Yz//e9/bjyDohV0boDTNfHmn8OrOT9v+xkcOnSoER8fb1gsFqNWrVpG9+7dHR/ihpdfP+Mqzs/brl9BLg8qnnANTYb9B0pERETE41TJPioiIiLiHRRURERExGMpqIiIiIjHUlARERERj6WgIiIiIh5LQUVEREQ8loKKiIiIeCwFFREREfFYCioiIiLisRRURERExGMpqIiIiIjHUlARERERj/X/XRQBX8TkzYQAAAAASUVORK5CYII=",
+ "text/plain": [
+ "
"
+ ]
+ },
+ "execution_count": 16,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "ax.plot(x, afit[0]*np.exp(afit[1]*x),\n",
+ " label=r\"$a_0 = $ %f; $a_1 = $ %f\" % (afit[0], afit[1]))\n",
+ "ax.plot(x, a0_orig*np.exp(a1_orig*x), \":\", label=\"original function\")\n",
+ "ax.legend(numpoints=1, frameon=False)\n",
+ "fig"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "```{note}\n",
+ "What about uncertainties in both $x$ and $y$? SciPy has an\n",
+ "[orthogonal distance regression](https://docs.scipy.org/doc/scipy/reference/odr.html) implementation based on ODRPACK for this.\n",
+ "```"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## FFTs"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "[Fourier transforms](https://en.wikipedia.org/wiki/Fourier_transform) convert a physical-space (or time series) representation of a function into frequency space. This provides an equivalent representation of the data with a new view.\n",
+ "\n",
+ "The FFT and its inverse in NumPy use:\n",
+ "\n",
+ "$$F_k = \\sum_{n=0}^{N-1} f_n e^{-2\\pi i nk/N}$$\n",
+ "\n",
+ "$$f_n = \\frac{1}{N} \\sum_{k=0}^{N-1} F_k \n",
+ " e^{2\\pi i n k/N}$$\n",
+ " \n",
+ "\n",
+ "Both NumPy and SciPy have FFT routines that are similar. However, the NumPy version returns the data in a more convenient form."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "```{tip}\n",
+ "It's always best to start with something you understand---let's do a simple sine wave. Since our function is real, we can use the rfft routines in NumPy---the understand that we are working with real data and they don't return the negative frequency components.\n",
+ "```"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "```{important}\n",
+ "FFTs assume that you are periodic. If you include both endpoints of the domain in the points that comprise your sample then you will not match this assumption. Here we use `endpoint=False` with `linspace()`\n",
+ "```"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "```{note}\n",
+ "For real-valued data, we'll use `np.fft.rfft()`, which will return N/2 complex values given N real samples.\n",
+ "\n",
+ "To get the frequencies, we can use `np.fft.rfftfreq()`, which will return dimensionless frequencies of the form\n",
+ "$0, 1/N, 2/N, 3/N, ...$. We know that the shortest lowest frequency corresponds to a single wavelength in the domain, so physically, $1/N$ corresponds to a frequency $1/L$, where $L$ is the domain size. This means that\n",
+ "we can convert the frequencies by dividing by $\\Delta x = L/N$.\n",
+ "```"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "To make our life easier, we'll define a function that plots all the stages of the FFT process"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 17,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "def plot_FFT(xx, f):\n",
+ "\n",
+ " npts = len(xx)\n",
+ " dx = xx[1] - xx[0]\n",
+ "\n",
+ " # Forward transform: f(x) -> F(k)\n",
+ " fk = np.fft.rfft(f)\n",
+ "\n",
+ " # Normalization -- the '2' here comes from the fact that we are\n",
+ " # neglecting the negative portion of the frequency space, since\n",
+ " # the FFT of a real function contains redundant information, so\n",
+ " # we are only dealing with 1/2 of the frequency space.\n",
+ " #\n",
+ " # technically, we should only scale the 0 bin by N, since k=0 is\n",
+ " # not duplicated -- we won't worry about that for these plots\n",
+ " norm = 2.0 / npts\n",
+ "\n",
+ " fk = fk * norm\n",
+ "\n",
+ " fk_r = fk.real\n",
+ " fk_i = fk.imag\n",
+ "\n",
+ " # rfftfreq returns the frequencies as 0, 1/N, 2/N, 3/N, ...\n",
+ " k = np.fft.rfftfreq(npts)\n",
+ "\n",
+ " # to make these dimensional, we need to divide by dx.\n",
+ " kfreq = k / dx\n",
+ "\n",
+ " # Inverse transform: F(k) -> f(x) -- without the normalization\n",
+ " fkinv = np.fft.irfft(fk/norm)\n",
+ "\n",
+ " # plots\n",
+ " fig, ax = plt.subplots(nrows=4, ncols=1)\n",
+ " \n",
+ " ax[0].plot(xx, f)\n",
+ " ax[0].set_xlabel(\"x\")\n",
+ " ax[0].set_ylabel(\"f(x)\")\n",
+ "\n",
+ " ax[1].plot(kfreq, fk_r, label=r\"Re($\\mathcal{F}$)\")\n",
+ " ax[1].plot(kfreq, fk_i, ls=\":\", label=r\"Im($\\mathcal{F}$)\")\n",
+ " ax[1].set_xlabel(r\"$\\nu_k$\")\n",
+ " ax[1].set_ylabel(\"F(k)\")\n",
+ "\n",
+ " ax[1].legend(fontsize=\"small\", frameon=False)\n",
+ "\n",
+ " ax[2].plot(kfreq, np.abs(fk))\n",
+ " ax[2].set_xlabel(r\"$\\nu_k$\")\n",
+ " ax[2].set_ylabel(r\"|F(k)|\")\n",
+ "\n",
+ " ax[3].plot(xx, fkinv.real)\n",
+ " ax[3].set_xlabel(r\"$\\nu_k$\")\n",
+ " ax[3].set_ylabel(r\"inverse F(k)\")\n",
+ "\n",
+ " f = plt.gcf()\n",
+ " \n",
+ " f.set_size_inches(10,8)\n",
+ " plt.tight_layout()\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Now we'll test it on $f(x) = \\sin(2\\pi \\nu_0 x)$, where $\\nu_0$ is a frequency we set."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 18,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "def single_freq_sine(npts):\n",
+ "\n",
+ " # a pure sine with no phase shift will result in pure imaginary\n",
+ " # signal\n",
+ " f_0 = 0.2\n",
+ "\n",
+ " xmax = 10.0/f_0\n",
+ " \n",
+ " xx = np.linspace(0.0, xmax, npts, endpoint=False)\n",
+ "\n",
+ " f = np.sin(2.0*np.pi*f_0*xx)\n",
+ "\n",
+ " return xx, f"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 17,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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9dVXAwBefPFF5Obm4u2338Y3vvENRcdLpJrhC7r/f4ATSkREREREemKYTHd/HT16FDU1NVi0aJF8W1paGubNm4eNGzdqOjaimBoyGlj+NnDlH4HsCVqPhoiIiIiIohgm091fNTU1AIDc3Nwet+fm5sr/rTderxder1f+d2trq4KjJIqR0RdrPQIiIiIiIuqFppnue+65BxaL5Yw/+/fvV3VMjz76KNLS0uSfoqIiVV+fiIiIiIiIzEPTTPd//ud/4pvf/OYZ7zNq1KgBPXdeXh4AoLa2Fvn5+fLttbW1mDFjxmkfd++992LFihXyv1tbWxl4ExERERER0YBoGnRnZ2cjOztbkeceOXIk8vLysHr1ajnIbm1txebNm8/YAd3lcsHlcikyJiIiIiIiIoovhmmkVl5ejpKSEpSXlyMYDKKkpAQlJSVoa2uT7zNhwgS89dZbAACLxYK77roLDz/8MN59913s2rULN998MwoKCrBs2TINfxMiIiIiIiKKF4ZppHb//ffjhRdekP89c+ZMAMCaNWtw0UUXAQAOHDiAlpYW+T4/+clP0N7ejttvvx3Nzc04//zz8cEHH8DtdmvwGxAREREREVG8sUiSJGk9CD1raWlBeno6KioqkJqaqvVwiIiIiIiISAdE/6/m5makpaWd9n6GyXRrxePxAACbqREREREREdEpPB7PGYNuZrrPIhQKoaqqCikpKbBYLFoPp1dihoXZ+PjFY4B4DBCPAeIxEN/49yceA+qTJAkejwcFBQWwWk/fLo2Z7rOwWq0YOnSo1sPok9TUVH7A4hyPAeIxQDwGiMdAfOPfn3gMqOtMGW7BMN3LiYiIiIiIiIyGQTcRERERERGRQhh0m4DL5cLKlSvhcrm0HgpphMcA8RggHgPEYyC+8e9PPAb0i43UiIiIiIiIiBTCTDcRERERERGRQhh0ExERERERESmEQTcRERERERGRQhh0ExERERERESmEQbdBPPnkkxgxYgTcbjfmzZuHLVu2nPH+r7/+OiZMmAC3242pU6di1apVqo2VlNGfY+CZZ57BBRdcgIyMDGRkZGDRokVnPWZI//r7PSC88sorsFgsWLZsmeJjJGX19xhobm7GnXfeifz8fLhcLowbN47nAwPr79//iSeewPjx45GQkICioiL86Ec/QldXl2rjpdhat24drrzyShQUFMBiseDt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RqOnWOjvMbBw4cIz3p/UY5FYY0RERERERESkCK7pJiIiIiIiIlIIg24iIiIiIiIihTDoJiIiIiIiIlIIg24iIiIiIiIihTDoJiIiIiIiIlIIg24iIiIiIiIihTDoJiIiIiIiIlIIg24iIiIiIiIihTDoJiIiIiIiIlIIg24iIiLq1RVXXIFbbrlF/veaNWuQlZWFYDCo6biIiIiMhEE3ERER9aqwsBDHjx+X/71w4UJ0dnZi06ZNmo6LiIjISBh0ExERUa8KCwtRWVkp/9tqtSIhIQF1dXV45513cNddd2k6PiIiIiNg0E1ERES9OjnTXVJSgubmZsyfPx87d+7E9OnTNR0fERGRETDoJiIiol4VFhaira0Nra2tCIVC+NGPfoQbb7wReXl5ctDd2tqKq6++Gk8//bTWwyUiItIlu9YDICIiIn0qLCwEAFRWVuK5555DTU0N3nnnHQDAvn37kJCQgMsvvxy//OUvsXjxYo1HS0REpE8WSZIkrQdBRERE+lNfX4/s7GxcdtllOHjwINatW4fCwkJ0dnaioKAAI0aMwN///ndMnjxZ66ESERHpFsvLiYiIqFdZWVlwuVwoKyvD2rVr5cz37t27MX/+fIRCIdjtLJojIiI6E54piYiI6LS6urpOuW3nzp244IILsGTJEtxwww1Yu3YtkpOTNRkfERGR3jHTTURERP2yc+dOTJkyBbNmzcIdd9yBb33rW1oPiYiISLe4ppuIiIiIiIhIIcx0ExERERERESmEQTcRERERERGRQhh0ExERERERESmEQTcRERERERGRQhh0ExERERERESmEQTcRERERERGRQhh0ExERERERESmEQTcRERERERGRQhh0ExERERERESmEQTcRERERERGRQhh0ExERERERESmEQTcRERERERGRQhh0ExERERERESmEQTcRERERERGRQhh0ExERERERESmEQTcRERERERGRQuxaD0DvQqEQqqqqkJKSAovFovVwiIiIiIiISAckSYLH40FBQQGs1tPnsxl0n0VVVRWKioq0HgYRERERERHpUEVFBYYOHXra/26ooHvdunX47W9/i23btqG6uhpvvfUWli1bdsbHfPbZZ1ixYgX27NmDoqIi3HffffjmN7/Z59dMSUkBIm9kamrqoH8HIiIiIiIiMr7W1lYUFRXJMePpGCrobm9vx/Tp0/Gt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JKCxsRFerxejRo3C7bffju9973tISUlRcihEpiCXl/cl6Jb36mamm4iIiIhIK4qVl1911VW47rrrMGLECHz00UfweDxoaGhAZWUlOjo6cOjQIdx3331YvXo1xo0bh48//lipoRCZRm0f9ugWciPdzetYXk5EREREpBnFMt1Lly7FP//5Tzgcjl7/+6hRozBq1Cjccsst2Lt3L6qrq5UaCpFpiPLyM+3RLYj71HCvbiIiIiIizSgWdH/3u9/t0/0kScKkSZMwadIkpYZCZBoia92noFsuL+eabiIiIiIirajSvfy3v/1tr7cHg0HccMMNagyByPB8gRDq23xAX8vLI4F5nacLoZCk+PiIiIiIiOhUqgXdf/nLX3rcFgwG8Y1vfAMlJSX9eq4nn3wSI0aMgNvtxrx587Bly5bT3vf555+HxWLp8eN2nz1DSKRHJ9rCGWuHzYLMJOdZ758TWdPtD0po6vApPj4iIiIiIjqVKkH3+++/jx//+Md44403AACBQADXXHMN9uzZgzVr1vT5eV599VWsWLECK1euxPbt2zF9+nQsWbIEdXV1p31Mamoqqqur5Z+ysrKY/E5EahNdyHNS3LBYLGe9v8NmRVayM/JYlpgTEREREWlBlaD7nHPOwT//+U9861vfwrvvvouvf/3rOHDgANasWYO8vLw+P8/vf/97fOc738Gtt96KSZMm4amnnkJiYiL++te/nvYxFosFeXl58k9ubm6MfisiddXKTdTOXlou5KRw2zAiIiIiIi2pEnQDwCWXXIIXX3wRX//613H06FGsXbu2XwGwz+fDtm3bsGjRIvk2q9WKRYsWYePGjad9XFtbG4YPH46ioiJcffXV2LNnzxlfx+v1orW1tccPkR6IwDkvre9LJPK4VzcRERERkaYU617+ta99rdfbs7OzkZ6ejttvv12+7c033zzr89XX1yMYDJ4SqOfm5mL//v29Pmb8+PH461//imnTpqGlpQWPP/44FixYgD179mDo0KG9PubRRx/FAw88cNbxEKmt1hMuERfZ674QWXGWlxMRERERaUOxoDstLa3X25csWaLUS55i/vz5mD9/vvzvBQsWYOLEifjzn/+Mhx56qNfH3HvvvVixYoX879bWVhQVFakyXqIzqe3HHt2CCNBrmOkmIiIiItKEYkH3c889F9Pny8rKgs1mQ21tbY/ba2tr+7wu3OFwYObMmTh8+PBp7+NyueBy9X3NLJFaaj2ivLzvx6coL69j0E1EREREpAnV1nQPltPpxOzZs7F69Wr5tlAohNWrV/fIZp9JMBjErl27kJ+fr+BIiZRRIzLdAygvZ6abiIiIiEgbigXdl112GTZt2nTW+3k8Hvz617/Gk08+edb7rlixAs888wxeeOEF7Nu3D9///vfR3t6OW2+9FQBw8803495775Xv/+CDD+Kjjz5CaWkptm/fjptuugllZWW47bbbBvnbEamvLrIuO7cfjdREKTrXdBMRERERaUOx8vJrrrkGX//615GWloYrr7wSc+bMQUFBAdxuN5qamrB3716sX78eq1atwtKlS/Hb3/72rM953XXX4cSJE7j//vtRU1ODGTNm4IMPPpCbq5WXl8Nq7Z5HaGpqwne+8x3U1NQgIyMDs2fPxoYNGzBp0iSlfm0iRbR7A/B4A0A/13SL+za0e+EPhuCwGaa4hYiIiIjIFCySJElKPbnX68Xrr7+OV199FevXr0dLS0v4RS0WTJo0CUuWLMG3v/1tTJw4UakhDFprayvS0tLQ0tKC1NRUrYdDcar0RBsu+d1aJDlt2PPgZX1+XCgkYfwv/g/+oIQN91yCgvQERcdJRERERBQv+horKpbpRqQp2U033YSbbroJANDS0oLOzk4MGTIEDodDyZcmMpXaAZSWA4DVakFOihvHmztR29rFoJuIiIiISGWq1pqmpaUhLy+PATdRP9V5+t9ETcjhXt1ERERERJpRNOi+8MIL0dzcLP/73XffRWdnp5IvSWRKcufy1P5vZycC9Vp2MCciIiIiUp2iQff69evh8/nkf990002orq5W8iWJTGmg5eWI2qubQTcRERERkfpULS9XsGcbkamJgHkw5eXcq5uIiIiISH3cP4jIAOSgux/bhQkiUK/jmm4iIiIiItUp2r0cAD788EOkpaUBAEKhEFavXo3du3f3uM9VV12l9DCIDK020kgtL63/a7pZXk5EREREpB3Fg+5bbrmlx7+/+93v9vi3xWJBMBhUehhEhiVJkrymO2cA5eW5LC8nIiIiItKMokF3KBRS8umJ4kJzhx++QPizlDOQ7uWRknRPVwAdvgASnYrPtRERERERUQTXdBPpnCgtz0xywmW39fvxyS47Ep3hx3FdNxERERGRuhRLeY0cORIWi6Xfj7vr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Xtq7d690++23S+np6VJNTY0kSZK0fPly6Z577pHv/8UXX0h2u116/PHHpX379kkrV66UHA6HtGvXLg1/CxqM/h4Djz32mOR0OqU33nhDqq6uln88Ho+GvwUNRn+PgZOxe7nx9fcYKC8vl1JSUqQf/OAH0oEDB6T33ntPysnJkR5++GENfwsaqP7+/VeuXCmlpKRIL7/8slRaWip99NFH0ujRo6Vrr71Ww9+CBsPj8UjFxcVScXGxBED6/e9/LxUXF0tlZWWSJEnSPffcIy1fvly+f2lpqZSYmCjdfffd0r59+6Qnn3xSstls0gcffKDhb0GD0d9j4B//+Idkt9ulJ598ssf1YHNzs4a/RXxi0G0Q//3f/y0NGzZMcjqd0ty5c6VNmzbJ/23hwoXSLbfc0uP+r732mjRu3DjJ6XRKkydPlt5//30NRk2x1J9jYPjw4RKAU35Wrlyp0egpFvr7PRCNQbc59PcY2LBhgzRv3jzJ5XJJo0aNkh555BEpEAhoMHKKhf78/f1+v/TLX/5SGj16tOR2u6WioiLpjjvukJqamjQaPQ3WmjVrej23i7/7LbfcIi1cuPCUx8yYMUNyOp3SqFGjpOeee06j0VMs9PcYWLhw4RnvT+qxSKwxIiIiIiIiIlIE13QTERERERERKYRBNxEREREREZFCGHQTERERERERKYRBNxEREREREZFCGHQTERERERERKYRBNxEREREREZFCGHQTERERERERKYRBNxEREREREZFCGHQTERERERERKYRBNxEREfXqiiuuwC233CL/e82aNcjKykIwGNR0XEREREbCoJuIiIh6VVhYiOPHj8v/XrhwITo7O7Fp0yZNx0VERGQkDLqJiIioV4WFhaisrJT/bbVakZCQgLq6Orzzzju46667NB0fERGRETDoJiIiol6dnOkuKSlBc3Mz5s+fj507d2L69Omajo+IiMgIGHQTERFRrwoLC9HW1obW1laEQiH86Ec/wo033oi8vDw56G5tbcXVV1+Np59+WuvhEhER6ZJd6wEQERGRPhUWFgIAKisr8dxzz6GmpgbvvPMOAGDfvn1ISEjA5Zdfjl/+8pdYvHixxqMlIiLSJ4skSZLWgyAiIiL9qa+vR3Z2Ni677DIcPHgQ69atQ2FhITo7O1FQUIARI0bg73//OyZPnqz1UImIiHSL5eVERETUq6ysLLhcLpSVlWHt2rVy5nv37t2YP38+QqEQ7HYWzREREZ0Jz5RERER0Wl1dXafctnPnTlxwwQVYsmQJbrjhBqxduxbJycmajI+IiEjvmOkmIiKiftm5cyemTJmCWbNm4Y477sC3vvUtrYdERESkW1zTTURERERERKQQZrqJiIiIiIiIFMKgm4iIiIiIiEghDLqJiIiIiIiIFMKgm4iIiIiIiEghDLqJiIiIiIiIFMKgm4iIiIiIiEghDLqJiIiIiIiIFMKgm4iIiIiIiEghDLqJiIiIiIiIFMKgm4iIiIiIiEghDLqJiIiIiIiIFMKgm4iIiIiIiEghDLqJiIiIiIiIFMKgm4iIiIiIiEghDLqJiIiIiIiIFMKgm4iIiIiIiEghdq0HoHehUAhVVVVISUmBxWLRejhERERERESkA5IkwePxoKCgAFbr6fPZDLrPoqqqCkVFRVoPg4iIiIiIiHSooqICQ4cOPe1/Z9B9FikpKUDkjUxNTdV6OERERERERKQDra2tKCoqkmPG0zF90L1u3Tr89re/xbZt21BdXY233noLy5Yt6/PjRUl5amoqg24iIiIiIiLq4WzLkE3fSK29vR3Tp0/Hk08+qfVQiIiIiIiIKM6YPtN9+eWX4/LLL9d6GBTHJEkC+jADRkREFEuSJPHcQ0SkA6bPdPeX1+tFa2trj594UtXcif98bQfe3VElB4s0cE3tPnz1Txuw9I/rUdfapfVwTOHDPTVY8WoJyhratR4KEcXQG9sqce+bu1DV3Kn1UEzhnZLjmPXQx/jDJ4e0HoopeLr8ePT/9uEPnxzi9RER9ZvpM9399eijj+KBBx7QehiakCQJK14rwabSRvxzeyU+3F2Dh5ZNQWaSU+uhGVKXP4jbXtyKkopmAMC3XvgSr9w+H8kufuwGoqXTjwfe3YM3i48DAI7Ut+PN7y+AzcoszkDUtXZha1kTth5rwq7jzbhwbDb+/StjtR6WYTS1+3DXqyVw2CyYNTwDc4ZnYtrQNLgdNq2HZki7Klvwkzd2ICQB7+2swgNXTcZXZxYySztA6w/V4z9f24FASMJ/fXIQmUkOLJ8/QuthGdaGI/W4+/WdOB6ZEBo+JBHLZhZqPSxDCgRD2FftwbayRmwta0Jtaxce+epUjMs9cxMq6vZOyXG8sOEYxuelYs7wDMwZkYFhmYn8vtQ5ixRH03UWi+WsjdS8Xi+8Xq/8b9GRrqWlxfSN1F7bWoGfvLETTrsVoZCEQEhCdooLv/76VFwyIVfr4RlKMCThzn9sxwd7apDqtsNhs6Kh3YeF47Lx7C1z4LCxyKQ/1h+qx91v7EB1SxesFsBpt6LLH8Ivr5yEb543UuvhGUJLpx//2lGFrccasa28CRWNPbOJFgvwwX9ciPF5vPDpi0fe34tnPj/a4zaHzYLJBWmYMzwD543NwkXjsnkR1AeBYAhXP/kF9lS1IslpQ7svCABYMjkXv/rqVAxJdmk9REPZV92Ka57aiDZvAKOyklBa3w6rBfjz8jlYPInn8v7o8gfxmw8O4K9fhD/r4vjMTHJi9YqFyGBSok9KKpqxel8ttpU1oaSiGR2Rz7hwwdgs/O3b8zQbn5G0dvlxwa/XoKXT3+P2rGQXZg9Px5zhmbhiWj4K0xM0G2O8aW1tRVpa2lljRV75n8TlcsmdyuOpY/kJjxePvL8PAPDjS8fhrTvOw9icZJzwePGt57fi3jd3os0b0HqYhvHw+3vxwZ4aOG1WPHPzHPzlm+fA7bBi7cETuO+t3SxN66NOXxC/fHcPbvrLZlS3dGHEkES8/r0FuG/pJADAbz88wFLUPvrJGztw39u78XZJFSoaO2G1AJPyU7H83OGYOzITkgT88VOWofbFCY8Xf9tUBgC49bwRuHxKHrJTXPAHJZRUNOPZ9Udx63NfYs2BOq2Hagh//eIo9lS1Ii3BgU9/fBHuXjIeDpsFH+6pxZIn1uGjPTVaD9Ewqls6cetzX6LNG8DckZlY9R8X4BvnFCEkAf/+8nYUlzdpPUTD2FnZjKV//FwOuG+YNwwb7vkKxuemoLHdh4cj10x0ZmUN7fh//7sB//3pYWw40oAOXxCpbjsuGp+NH14yBnarBZ8fqse2skath2oIL3xxDC2dfozMSsLtF47C7OEZcNqsqG/z4sM9tXhk1T7c9OxmhEK8ztQb1rkSAOCh9/aipdOPyQWp+NZ5I2G3WfGvfz8fv/voAJ5dfxQvb6nA+sP1+N01MzB3ZKbWw9W1Zz8vxXNfHAMAPH7tdMwbNQQA8N/Xz8J3/7YVr26tQGFGAn7IUt4zKqloxopXS1BaH167vfzc4bj3iglIdNoxsygdbxcfx9ayJvzi7d149pY5zCieQWVTBz7eWwsA+MHFYzBvVCZmFKUjxe0AIpmxy//wOVbtqsaBGg+z3Wfx9Loj6PKHMKMoHff/2yRYLBZIkoTKpk5sLWvEP7cdx/rD9Xjui2OsEjqLisYO/P7jgwCAny+diNxUN+68eAwuGp+NFa/uwIFaD27/2zZcM3so7r9yknzM0qlau/z45l+/RE1rF8bkJOOZ5XPgdtjw8LIpqGntwmcHTuC2F7bizTsWYPiQJK2Hq1uBYAj/s+Yw/vvTwwiGJOSkuPDr/zcNF4/PAQA8+vWp+Pr/bsA/t1fia7MKcd6YLK2HrGt/31SGQEjChLwU3Dx/BGYPz8DYnGRYI0vD6jxevPJlBZ745BCz3WfR2uXHs+vDk0A/WjwOV00vACIVGbuPt2BrWROe/PQwjta3Y+2hE/IxS/pg+kx3W1sbSkpKUFJSAgA4evQoSkpKUF5ervXQdGPNgTq8u6MKVgvw2NemwR4pfXY7bPj50kl4+TvnYmhGAioaO3HTXzajsqlD6yHr1qpd1XhkVXj2+97LJ8hfiACweFIuHrh6CgDg9x8fxBvbKjUbp97Vt3lx4zObUFrfjrxUN1781lw8tGwKEp3heUKr1YJHvzYVDpsFq/fX4f92MxN2Ji9tLkdIAs4fk4UfLxmPC8Zm9wheJuan4vIpecx290F0lvuuRWPlyR6LxYKizER8deZQPPq1qbBYgM8P1eNoPRv+nY4kSfj527vR5Q/h3FGZuGb2UPm/TS5Iw7v/fh6+u3AULBbg9W2V+NlbuzUdr575AiF8/+/bcKDWg+wUF56/9RykJYY/43abFU/eMAtTClPR0O7DN5/7Eo3tPq2HrFt/XleKJz45hGBIwr9Ny8dHP7qwR/Aya1gGbj53OADgZ2/tQpc/eIZni29d/iBe2xq+1rl7yXjcMG8YxuelyAE3ANx5MbPdfSWy3GNykrF0ar58u9thw5wRmfjewtG4Zk4RAODvG8s0HCn1xvRB99atWzFz5kzMnDkTALBixQrMnDkT999/v9ZD04V2bwD3RS5kvnXeSEwdmnbKfc4dNQQf3HUhphelwxcI4Z2SKg1Gqn9fHmvEXa+WQJKAm+cPx+0XjjrlPsvPHY7vLRwNALjnnzvx+aETGoxU//61owrtviAm5KXgw7suxIXjsk+5z9jcFHz/ojEAgJXv7kFLh7+XZyJvIIhXv6wAANwUuVDsjai8ENlu6l10lnthL8clABRlJsoX6f/YxAuf03mnpArrDp6A027Fr7469ZRqFZfdhnsvn4gXbp0LAPhgdzWaOxgsnkySJNzzz5344nADEp02PPfNczA0I7HHfZJcdvz1m+egMD0BR+vbcdsLXzJY7IUkSfL35c+umID/uWEW0hNPXbd992UTkJ/mRllDB/6wmhOVp/OvHVVo6fRjaEYCLjpN1rUoMxH/LzLh9gQ77Z9WdJb7h18Ze9omsjedOwwA8OmBOlQ0MkmmJ6YPui+66CJIknTKz/PPP6/10HThvz4+iOPNnShMT8CPFo877f2SXXbcNC/8QX6r+DjXJJ+krKEd33lxK3yBEBZPysXKKyefttz5J0vG46rpBQiEJHz/79txsJYBzsnejnQov37uMDlb05s7LhqNUdlJOOHx4rEP9qs4QuP4v101aGj3IT/NjUUTT19qxmz32Z0uy92b5ZEJjte2VqDTx+DmZE3tPjz43l4AwA8vGYNR2cmnve+F47IxMT8V/qCEVbtY1XKyJz45hDeLj8NmteBPN87ClMJTJ88BICfFjRe+dQ7SEhzYXt6Mu14p4bn8JNvLm1He2IEkpw3Lzz19t/dklx0PRirXnl5Xin3V8bW9bF+J78sb5w0/404jzHaf3emy3CcblZ2MC8ZmQZKAf2xmVa+emD7optPbVdkiNwh5+KtTkHSWrawum5IHl92Kw3Vt2FPFE0y0p9aWornDjxlF6fjjN2ae8eRitVrw22um4dxRmWjzBvA/nx5Wdax6V3qiDTsqW2CzWrB02ulPLIiUVD361akAgJe3lGPLUZ6sT/bixnB/gRvmDpOXjpxOdLabk0Gn6kuWW7hwXDaKMhPQ2hXAv3awOuhkj6zah8Z2H8bnpuD2C0ef9f7LZoSX6ogJOQpr6fTjT5+FzyG/+uqU02YThTE5KXjm5jlw2qz4YE8NdlS2qDRSYxDH15LJeUhwnnn7v8WTcnH5lDwEQxLueXMXgmxc1cOOimbsrGyB02bFtXOGnvG+zHafmaePWW7hpqhJX1a06AeD7jgVCIZwz5s7EZKAq6YX9KnZQorbgUWR7UZ44dMtGJLw8d5w9uU/Lx131hM1ImWTdy+ZAABYs78O3gC/FIW3I8sXLhybhaw+bBU0b9QQXD83vIbp3jd38r2Msvt4C7aXN8Nhs+C6yHt0Jj2y3SyZ7CE6y/0fZ8lyA4DNasFN88IXPi9uOsaMYpQvDtfjjW2VsFiAX31tKpz2s1+KXDWjABYLsOVYI0smo6zZXwd/UMKYnGRcd86wPj1m7shMLJ4cPpd/yM7wMl8ghPd2hs8/fd2D+4GrJiPFbceOimZ5gpPCXoysKf63afl92vavZ7abXfajvbAhnOUenZ10xiy38JUJOShIc6Ox3YdVu6pVGSOdHYPuOBW9Rcsv/m1Snx/31RnhE9E7O6o4qxuxrawJ9W0+pLrtODfSqbwvZhalIyfFBY83gA1HGhQdo1FIkiRP6PT1ogcA7rlsIrKSXThyoh1Prjmi4AiN5e+RIPGyKfnISXH36TEi2/0+s909iCz39KJ0XHSWLLdwzZwiOO1W7D7eipKKZsXHaARd/iB+9tYuIFKCP3t4Rp8el5+WgPmR79d3WTkg+yDSRPKyyXn9epy4/4e7azghFLHu4Ak0dfiRneLCgtF9O5fnpLpxz+XhCfTffngAx7mFJRBZPvKvyATGTfNP30skWlFmIr4+K5zt5jr5bp4uP575vO9ZbkSaJ94QWRL6N/YV0Q0G3XHIHwzJJc0/v2IislPOPgMpXDguGxmJDpzweLHhSL2CozQOkSlYNDEXjrOU70azWi24NJJt4D60YdHr6S6d1PeLyLREBx64ajIQCY64hjZcdvp2SXgCY/kZGqidjNnuU/VnLXe0zCQnrpwWLovmhU/YOyXHUdbQgbxUN+5eMr5fjxUTcewrEtblD2LtwXAzziX9DLovGp8Np82K0vp2HK5rU2iExvJW5PvyqukFZ12KE+36c4bhnBEZ6PAF8eznpQqO0Dhe31YBXyCEKYWpmFmU3ufHiWz3uoMnmO2OiM5y/9u0gj48Iuy6c4bBYbOguLwZu49zGYkeMOiOQ9vLmtDaFUBGogNfn33mdTYnc9qt8of+LZaYQ5IkOdNwaT8vehB1ofTRnlpWDkSvp5ty9vV0J7tiah4K0tzo8oewqZSVA//cVokufwgT8lJwzoi+ZRMFZrt7GkiWW1geyfK8t7Oa2zQB+HR/HRBpktjfPbfZV6SndQdPoNMfRGF6AqYUpvbrsSluB84fG95f+gNuuQhPlx+f7K0FAHy1H1VWiEygf/v88G4layLHdzwLhST8fVO4gdfyc4f3eZISAIYNYbY72kCy3EJ2iguXTwmXov+N24fpAoPuOPRZZGZ84bjsfn2AhWUzw0H3h7tr4j6juKeqFcebO+F2WM/aWKk3544aglS3HQ3tvrif1fUHo9bTzejfRQ8i+yRfNCHcm+CzA/F94RO+6AmfZG/q50UPmO3uYaBZbmH60DRMLUyDLxDCa1srFBqlMfgCIXxxODwhdvGE/n9fprodWDSRfUWED/aICd/cfh+XALBErOvey6D7g9018AZCGJ2dhMkF/ZvAAIDzxgyBw2bBsYYOHK1vV2SMRrH20AmUN3Yg1W3HVdP7fy5ntrvbQLPcgpj0fWfHcW6rqgMMuuOQmIm9eMLZm6f1ZtawDBRlJqDdF8TH+2pjPDpjEaXlC8dl9zszCwAOm1W+iIz3bMNA1tOdTDQEXHPgRFyXn2440oDS+nYku+z9WhsfLTrbfSiOs93PfF464Cw3IpNB4sLn75vK4rqiZWtZI9q8AWQlOzGloPdtrc5GHM/x3lfEHwxh9b7wuby/67mFRRNzYbUAu4+3xn1zOrEU56szCwc0gZHiduCcEZkAJ33lrOo1c4oGdF3EbHdYmzcw4Cy3MGd4BibkpaDLH8Lr2+J70lcPGHTHmeqWTuyv8cBiAS4c2/8LSEQuIkVDtXjPNoig+7IpA7voQaSUWjxXPAeKYrlCf9fTRVswegicNivKGztQGsfZBtFF9+uzCpF8lq0AT2difioWTcyBJIUD73gkSZK83dedF40e0MU4AFw5rQBpCQ5UNnVi7cH4vSD/7ICossqBdQAXkIhMcKazrwg2lzaipdOPIUlOzIkEe/01JNklB4of7Y3fCfSali65menVA6iyEqInfeNVRWMH1kQmHW7qRy+Rk91xcXgbwc8PnUBzR3wuy/n84Am0dPoxLDNxQFlunDTp+4/N5QjF8USlHjDojjPiomdmUToykpwDfp6rI9mGtQdPoKHNG7PxGUnpiTYcrG2D3WrBJeNzB/w8F47NhtthxfHmzrhdp+jp8uPjAa6ni5bksmPeqPBFZLyuratq7sQnkQqUwVz0IJIJQ2SLp3hUWt+O6pYuOO1WXDiALLeQ4LTJ+9TG89q67iqrgb+X4b4i4XWK8dxXJLqB50AyYMKSqC7m8erdHcchScA5IzJQlJk44OcRx/Wm0gZ0+AIxHKFx/GNzOSQJuGBsFkZmJQ34eYYPScK43GRIErAxTnd3WR85714yIWdQn/FlMwqR4rLjaH07vojjiUo9YNAdZ+SLnj7sy30mo7OTMX1oGoIhCe/tjM8s2Id7woHN/NFDkJbYv4ZA0RKcNnk9eLzumSrW043JSR7QerpoF40X67rjM9vw0uZyhCTg3FGZGJubMqjnOm9MuNFScXkz2rzxdxG5/lD4AmXO8Ay4Hf0vk4x2Y2TP7s8OnkB5Q/yV8lY0duBQXRusFuCCMQMPuhE1MRevfUVCISkmVVaIqrT6sqwR9XE6gf52cf/25j6d0dnJKExPgC8QistAscsfxKtfdjdQGyxx/vk8Tid9xWT3+ZH3YaCSXHa5afKLcTzpqwcMuuOINxCUP8QXDTLoRlQZVrxmG8RFT3+3aunNZVEl5vFIrKdbNqNgwCW8wkXjwxf0m482oD3OAkVfIIRXIhc9N88fMejnK8pMxPAhiQiEJGyOw47wItNw3iAvegBgRFYSFo7LhiQBf98cfxc+ooHn7OEZg5qkBPuKoKSyGXUeL5JddiwYM7D+F0JhegKmFqZBkiB3744nB2o82FvdCofNgqVT8wf1XBaLRc52x+Ok76pd1Wjq8KMwPQFfmTjw6j9BBJvxWGlV0diBYw0dsFktcvXeYIiqt9X7armXvIYYdMeRrcea0O4LIivZNehsIgBcOb0ANqsFJRXNcdets6alCyUVzbBYgEsnDf7kcsn4XNitFhysbUPpifjaMzVW6+mEUVlJGJaZCH9QiruT9dZjjahv8yEr2YnFMTguERVwro+z9zIQDGFT5LgcbKZBuGHeMCBycRpvPotUWcViwtdiscg7HMRjXxExOXvxhBy47IOrwEDUpO8HcTjpKyZ8Lxqfg/TEgS+5E7rXddfFXY8W8b123TlFgyqHFuaNGgKb1YKyho64a/Qnrl1mFKX3e2vF3ozJSca8kZkISWzaqyUG3XFEdNS8aHz2gJvYRMtOcckXo/F24fNRZIuVWcMykJPqHvTzpSU6MD/SsVuUrceLWK2nEywWCy6OZLtFdi1eiP3Jzx+TBccAm9GdLF6zDTuPt8DjDSAtwYEphQPrtH2y88dkwWa1oLKpE5VN8XMR2eUPyhNrg13aJIgJunjrKyJJkrz+Wmz5NVjieTYcbkBrV/xsKxQKSXinuLtreSzMHz0ETrsVlU2dOBJHE+jBkITNRxuBqGqzwUp22TGzKB2Iw/NPLKusBDHhGY9Va3rBoDuOiI6asbroQdSJ6p2S43E1q/tBjC96EFWmHm/Zhlitp4sm79e9P76yDZtKwxc9544aXMlptPmjhsBiAQ7WtqGutStmz6t3X0TWcy8YPSQmWRtE1tZNGxoO4DdH/lbxYMvRRnT6g8hNdWFi/uD6DAhjcpIxLQ77ihysbcOxhg447daYVA0AwJicFIzOToIvGIqrBpRbjjWiqqULKS47LhngFqonS3Ta5e/fNfvjZ9J3X3UrPF0BpLjsmJQ/+EpK4fyx8VdpFQpJ8iTlBWNjF3SfGylT33y0kV3MNcKgO05UNHbgcF0bbFaL/CUWC5dOzkWi04ZjDR0oqWiO2fPqWVO7T57RjcV6buHSSbmwWIAdFc2obomPNTexXE8Xbf6oIXDZrahq6cLB2vjINnT5g/JnMJZBd0ZS957K8dT5VIlMAwDMGxn+22yKo2yD2ELoonE5g+7ZEE0uMS+Jn0orMeF7wZisAW8H2BtxLvsojiqt3okcN1dMzR90o8RoF0Uao66Jo/26xffZOSMzB7zlZ29EpdWGIw1xEyjuq2lFY7sPSU4bZkQy/bEwpTANiU4bWjr92F/jidnzUt8x6I4TorR89vAMpCUMfn2IkOi0y2ua3ympitnz6tkn+2oRDEmYkJeC4UMGviXGyXJS3Zg1LAOIowsfsQdyrNbTCW6HDQsi5frxcuGzvbwJvmAIuakuDB8y+DL9aPK67kPxESh2+ALYXt4ExHA9txCdbYgXoqnUYLYK682/Tc+H1RLurh8vaz7lBp6D7Fp+MrGue82BOnT5zd8R3h8M4f1IhcTVMwe2B/LpXBzJmn95rDFudn0QVVbzRg6+6Ve06UXpSHLa0Njuw76a+NhSVZTSzxs1JGbLxADAYbNizghx/omPc7neMOiOE0qUlgtihjxeMjdizXUss9yCKFePly7mGyKZUyXeS3HhEy/lktGl5bHMJiKqxO2Lw/VxUa6/5Wgj/EEJhekJMZ/AmDMiEzarBeWNHXHRRfZofTuO1rfDbrXEvGogJ8WN2cPDE5XxsEVTRWMH9la3wmoJ788dS1ML01CQ5kaHLyhvlWdme6pa0doV7tkgqk9iZWRWEkYMiZ9mnsGQhC2RIC6WVVaIBIriOePhvQSA9YfD72Wsvy8RNekbL9freqNK0L1v3z6sXLkSl1xyCUaPHo38/HxMmzYNt9xyC1566SV4vfHTBEUL4SY2Yquw2GYaELmIBIADtR60dJi7CUu7N4B1h8ITGIPdH7U3IvjcfLQRTe2+mD+/nnT5g9h1vAUAMHdEbGfHESllBYCtZU1x0RxInERjfdGDSIWMy25FTWsXjpww/04F0fujxnoCI9llx9RCsa7b/Bc+osrqnBGZMenCe7JzIt8dXx4zf+WAmIydOzITmUmxqwxCpAHlpXHUV2Rr5HiZMzwjZj0boon19p/FQaXVvurwBEayyx6TnXFO1r2Dhvm/L72BoDyBEesqK0RdH3BdtzYUDbq3b9+ORYsWYebMmVi/fj3mzZuHu+66Cw899BBuuukmSJKEn//85ygoKMCvf/1rBt8K2Xy0EV3+EPJS3ZiQF5smNtGyU1wYlZUESQK2lZv7wmftwRPwBUIYlpmoyHs5fEgSJuSlIBiS8InJ958tqWiGPyghN9WFosyEmD//sCGJGJWdhGBIkptimVWXP4iS8tiv5xbcDpsc3Kw/ZP7mQJ9HjpfzYtj/Itq8OMo2KFVaLpwzMv6C7ssUqAxC1KTvJ/tqEQiGFHkNvdgSWd5xTozLoYXuSqsTpq8Oktdzj8iI6XpuQfQh2nK0wfRLH7aXNaPLH0JWsgvjcpNj/vxTI+u6mzv8OFDLdd1qUzTo/vrXv46vfe1rqKmpwerVq/Hoo4/i3//933HbbbfhJz/5CV588UUcPXoU7733HoqLi/G73/1OyeHELVFee/GE7JhnbYQ5I8Ilfl8ea1Lk+fUiumu5Uu+luPAxe4m5nGkYkanYexm9Z6qZRa/nHhHjcmghXrINJzxeucmM6AsQa2JiZJPJO5h3+oLYGLkgj1Wn7ZPNGpYBiwU41tCBOo95u+uf8HixtSx8fr1UoaD7nBEZyEh0oLnDLwelZiRJkvxenhO5dom1eSMz4XaEq4PM3rRK9KdQYsIXAMbmJCM7xYUuf0jutWFW3VVWsV8mhki5vliSEw+VVnqjaNB98OBB3HHHHUhPP3P3vfnz5+OVV17B3XffreRw4lb3/tzKXPQgusTPxCfqQNR2KkqUlgviudcdqkenz7yzulsiEzRKlJYL3UG3ubMNm+UmNsqcqBFV6raptMHUWTCxFGdifiqykl2KvIYoaS1v7ECVidd1byythy8QQmF6AsbmxD5rAwBpCQ5MyAuXtG418aTvp/trIUnA9KFpKEiPfWUQANhtViyONEb9aK95K62OnGhHY7sPLrsVUyJLPWIt3Mwz/J0pqj3MKBSS5AmaeQoF3RaLRT7/mH1dt1K7ZkSLl0lfPVI06HY4utdvVVZWnvZ+mzZtOuX+FBtH69txrKEDDlvsm9hEE0H3zsoW05b/7K/xwOMN70M5o0iZ2XEAmJCXgpwUF3yBEHZWmnMbtmBIwvZIpmGOQpkGADhnZAYSnTac8Hixp8q8nU+VXM8tTCpIRXqiA23eAHZUtij2OlqLzjQoJcXtkC/2zdxFVuxTfNF45aqsEJWtNHOJucgmXjhOmTJ9QTy/md9LUWU1vSgdLnvstgo72cXjzb912L6aVrR0+pHktGGKAuu5hXiotGrp9MvXfLHc2vdk3eu642cbNr1QrXv5pZdeisbGU7/Ev/jiC1x22WVqDSPuiMzs3JGZMd3T82TDhyQiO8UFXzCEnSa9IN8WCRJnKtR4RbBYLHL5zzaTllLtq25FW2QCQ2SplOCy2+STtVkb2nT5gyiW9+dWrmrAZrXI5dZmzTZIkiR3bj5/rLLBjdxF9og5gxtJkuRgQ4ldM6LFQzM1MUkpzg1KEc+/r7oV7Sbd7mpL5DhRssoKUdWF28qa0NJpzmaeIlsa6/25TyYy3bsqm03bsHdTaQNCEjA6Own5acpUswDAtKFpSHDY0NThx8E6cy990BvVgu5zzz0Xl156KTye7j/wunXrcMUVV2DlypVqDSPuiIse0clZKRaLxfTZBhF0zx6m7EUPoi58xIWW2YhMwyyFJzAQ1bF/jUlL/IrLm+ELhJCT4sLIrNjtG9+b7myDOYPuYw0dqGrpgtNmVWytp3BuZJuiTSbNdB850YbKpk44bVYsULBqAFFB996qVlPui1zf5sWxhvA+5DMVPv/kpyWgMD0BIQnYUWHOSiuxDEHJKisAKMpMxJicZARDkmm3YdusQpUVAOSluTEmJxkhCXKfCLOJ3jVDSeH9usW6bnNer+uVakH3s88+i2HDhuHKK6+E1+vFmjVrsHTpUjz44IP40Y9+pNYw4kqHLyB/oJTqHBvN7NmGbSplGhAJRsVrmnEtsmi4N1ehzrHRRLahuLwJzR3m24YturRcyRJeRF0MFJc3mTILJiYTZg1PR6JTucogRC74rRagrKED1S3mW9ctSsvnjcpU/L3MS3OjKDMcKJpxolL8TuNyk5GWoPwyvOjzj9nUtnahvLEDVos65/KLxpm3xDwUkhRvohbN7Ou61VjPLXSv6zbnBIZeqRZ0W61WvPLKK3A4HLjkkktw1VVX4dFHH8V//Md/qDWEuLPxSAN8wRCGZiRgdLYyTWyiiaB7W1kTgiZbJ1LT0oXjzZ2wWoDpRco0Xok2uSAVTrsVTR1+HK03177IkiTJEzNzVLjoKUxPwPjcFISk8JZvZiPWBM9TsLRcGJaZiKEZCfAHJblE00zE1nJKZxoQWdfdvV+3+d7Lzw4q38Az2jnDw8f/VhMel2KZkRpBIgDMHpbe43XNRJx7JuSlKrJv/MnE1mGfmbCZ5/4ajyrruYXzTBx0VzV3ovREO6wW4FyFds2IJpY3cb9udSkadO/cubPHz/79+/HLX/4SFRUVuOmmm3DhhRfK/41iT3SUvGBsluIZMEQagCW77PB0BXDAZFtkiG0qxqt0onbZbZgWuSA3W7ahvLEDdR4vnDYrphedeWeDWLkg0pTEbFUYXf4gtiu4P/fJenSRNVm5ZDAkyZ3L1cg0wMTZBn8wJH9vXaBgQ6BoYr9lM04GiUz3LBWWNgHA7MgExvayJtNdkIsdVtSoskKkosVlt6K+zWu6CXTxvTVnhLLruYV5ozJhs1pQWt+O4ybb9UFkuacXpSNVhWvMqYXpSHDY0Njuw6G6NsVfj8IU/ZTMmDEDM2fOxIwZM+SfCy+8EJWVlfjzn/8s/7eZM2cqOYy4VRy5GFfrRG23WTEzMkO+tcxcFz7dpeXqBImIXtdtsmyDKC2fOjQNbodynWOjiXJJ8Zkwi5KK8Hru7BQXRim8nlsw67ru3cdb0NoVQIrbLmeglSaqE8wWdB+o8aDLH0KK244xKlRZIaqDufhMmIUvEJJ3C1Ar0z0hPwUJDhtauwI4csJcF+Ti/HOOwk3UBJfdJn+fbDfZ+UdUWakx4QsAqW4Hpg8Nv5dmy3artZ5bcNqj9us2aV8RPVI06D569ChKS0tx9OhR+Sf63+L/l5aWKjmMuOQPhrDzePgLXunGK9FEN9AtJtuvW8313IJZ19WJTINaFz0A5Mmg/TUedPjMsxZZzfXcguhgvr/GgxMeryqvqQYxiTB/1BBVsjaIZIislnADNzOt6xYThTOK0mFVuFGiMDo7GRmJDnT5Q9hdZZ4dNPZUtcAXCCEj0aF4o0TBYbPKy6jMdP5p7fJjX01460ilGyVGE+efYhNNoPdcz63euVwEpWZqTCdJkhx0q1VlhegdNEw26atnil5ZDB8+vM8/FFv7q8OZhrQEh2oZMEQuIhEp4zXL+qUufxB7Ihdxs4epd3IRFQoHa9tMtd3Il2Ui6Fbvoic/LQH5aW4EQ5KptrTrDrrVOy6HJLswKT+8fk+UY5tB91Zh6l30pEbv122idd1qV1khsvRBnH/MtK47esJXrYk1RE0wmyno3l7WBEkKb3Gak+pW7XXF58BMlVYHaj1o7ois51apMggnres2y9KHA7Ue1Lf5kOCwyRM0auhe3mSe63W9UzTo3rRpU5/v29HRgT179ig5nLiiRaZBvJ7DZkFtqxeVTebI3Ow63gJ/UEJWsgtFmcrtnXiy7BQXhg9JBEw0Q17f5kXpifC6tjnD1QsUEZVtMEu5fpc/KF/EzRupTnmfIAJTs2QbOn1BObhQM9OAqAsfM5X4ic+YmheQ6FFpZY7POKLey1kqVlkhOug2yfclonp6qH/uCb+X+2vMs/e5mPCdPSITDpUqgxB5LxOdNjS0+3Cg1hy9g8R5dO7ITLjs6iy5A4BpQ9Phdli5rltFin5Sli9fjiVLluD1119He3vvDST27t2Ln/3sZxg9ejS2bdum5HDiigjS1Mw0AEBC1KynWZpWiYvxOSpnGmDC/brF/qjjc1OQlqh8s5BoZss27KhohjcQQlayC6Oz1atmQVRguuGIOQLFbWVN8AVDyE9zq1oZBADzRooSP3N8Xza0eVEm9pQuUvf8I/ae3VZmjo68kiRFnX9UDhQjf7vSE+1obDfHVovdW1Wqe1zmpblRkOZGSIJpKq1EZY6aVVaIrEUWTfDMcv7ZGPk91FrPLfRY180Sc1UoGnTv3bsXS5cuxX333Yf09HRMnjwZixcvxpVXXonzzz8fWVlZmDVrFo4ePYqPPvoIN998s5LDiSvFFWI9t7qZBkRlG8wSdItAUc313IJ4za0mCbrFMXGOyhc96LGurtkUpVSboi561J4MmjUsHRYLcLy5E3WeLlVfWwliknLOCPXfS7Gu+2h9O2pajP9elkTOPaOzk1SfWJtSmAa3I7zVohkagFU2daK21Qu71YJpQ9Ur4QWAjCSnPJlnhklfbyAoH5tzVOwnIohstxkqrcLrudVtohZN9IMxQwWgJEny9focFZfcCeeO7C4xJ+UpGnQ7HA788Ic/xIEDB7Bx40Z85zvfwZQpU1BYWIiLLroIf/7zn1FVVYWXX34ZU6dOVXIocaU+KtOg1pZM0brXdZvjC1Gr8j5EBd0lFc0IBI3fkVestVSziZowuSANDpsF9W3mWPoQ3URNbSluB8bmhLtSl5igckBcjM/Q4PsyLcGByQWRdd0mKDHvLi1X//vSYbPKGVoznH/Eezm5UL2dHqKZqcR89/FwQ7ohSU7Vq1lw0qSv0R2s86Cpw49Ep021nR6iie9p8b1tZBWNnWhs98Fps2KSCnudn0zsCb6ptMEUyQi9s6v1QnPmzMGcOXPUerm4Ji6Cx+YkIy1B3UwDImXYAHC4rg2N7T5kJjlVH0OsHGvokL8QpxSq/4U4NicFKS47PN4A9td4VG1YEmvt3gB2V4nOseoH3W6HDZMK0rCjohnby5tQlJmo+hhixRsIyhfkWgTdiJSfHqxtQ0lFMy6dnKfJGGJBkiT54k2LyiBEqhV2HW/BptIGXD2jUJMxxIoWTdSinTMyExtLG/DlsUbcMG+YJmOIFbmJmkbv5ezhGXhta6UpmqmJdf5zRqi/TAxRk1AlFU2QJEmTMcTKpiPd+3OruZ5bmDY0DRZLuBLkhMeL7BSX6mOIleKK8HE5qSBV1fXcwrSh4eqghnYfDte1YWxuiupjiCeKf1o+/fRTBALmaBxhFOJDrNUFZEaSU86CGb2LrLjYmDo0TZMvRJvVghkmaQBWUtGMYEhCYXoCCtLVa0gXbWaRObINOypaNFvPLcwwSeamorETDe0+OGwWuSu72kQjPKN3MA+GJOzQeAJD7IpghuVNWmxVGW12ZB35jopm+A1eaaVllRUATC5IjVRa+VDRaOxKK1GKLPpRqK1HpZXBs93i/KlFlRUi+8iLCVJuHaY8xYPuxYsXo7Gx++R37rnn4vjx40q/bFzbXqZtpgGRbANMcOGj9UUPTLR1y5aj6m8VdjKz7JcqTo7zNFjPLYiLhJ2V4ckUo5IzDfmpmpTwIvJ9abEApfXtqG017rrug7UetPuCSHLaME6jjMnMYRmwWS2obOo09N7n7d4A9lWHK4NmDdfmgnxUVhLSEx3wBkLYG6lSMqJQSJL7omgVdItKK0R95xhRKCRhyzHRT0SbKiv0KDE37nuJqEkDrSYpEb112FFjX68bgeJB98lrBPbs2QOv16v0y8atYEjCjkrxIdYw6B5hjnV1ooGMlhMYZgm6t0b259aiiY0g/o57qlrR5Q9qNo7BEpNZWmUaAGBcbgoSnTa0+4I4bODtRrRczy2kJTjkLLuRJypF1mZ6UTpsKm5VGS3ZZY96L437nbmjohkhCShMT0B+mjaVQVarRf7ONPL551BdG1o6w2uQJ2uwblaYZYLqoNL68LJBt8OqenO/aDOKuvvdGJU3EJQns7Q8/4jriC+Pcr9upam/GIMUdaDGgw5fEMkuO8ZEym+0IGaTdx9vQYfPmMsLWjr9OFgX3gdSy0z3jKJ0WC2ik60xs2D+YEiuwJirYaA4NCMBWckuBEISdh835tYtoVD3GmQtJ4NsUR2VjZxt6M40aPdeIirTYeTGdFrtz30ycf750sCZGxHkatHAM5oZmqmJzOzMYemwa7AGWTBDB3MxYTCtMF2T9dyC+I7ZUdFi2EqrvVWt8AVDyExyYpiGPWamDQ1PktZ5vKg2wQ4aeqb4J8ZisfQofzz53xRbomxphoaZBkDMzrsRiAoQjKakohmSBAwfkqhpo44UtwPj88Kz80bdumVvVSs6/UGkJTgwJlu7ySCLxWL4bENpfTs8XQG47FaMz9O26YnINhj1vfQGgthzXPtMA0ySuRHLNrScDIJJ1nWLIHeOxkG3+Fsa9dwDHaznFsS5Z6+BK63kyiCNJ9ZEpVWbN2DY7QGjq6y0jIsSnDaMjywHMvL5xwhUKS//yle+glmzZmHWrFno6OjAlVdeKf9b/FBsiItfrTMNFoslKttgzJO11p1jo82OrOkzaomfvD/3iAxYNZwMQlS2wajr6kSjqqmFaZpmGmCCrVv2VXvgC4aQkejA8CHadrMX7+XuqhZDNq1q6fDjyIl2QAcTGGIJy4FaD1o6/ZqOZSBCIUkOcrWssgKA6UVpsFktqG7pQlWzMdfIi4qHuRoH3YXpCchOCVda7TJopZVYvqj1Z9xmtcjblRm1OkgPS5uEGXLlgDHfS6NQfMuwlStX9vj31VdfrfRLxrXtOsk0IBJgvbujSl7LazTbdVLeh8iF1983lRu2xE8E3Vqu5xbEhJQodzcaPZ2oxXt5sNaDNm8AyS7VdqGMiZLy7sogrSuwRmUlIcVth6crgAMG3B5QTGKNGJKIIcnabuGTneLCyKwkHK1vx/ayJlw8IUfT8fTXkRNtaO0KIMFhwwSNq1kSneE18ruOt2BbWZNmO08M1PHmTlS1dMEetROIViwWC2YWpeOjvbUoLm/SPPPeX13+IPZXh5fc6eP8k4HNRxtRXNGMa88p0no4/aaXJBkif8+XNpejmEG3olQPukk5zR0+lOok04CoDubby5oQCIY0XUvVX8GQJJdKap1pAIDZw7rXyHf5g5p1WR4ISZKw9Zi2nWOjTRsaztzUtHahuqVTsyZFA6WX8j4AyE11oyDNjaqWLuysbMaC0VlaD6lfiuUJDO0/41arBTOK0vH5oXqUVDQbL+gu18faeOGcERk4Wt+OLccaDRd0i4qmGUXarkEWZg/PkIPuK6cXaD2cfhFZ7smFaUh0aj8pOGt4RiToNl5ws/t4CwIhCdkpLuSnubUejnyda8TdSBravChv7AAia6q1JrZT3VXZYrjrdSPhu2oi4mJ8ZFYSMpKcWg8H43JSkOK2o90XxP4aj9bD6Zf9Na1ojzSk02rrm2hFmeEGYP6g8crSjjV0oKHdB6fdiimF2nWOFRKddjl7ZLRsd5c/KG8jNF0HJ2pEBf9GLDHX0wQGov6mRnwv9dJETRBVNUZckrNVJ6XlwiwD76Ahxqz12nhBBDfby5sM1ylaL2uQhehKq3avsRr2ijL90dlJSEtwaD0cjMpORrLLjk5/EAdrjblG3ggYdJvIdh2VqiAqcwMDXkSK0vKZw7RtSCdYLBbDrusWna2nFKTCZddHhl4svzDaDPmeqlYEQhKykp0YmqGPDP1M0QDMYJmbxnYfyhrCmYYZepnAKDLmujq9dNSPdnLmxkj0sp5bEOPYW91quN1I9LAPcjTRKbq21Xidoot1tLQJUZVWIQmGS0borTKo524kxjr/GAmDbhMpljMN+vgQw8CNlrbpYH/ukxl1v24RjOmhhFcQF2BGW7+kt0wDorLExRXNhsrciMB2VHYS0hK1zzQg6r08fKINni7jNAArrW+DpysAt0P7jvrC6OxkpBgwc9PY7kNpfXiZmF4CxYI0N/JS3QiGJOyoME5wE10ZpJdAMcFpw8T8SKWVwSZ9xXfmTJ28lzBwpZWeerMIRp30NRIG3SbRM9Ogvw+x0b4Qt+loPbcgxrK9zFhlaXor4UXUxNSu4y3wBYyTBdPjiXpKQXiN/AmPF1UGytwURzVR04usZBeGZiRAkoCdlcYJbsQyjWlDtd27N5rVasG0IuNlbkSWe0xOMtITtV8mBrnSynh7TO+p1lRhmgAAST9JREFUaolUBrlQqKMGcDMNuNVifZsXlU2dsFiAqUP102/CiOu6o6/X9XT+Mer1upFocnbs6jLOhZlRHDkRzjQkOLr329OD6ZEPcbgbqzEyN3WtXahoDJ9c9BQoTi5Ig9NmRUNUWazeeQNB7BWZBp2U8CLSYTkj0QFfICSPzwhEqf50HZ2oE5zdHZaNVGJerMOsDaL+tka68BGdy/WSmRWMmLmRJ3x1VGUFg1ZalUSy8jOK0nRTGQQAs4YbL1AU3+1jspOR4tZHZRCiKuiM9H0ZXRmk9e4E0cT35cG68G4kFHuqBd2hUAgPPfQQCgsLkZycjNLSUgDAL37xC/zlL39RaximJWZMpw1N01XXwejMzS6DZG7ETP743BSk6ujk4nbY5Blmo1z47K1qhT8oITPJiaJM/WQaLBZL937dBrnwaWjzoqIxvE+uHrqdRpspl/gZ470MhaTuUkmdBTczjRh0i/WJOlpCAoM2phPf7bNH6Ou9jM50h0LGqLTSYzYRUZ+T3cdb4Q0EtR5On+j1vZxamBa1Rt4Y+8jL1+uF+tidQMiJrJEPV1oZ5zvTSFT7az/88MN4/vnn8Zvf/AZOZ3fJ1JQpU/Dss8+qNQzTkvfn1lE5tGC0khXRkE6P76VYOmCU/br1uAZZ6O4ia4zjUm/dTqPNMFi5ZGl9O1q7AnDZ9bMGWYj+vjTCMhJPlx8HasO7U+hpaROilrQYJXPjD4bki1099RMBgEkFqXDZrWju8MtrzvVOTALqqZ8IAAwfkojMJCd8wRD2Vhmj0kqcf/RU/YeTKq2Mcv7R45I7QYzJSL0bjES1oPvFF1/E008/jRtvvBE2W3cH4+nTp2P//v1qDcO0ujMNOvwQy2tujPGFKDek0+F7KbJyRinj1evsOKImVYyS6dZjQzpB/H13HW+B3wCdosVxObUwTTdrkIUphcZaI7+zsgWSBBSmJyAnVfu9e6PlpLhRmJ5gmMzNgRoPuvwhpLrtGJWVpPVwenDYrJhaaJw18j0qg4r0swYZotLKQJO+0WuQ9bJVZTSjJXaKy/V7XdT9XhrjushoVLvaOH78OMaMGXPK7aFQCH6/smt9n3zySYwYMQJutxvz5s3Dli1bFH09tXm6/DhYF8406K1UEgbL3PiDIXnrCb2tT0TUe3mg1oNOn/7L0kQJr57WIAvThqbBYgEqmzpR59F/cNO9XYu+LiABYFRWElLddngDIRyo8Wg9nLMq0ekaZESWkRhpjbxo/KXHyiD0WNet/8xNcdT3pVUHW1WezEgX5NGVQXpaJibIO2gYYNK3tL5dl2uQBSMlIzp9QbkySI/nHyMuyTES1YLuSZMm4fPPPz/l9jfeeAMzZ85U7HVfffVVrFixAitXrsT27dsxffp0LFmyBHV1dYq9ptp2VIQzDUWZCchOcWk9nFNMKUyD3WpBfZv+Mzci05DitmNUVrLWwzlFfpobuakuBEOS7velbGr34ZjO9kGOluJ2yE0H9V6FIUnda5D1mOm2Wi3yxIoRtmEr0fF7iehA0QDZWb02pBOMFCjqcdvPaHJwY4TPuI4rgxC1fEDv5x6cVBmkpzXIgviM7zzejIDOK612HW9BMCQhN9WF/DT99LkRpg413hp5I1Ht03P//ffjBz/4AX79618jFArhzTffxHe+8x088sgjuP/++xV73d///vf4zne+g1tvvRWTJk3CU089hcTERPz1r39V7DXV1l0Orc+Ti9thw4R8Y2RuiqPKofWYabBYLIbZIqMkEjCMytLPPsgn68426Pu4PBq1Bll8lvRmpkGOy05fEPuqw5kGPa6pQ3SgqPPjUpKkqEBRn++lkbrBl+h9AiPyN95Xrf9Kq2Idr5sFgGlF6bBYgOPNnahr1XcyQt41Q4eT54hcY6S47ejyh7Bf55VW3X0G9PleJjrtGJdrjOt1I1It6L766qvxr3/9C5988gmSkpJw//33Y9++ffjXv/6FxYsXK/KaPp8P27Ztw6JFi+TbrFYrFi1ahI0bNyrymlqQm6jp9OQCA2UbSnS81kYwyhYZRngvxUSV3veeFX/rKTpcgyzMGGaM4GZ3VTjTkJ3iQkGavtYgCyKA3XW8RdeZm2MNHWjq8MNpt2Jygf6WPcBA3Y1bOvwoPRFuUKbH5TgAUJDmRnZKuNJqd5V+K6167E6g0/cy2WWXK630vq5bLM3Q6wSG1WoxzLruYp1XYCD6et0AlVZGo+rV2wUXXICPP/4YdXV16OjowPr163HppZcq9nr19fUIBoPIzc3tcXtubi5qamp6fYzX60Vra2uPHz2TJKm7vE+nJWkwUqCo47WewkyDBDd67tApiP1Sd1bquyxNz01sBPEZLz3RjpYOZft0DEZJVNNJvXXUF0ZlJSPFZUenv3v9nx6JLPeUglQ47fqcDEpw2uTgRs+ZG7GUYESks7UeRTcA0/N7ebRBv7sTRDPCtpVd/iD2VYevg/U9gW6s6yI9X2OKvjF6/owblWpnyYqKClRWVsr/3rJlC+666y48/fTTag2hTx599FGkpaXJP0VFRVoP6Yx8wRC+t3A0Lp+Sh4n5qVoP57TEh1jPmZuWDj+OiEyDjoObqYVpsFqA6pYu1Oh0jbwkSfJFpJ7fy1FZyUg1QFnaDgNMYGQmOTF8SCKg8xnyYlHep+P30mq1yB2X9dwArLvKSr8TvoiuwtDzcWmAyiBEvZfFOq5a22GAyiAYZHnTnqoWBEISspJdKEzX3xpkYYYBGtPVtHShuqULVgvknQD0SEygi/XnFDuqfRvdcMMNWLNmDQCgpqYGixYtwpYtW/Dzn/8cDz74oCKvmZWVBZvNhtra2h6319bWIi8vr9fH3HvvvWhpaZF/KioqFBlbrLjsNnxv4Wj8702zdZtpgMjcRIIbvWZuRJA4LDMRQ5L115BOSHJFrbnR6YVPWUMHmiNlp3qeDLJaLZih82xDlz+IvZFMg15LJQUjrEU2wrIHGGRJjrxVpd6D7qEGOC51vtZTMMRnXMdbVUYTk1U7jzfrdqvF7smgNN1WBiFqcv/IiXa0dOqz0kp8xsflpiDJZdd6OKc1JicZSU4bOnxBHNTp9bpRqRal7d69G3PnzgUAvPbaa5g6dSo2bNiAf/zjH3j++ecVeU2n04nZs2dj9erV8m2hUAirV6/G/Pnze32My+VCampqjx8aPKvVovutCIxyokb0DLnO38vJOi47FbobgOnzvdxb3Qp/UMKQJCeGZug304AeJX76DBRrW7tQFck0TNNxBQYMsCSnwxeQq0P0XCqJqCyYXjM3kiRFLcfR9wTGtKHhBmBVLV26bQBmlHO52Gqxyx/C/mp9Bjc7KiPruXX+Xg5JdsmVVjt1WtFihKWgAGCzWuTz4w6dnn+MSrWrYb/fD5crnD385JNPcNVVVwEAJkyYgOrqasVed8WKFXjmmWfwwgsvYN++ffj+97+P9vZ23HrrrYq9JvVO7zPkRlhrI4gGYHp/L/V+okbU31uvzdR2RL2Xes40ICpgKKlohiTpL7gREyvjclOQrONMAwBMj5SXH6prQ5s3oPVwTrGzMhzA5qW6UaDjslMAGJ2djGSXXbeZm7KohnSTdFwZhJMagOlx0tcoa5BxcqWVTicquysw9B0oIurvrdcJ9Oh+InpnlMaoRqNa0D158mQ89dRT+Pzzz/Hxxx/jsssuAwBUVVVhyJAhir3uddddh8cffxz3338/ZsyYgZKSEnzwwQenNFcj5YmOrHrcezZ66xu9n6gR9YW4s1Kfa+QNFXRHLiaONXSgsd2n9XBOITdRM8B7OTE/BU6bFU0dfpRF9mjXEyMdlzkpbhSmJ0CS9Jm56S4t1/97Gc7ciDXy+nsvjVQZBJ0HN0aqDELUrjPby/QXdDe0eVHRGO74L3pM6JmeO5gHgiHsrNR3F/hoeq9MNSrVvt1//etf489//jMuuugiXH/99Zg+fToA4N1335XLzpXygx/8AGVlZfB6vdi8eTPmzZun6OtR78QX4qG6Nni69LXmprwxkmmwWTGpQN+ZBkRlbjr9QRysbdN6OD14A0HsrTJGpgEA0hIdGJ2dBOi0LNpIgaLLbsPkwvDnR4+ZG6OsmxX0fBFZbJAmaoKe30sjfcah834D0T0b9F4ZhOgO5jo+LkdnJyHV7dB6OGc1U8eVVgdr29DpDyLZZcfo7GSth3NWYjL1YK0H7TqstDIqVYJuSZIwatQolJeXo76+Hn/961/l/3b77bfjqaeeUmMYpLHsFJecudlVqa+OvOLkMqkgFS67TevhnJXNapHLT/V2Ebmv2gNfMITMJCeGZSZqPZw+ESfr7WX6ei8b231yxtgImW5EBWF6ey/9wZDcCXz2cIMFijrLKEqSJO8tbIRMN6I+P3r7vkTUBIbe13oKYpxiiYGeGG4CI5JRLGvoQEObV+vh9ND9XhrjuJyUH64UaWz34ZjOKq22lXdvR2uz6n8yKDfVjfw0N0IS5Aw9DZ5qQfeYMWNQU1ODjIyeH94RI0YgJydHjWGQDszQaQMwo2zXEq27xE9f2YaSyHimD9V3t9Nos3S6rk4sxRiVnYS0BP1nGhAV0G7TWbnk/moPOv1BpLqNkWlA1Pel3pbkVDZ1or7NC7vVgik63vommlhHqbfMjZF2JxD03N24uyGdMd7LtEQHxuSEv4/0Vq5vtPfSabdiemQZid7OP2L5gFEqgxB1jam384+RqRJ0W61WjB07Fg0NDWq8HOnYDJ2uEyk2UBM1Qa/djY20BlkQf/eS8mZdZW7kUkmdd9qOJoLu/TWtumoAtq2sEQAwa3gGrAbINADAlII02KwW1LZ6Ud3SqfVwZKLp4OSCVLgd+q8MAoCcVDcKdJi5MdoaZJzU3VhP55+GNi/KG8MZTr3vThBN3kFDR5O+oZDU3cTTQO/lLJ1O+orxGKXKCtHVQTqbDDIy1dZ0P/bYY7j77ruxe/dutV6SdCi6I6Je1tx4A0HsM9AaZEGM9fAJfa2RN8oWI9HG5aYgyWlDuy+IQ3X6ydwYLdOASFlaYXoCQpK+mlZti1w4zDZQpiHBaZM7Revpwsco+3OfTI+VA8UGW4MszBimvwtyMZlipMogRAWKelqSc7ShHa1dAbjsVkzIT9F6OH02W17epJ+gu87ThfLGDlgsxjqX67kPhlGpFnTffPPN2LJlC6ZPn46EhARkZmb2+KH4IDI3JzxeVLfoY4/PvVWthluDjMga+aEZoruxPjI3zR0+HK1vBwwWdIfXyOurI68kSXJwYKT3ElGz+VuP6efCZ7sBMw3Q6dYtRqwMgk7XyBtpq8poM3V4QV5ssPXcwsyoySC9VFqJz8iUwjQ4bPrvqC+ICYyDdR60dOojGSEmU8bnphiiIZ0wtTANVgtQ09qFGp1crxudahuVPvHEE2q9FOlYgtOGCXkp2FPVipKKZl3s72rUTAMiY65s6kRxeRPOG5Ol9XDkC7CRWUlIT3RqPZx+mTksHRuONGB7WROunztM6+HgWEMHmiN7907I039H/WhzRmTg3R1VcvMYrVW3dOJ4cyesFmMte0DkM/7S5nLdTAZ1+YPYWxWe5DPS+kTodBscI+2DHE1MBh2s88DT5UeKDoIJeQLDYJ/xsTkpSHbZ0eYN4GCtBxN1sFe7vEzMQKXlAJCV7MKIIYk41tCB4vImXDRe+55RYjnOLINN+Ca57BiXm4L9NR4Ulzfh8qn5Wg/J8FQLum+55Ra1Xop0bnpRuhx0X6GDD7HRup1Gm1GUjvd2VuvmIrL7RG2M5krRZuls65Yvj4XXIE8fmmaIvXujye9lWRNCIUnzNdRiPd3E/FQkuVQ77cWEyMzvqGyGNxDUfHeFPVUt8AclZCUbZw2yMHVouNJKZG7y0tyajqc+sg+yxWKMfZCjiX3kjzd3YldlCxZoPOkrSd1rkI02sSZ2I/nicAO2lzfpIugW5585I4wVKCIS3B5r6MD2Mn0E3Vsj76WRljYJs4dnYH+NB1vLGHTHgqpXckeOHMF9992H66+/HnV1dQCA//u//8OePXvUHAZpTG/rRIxa3gcd7ku5w+ATGABwuK5NF2VpW+WLHuMtv5mQl4JEpw0ebwCH6rTfR14E3XMMlmkAgFFZSRiS5IQ3EMLu461aD6fHem6jVQYlOsOZG+jk/CNKeMdkJxuq7FTQ024kxxo60NJpzMogAJgZqXTQQ0VLS6cfByJd6Y0YdM8ZHj5n6qHSqssflL+3jfhenhO5/hDXIzQ4qgXda9euxdSpU7F582a8+eabaGsLX4jt2LEDK1euVGsYpAOi9GtXZQsCwZCmYzFqt1NhckEqHDYL6tt8qGzStruxJElRjb+Md3IZEilLg04uyL+MrIeea8Cg226zypMYeugiK2/XYsCg22KxyBdrX+rgwmd71H6zRqSnSV8jV1khuuu2DgJFUaY/pSDVcJVBADBrePi93K6DQHF7WRMkCRgxJBE5KdpWgwyEqA4qKW/W/BpzT1ULfMEQspKN1TNIOGdk+Ppjd1WrrrZaNCrVvpnuuecePPzww/j444/hdHav9bzkkkuwadMmtYZBOjA6OxnJLjs6/UEcrNU2CyYuekYbrNup4HbY5FI0rbMN5Y0daOrww2mzYqKBup1GE5UDWu99fsLjxdH6dlgsxgwUoaP9ujt9QeyJ7E5gtCZqgp6yDSLAMtp6bmFGpIy7RAfbM4ktoozU0Tha9ASG1pVW8vaKBlsbL4hxl55oR3OHT9OxfGngKisAGJuTjBSXHe2+oJyx18q2qP25jVYZBACF6QkoSHMjGJJ0MVFpdKoF3bt27cJXv/rVU27PyclBfX29WsMgHbBaLZg2VFz4aPsh7s40GPNEDR115BXv5cSCVM3XnQ6UyN5t1/i9FMHV+NwUQ04GIXobHI0nMHZWNiMQkpCb6kKhDho3DoQIur88Fl4jr5Xqlk5Ut3TBaoH8HW404rt+V2WLpp2iQyEJOyuMt71itCmFabBbLahv8+J4s7aVVnI/EYOtjRcyk5y6qbQSQbcRq6wQucacOVwfW4cZcX/uk4ls95aj2k/6Gp1qQXd6ejqqq6tPub24uBiFhYVqDYN0YoZclqbtF6KR13MLM+UthbR9L+W1nga9gERU9q6kXNvgRpSWn2PQix4AmBUJbo7Wt6OhzavZOMS6vtnDjZlpAIBJBalIcNjQ0unH4RPaVQeJz/iEvFQkOo3VkE4Yk5OMJKcN7b4gDmqYBTtyog0ebwAJju692I0mutJKy0Cxyx/E3upwNctMA0+gi/OPlpO+Xf4gdkQmg4y4BlkQTcu0rLSSJAnbItuFGTnoFhUPW8sYdA+WakH3N77xDfz0pz9FTU0NLBYLQqEQvvjiC/z4xz/GzTffrNYwSCdEMLFFw3LJUEiKKkkzbqAoMje7q1rhC2i3fmnzUeN2OxXG56XA7bCitSuA0sh+41oQmQYxw2xEaYkOjM1JBjS+8NkeVd5nVA6bVV7zqWW2oVje+sa435c2q0WuwtD2vQyfe6YOTYPdQPsgn2yGDtZ1F5c3wx+UkJPiQlGmMatZEDWBrmUyYtfx7jXII7OSNBvHYIkgd6uG556Kxk7Ut3nhsFkwpdCYFRiIqnjYXtYMv8Zr5I1OtW/6X/3qV5gwYQKKiorQ1taGSZMm4cILL8SCBQtw3333qTUM0ok5IzJgtQBlDR2o0qgsrbQ+nGlwO6yYkGfMTAMQbnaSnuiALxDCvmptuhs3d/iwvyb82vNGDtFkDLHgsFkxrVDbhjZt3gD2RPZBPsfAExiImoDRqotsONNg/PI+RHXk1XJd93a5msXY7+W5o8LfUZtKGzQbQ7FB95Q+mR4a04m/47mjhhi2mgUn7UaiVaWVvJ57eKah38vpRWmwWoDKpk7UtnZpMoZt5eH3ckphGtwOYy65Q2SNfFqCA53+IPZWab+DhpGpFnQ7nU4888wzOHLkCN577z38/e9/x/79+/G3v/0NNptxD0YamBS3A1MjM3+bj2pz4SNm5qcVphs602CxWDS/8Nl8tBGSFC7dzE5xaTKGWJk5XNvMTXF5E0ISMDQjAflpxs3aILpcUqNsw9H69nBzP7sVkwuMm2kAgLkju9d1a8EXCGHX8fBkkFGb+wki6N58tFGz4MYMS5sQNf7dx1s0q7SKDrqNbEKk0srTFcARjZaRfHnU+FVWiFxjjo9sHafV+Uee8DVwlRUia+TFdpt62EHDyFSLNNavXw8AGDZsGK644gpce+21GDt2rFovTzokZxuOaPMhLpa3tzL2RQ90sEa++6LH2Cdq9NgvVZv30gzruQWRXd5Rqc0FubjomT40zZDbCEWbUZQOm9WC482dmjSt2lcdXr6SnuiQGz4Z1bShaUhw2NDY7tNkH/l2bwAHIpVBRm7iCQAjs8I7f3gDIbnaSU1d/qB8Ljf6+cdus8pbl2ox6RsKSXI5ttGrrABg9nBtt600w3puYY7czJNB92CodhVyySWXYOTIkfjZz36GvXv3qvWypGPzIidIrTLdZljPLWie6S4NfxEbubRcmBWZhDlY60GbBvtSypkGEwTdI7OSkBFZ+iBK5tW0XV6DbPyLniSXHVMKwpkbLUrM5f25i9INXXaKyDISsfRBixLzXcdbEJKAvFQ38tKMtw9yNIvFgukann9KKprhC4SQneIy9BpkobuZmvqB4oFaDzxdASQ6bZgUaZBnZPK2lRq8l54uvzyxZobzz9yRkTXyx5o03x7QyFQLuquqqvCf//mfWLt2LaZMmYIZM2bgt7/9LSorK9UaAunMnBGZsFqAYw0dqG5RN3Pj6fLL+zeaKeg+1tCBEx51O0U3d/iwT6znNnimAQByUt0oTE9ASAJ2qnwR6Q+G5L17zZBpsFgsmu7XbZbyPkHLbIPR9+c+WXeJufpBtzgujV5aLoh16Vs1WPpglvXcQnczNfUnMMRk3qxhGYZecifMHhb+vtx9vAVd/qCqr72jokVeJpabauyJNUTWpTvtVjS0+zRtMmt0qn2qsrKy8IMf/ABffPEFjhw5gmuuuQYvvPACRowYgUsuuUStYZCOpLodckdHkSlVy+bSRgRDEkYMSUSBQffujZae6JRnpjccUXff+y2R9dyjs5OQk2L8kwt67Net7kVk+OIghIxEB8ZEOn8bnVb7dbd0+HGwNlw6bIbyPkTv131U/eBGznSbJugOv5ebShtVz9x8cTj8HT1/tPErgxD1e2w4Uq/6GnkzLW1C1LnnYJ0HrV1+VV97i4mWNgFAUWYCslNc8Acl7D6ubqWV2F5rjknOPS67TU7ufMn9ugdMk6mskSNH4p577sFjjz2GqVOnYu3atVoMg3RAqy6y6yMXPeeNyVL1dZV0/tjw77L+kLpB96bIhInRm9hEE9k8tbMNIlM02+CdY6NF75eqZnCzPVIxMDIrCUOSjd3cTxAl0QdqPWjpUO+CvM7ThcqmTlgs4a7AZjC1MF2Tdd2dvqD8OTfL+WfmsPB7Wd/mkyvI1NDlD8od9c1y/slJcWNoRgIkCdhZoV6gKElS1NImcwSKFotFs/26zbJrRjRxXGjVzNMMVA+6v/jiC9xxxx3Iz8/HDTfcgClTpuD9999XexikE+fK67rVnTkTQff5JrnoQdQF3BeH61UNbkR5plkuehBd4lfRrOp7KfatF+unzGDa0HTYrRbUtnpVbQBmhv25T5aV7MKo7PC6VZFJUYPofzEuJwUpbodqr6skp90qXxCrOen75bFG+IIh5Ke5McoEa5ARyYKJ7voii6+GHZH13FnJLtO8l4iqJlGzmWdlUydqWrtgt1pM0VxW0GJ5UzAkyd+ZZljPLZzDZmqDplrQfe+992LkyJG45JJLUF5ejj/84Q+oqanB3/72N1x22WVqDYN0RqzrPlrfjpoWdfZSrGnpwuG6NlgswILR5gm6547IhNNmRVVLF46qtOampcOPvdXmWc8tTC4Ir19qbPehrKFDldeUJEleUzfHJOV9AJDgtGFyZBmJmhc+Zsw0AMA5w9XfOkzen9tEF+PoUWKuXtD9RdSEr1mqWQDgAlFppWLQ3V1lZZ7KIEQ181RzSY6YxJtcmIZEp12111XarOHqV1odqvPA4w0gyWnD+NwUVV5TDbOGZ8BiAcobO1Tb+1ySJJSeaDNN8zbVgu5169bh7rvvxvHjx/Hee+/h+uuvR2KisbcdocFLdTvk/XPVamgjLnqmFaYhLdEcWRtEghsRYKiVbdhyLLyee5SJ1nMjkgUTnaLVuvA5cqINTR1+uB1WTDH4ntInU7vELxAMyZ2UTRd0j1Q/2yB3gTdR1QCim6mpuK5brrIaa54JX0RVWm0ubVRte0Cz7M99MjnTXdGs2hr5LZE+EXNNUlouTClMhdMWbgCm1gS6OM/NGJZuioZ0QqrbgYmRvc/VOv8crG3DJb9biyVPrFO9X4QSVDsaRFl5Vpa5TjQ0eGpnG74w4Xpu4XyVsw1mvehBVHCj1nspMpczitINv6f0ydQu8dtf40GHL4gUlx1jTdKQThDr6nZWNqvSkbfdG5DLXOeY7IJ82tB0uB3hC/LDKqzrbmz3YU9VuDLITFVWADA+NwVZyU50+oOqlEV7A0F5Mshs559J+alIdNrQHFVJpjQzVlkhsvRh6lB1K63MtmtGNHH+UWungjUH6gAABekJsFqNX82i6pXdoUOH8PTTT+Phhx/Ggw8+2OOH4ld0tkFpkiSZcj23ICYSNhxpQFCFWUEzrucWLhqXAwBYe+CEKjOsoonNXJNd9ADArOHhcsl91a1oV2Hvc7nT9vAMU5yoow3LTEROpCPvDhW2tPvicD38QQnDhySaYh/kaGqv6xY7S0zIS0F2ijma+wlWq0WeSFCj0mpHRQu8kfXco7PNd1yKc/ma/XWKv15TVDNBs3Tbjqb2ft1yPxETvpciGbFFpT5M4vi/eHyOKq+nNNWC7meeeQYTJ07E/fffjzfeeANvvfWW/PP222+rNQzSIbGuu7S+XfF1Iofr2lDn8cJlt5ryC3FqYRpS3HZ4ugLYpfAWGS2dfjlrc+5I8wWKc0ZkINllR0O7T/H3EgC+LDNnpgEA8tMS5L3P1QgUzZxpsFgsckObrSpkbtYcOAFELnrMtG5WOHek2EFD+YtIM1dZIWoiW43qIDFJMs9k67kFEWSITJ+SxPfI6Gzz7PQQTSyL2a7C92V9mxfHImXsZtleMZo49+yvaVV8S7vWLr98LmfQ3U8PP/wwHnnkEdTU1KCkpATFxcXyz/bt29UaBulQWoIDkyLrZ5XONoiLgbkjM+F22BR9LS3YrBYsiOyZqnS24cvI/tyjspKQk2qe9dyCw2aVmwMpfeFT09KFisZOWC3mnB3HSQ1tlGbWJmqCKPFTOtsgSRI+ixz7F43PVvS1tHJu5Pty89EGxdd1m7nKCgDOi3xf7qhsUfyC3MxLmxD1eSuuaEZju0/R1/pS3jXDfBO+iKq0OlCr/N7nIrAfl5uMtATz9AwSclPdGJaZiJCk/CTGF4fqEQhJGJWVhGFDzNEDTLWgu6mpCddcc41aL0cGo1a2weyZBkRnGxTer7s702DOix70yDacUPR1xEXPpIJUJLvM0zk22uxIR16lS/xqW8N7SlstMNXWN9FENcT2siZFl5EcqPWguqULbofVtMHNtKFpcDusqG/z4cgJ5dZ1lzd0oKKxE3arxbTBTWF6AkZmJSEYkrDpiHIT6N5AUJ5Ym2+iXTOiFaQnYEJeCiQJ+PyQOuefOcPN+V7mpIQDRUnq3v5QKeL8ZtYJX0T19lB6XfcaecLXHFluqBl0X3PNNfjoo4/UejkymO513cqdqP3BkBzUmzXTgKgJhW1lTej0KddoaZO8ntucJ2oAWBjJNuysbEZ9m1ex1xEXPeeYsLRcEIHilqONijYA+zwy2TQx37wTGOJ383gD2F+jXKOlzyKTTQtGZ5myMgiRRkui/HSjgpO+Iss9a1gGkkx6XALAeWOUr7TqXs/txOhsczVKjCaCjc8UnPTt9AWxqzK8fMqsk0GIOreuO6jsBMbnB8PHvVknMBDVd2aLgh3MJUnqXto0wTxVVqoF3WPGjMEvfvELfPOb38Tvfvc7/PGPf+zxQ/HtnJGZsETWddcptK57Z2Uz2rwBZCQ6MCk/VZHX0IORWUkoSHPDFwwptq1DS6cfe8V6bpNmwBAppZqUnwpJUvZkLTqXmznonlyQioI0Nzp8QTkwVsIHu2sAAIsn5Sr2GlqzWS1yub6S2QbRxMaspeWC+A5TcnlTPFRZQaV13WJyft7IIaZczy2Iz93agycUq2gpqWhGICQhN9WFoRkJiryGHiyeFJ7A+HBvjWLLSCoaO7C3uhU2qwUXTzBPdvZkYgJ9R0UzvAFlJtD3VLXihMeLBIfNVJNBqgXdTz/9NJKTk7F27Vr8z//8D/7rv/5L/nniiSfUGgbpVFqCA5PFum6F1imuPxQ+US8Yk2W6jsbRLBaLvHWYUtmGrccaEYqs58414XruaGKWValsQ0unX85WmjnotlgsuHRyHgDgwz01irxGuzcgl2IuibyWWYn9dJXKNrR2+eUGS6KTv1lFV1opcUEeCkn44og59+c+2fxRWbBagCMn2lHd0qnIa8RDlRUiJcopLjsa233YWalMWXR0lZWZJzAuHJcNl92KisZO7Kv2KPIa4rw2d0QmMpOciryGHozOTsKQJCe8gRB2K9Rkdm0kyXHemCy47OapslIt6D569Ohpf0pLS9UaBunYvJHKZhvWHw5/iM1cWi6IbIpSGcXozrFmJ9Z1K5Vt2F7eBEkKVyiYbRuhk4lA+JN9tQgEQzF//rUHT8AbCGH4kERMyEuJ+fPridzB/FijIoHi+kP1CIYkjM42TxOb05lelAaXXbl13XuqWtHc4Ueyy47pkT2DzSot0YGpQ8O9FL44HPtzefR6bjNXWUE08xwnmnkqM+lr9iZqQqLTjoXjwhPoHyg06SuqrC6bYu4JX4vFIq/r/lKhSiuzVlmpuk830ZkoWeLX5g2gONJAIx6CbrFf6t7qVjQosBZZrI03+0UPAMwoSkdaggMtnX6UVMT+BCP25zbj/qgnO2dEBjKTnGju8CvSeVtkGpZMzjN11gYAphelw2GzoLbVi4rG2GcUzbY/6plEr+tWopmnKLU+d9QQ2G3mv+w6X8F13TsrW9DlD2FIkhNjcsy7nlvoXtcd+x00AsGQ3IHazGuQBTHp+5ECQfcJj1duonbpZPMubRLEpO+XCpzHmzt82B55Lxl098OKFSvQ3t4u//8z/RDNHRFZ132iHXWe2K7r3nK0AYGQhGGZiSjKNHfWBgCyU1xypm9DjLvItnb5sacqXFIkqhPMzG6z4sLIDPma/bHNNkiShI/21gJxMoFht1mxaGJkbV2ML3x8gRA+3Re+MF0SBxc9bocNM4vCgeJHe2P7XoZCEj47KJrYmD/ohsKTvl/IW4WZ/zOOqEqr9YfrY16Fsdnk+3Of7KJxoplnC054YjuBvrG0Ae2+INITHRhv8sogAPjKxBzYrBbsr/HgWH17TJ/74721kCRg+tA05KeZd228IL4vvzhSjzZvIKbPve5QPUJSeNu1oRnmul5XNOguLi6G3++X///pfkpKSpQcBhlEWlSDs80xzjaI9dxmb2ITTWT0Y51tEOu5R2YlIS/N3Ou5hYsjs62x3q97T1UrDte1wWm3YnEcBIqIKr37cE8tQjEs199wpB4ebwDZKS45GDW7K6fnAwDeLjke0+fdWx1uYpPktMllhGYn1gdvKo1tuX6XPyivuzf7em5h1rAMuB1WnPB4cagutuX68VRlBQA5qW5MKQxfF8W6medbxeHvjX+blg+bifvcCOmJTsyPHDexnvQVJetLTF5aLkwuSMWorCR0+UP4cHds38vPTFxlpWjQvWbNGqSnp8v//3Q/n376qZLDIANRKtvQnWmIj4seADhvbPe67lheRHZf9Ji/HE0Qme49Va2ojWF3/XciwdLiiblIdTti9rx6tmB0FpKcNtS0dmFnDJuwfLgnXDFw6aRcUzdKjLZ0WgHsVgt2H2/F4brYNQcSpawLTNbE5kymF6VH1nV7ceRE7LJg28qa4AuEkJvqMvX2VtHcDptcfhrLviK+QAhby+Ir6EZUI8NYTvp2+oJysPTVmYUxe169E1VQsQy6Wzr92BhplGj2Bp6CxWLBsshxE8tJ31BIkpuomWl/bsH8i4vIUOaNFNmG2AXddZ4uHKj1wGIB5o+OnxP13BGZcNgsON7cifLGjpg976ao7VriRVayS26AtDZGDW2CIQnvlFQBAK6eURCT5zQCt8OGiyIlyx/EaIY8GJLw8d74aGITLTPJKa95e7u4KmbPK++PasKLntNxO2yYOSycJIjl+Wd91FZh8VAOLShRabWzshld/hAyk5wYGwfruQWxg8a6gydi1oDy4321aPcFUZSZIPcziAdiB43t5c0xm0Bfs78O/qCEsTnJcTOxhqjrli8O18dsq99dx1vQ0O5DsstuyiorBt2kK3Mj+3UfOdGOyqbYBIobIh1UJxekmnobh5MlueyYGTmZxmrP1IY2r7xFRDx0Lo8mN7Q5GJtsw8YjDajzeJGe6DDljO6ZXBa1dVgsqjC2lzehvs2HVLc9rjJgAHpkG2JRrt/U7kOxSZvYnI04dmJZxhuPVVaIWsq1qbQB/hgFiuLvMm9kfKznFmYUZSA90YHWrgCKK2KzddjbkdLyZTMK4+q9zE11y5Nrop/KYEU38Iwnw4ckYdawdIQk4N0dsZn0FdUc54/JgsOETSfN9xuRoUWvuXllS0VMnjM60xBvYp1teHVrBUJx1Cwkmmgo9fnB+phcRIr1dEun5sNpj6+v4ovGZ8Nps+JofXtM1nyKjPmiibmmPFGfyaKJuUh22VHZ1Cl3zx2MdYdOICQBE/JSUJAeX59xUSWxen9dTLJgzR0+7IpMUsbb+WdSfniSu8MXREkMAkV/MIRXt4avCeKpmgUAbFYLLhwrmnkOftK3oc0rl/BePSN+SssFedI3BpVWXf4gPotUBsXbcYmopQmxKjGXq6wmmHPCN76uTsgQlp87HADwypfl8AUGF9xIkiQHnBeMMeeH+ExE454NRxoGvcd0MCThH5vKAQDL54+IyfiMZFphGoYkOeHxBuR9Ygeq0xfEB7urgThbTyekuB3ysTnYCx9JkuRMw6VxlmlApCxaXOyJiZzBEMsn4q36AgAm5KXinBEZCIYkvLylfNDPt/FIA6RIF97c1PhoOilYrRYsiCznWh+Ddd2r99WittWLrGRnXAY3Igj5LAbLm97bWY1gSMK0oWlxse3ayURGelNpA5o7fIN6rnUHT6DTH0RhegImF6TGaITGEcu+Ig1tXuysDE/QmfX8w6CbdGfRpFzkprpQ3+bD/0UCk4EqrW9HdUsXnHarKdeHnM20wjSkuOxo7vBjb1XroJ5rzf46HG/uRHqiA/82LT9mYzQKq9WCheNi08X8k8h6uqEZCZgdB/tz90Y0tPlgkA1t9lS1orKpE26HVf77xBsxcfP+zmp4A8EBP0+PrcLirLRcuCky6fvS5vJBV7TEc5UVYlxp9eLGMgDAdecUxU1zv2gXjs2GxRLeWaCmZXBVGCIruSwOs9wAMCIrCRPyUhAISVi9b3Dn8g+iSsvjqUxfiGVfkXWHTkCSwlUyZp2kZNBNuuOwWXH93GEAgL9vKhvUc4l9e88ZkQG3I/5O1HabFedGsg2r9w9u/dLfIn+La+cUxeV7CQALIyeXzwa5X7dYT/fVmfG1ni7aoom5sFrCQXPFIBr9fRS56Fk4LhsJzvg8Ls8dNQS5qS60dPoHlQnbebwFje0+pLjsmBWnk0GXT8lHVrITdR4vPh7Ems9gSJL/FvG2nlsQkw3FFc1oaBv4HtOH6zzYcKQBVgtww7zhMRyhcQxJdmHa0PBa5LWD6CtyrL4dxeXNsFktuHJ6/DTwPNmlUX1FBsofDMlB+5I42fKzN7HqK7Jmv7lLy8Ggm/Tq+rnDYLda8OWxJuyrHliGtssfxF/WHwUiF1LxaunU8O/+woZjaPcGBvQcx+rbsfbgCVgswI3zhsV4hMZx4dhsWC3AgVoPjjd3Dug54n09nTAk2SVvKzSYCx+RaYjHklPBZrXIx9LbgygxF+tFLxhnziY2feG0W/GNc8LfcS9uPDbg5/nXjiq5Miieds2IVpSZiGlD0xAMSXjm86MDfp6/R5Y1fWViLgrjrM9ANFF9smYQk74iy33emCxkp7hiNjajEeu61x48gQ7fwK6LNpc2oqXTjyFJTswZEV+NZaPFoq9I0ORbhQnxeVYl3ctNdcvrbv42wGz3a1srUNPahfw0N66ZMzTGIzSOf5uWj5FZSWjq8Mslev31j83hxy0cl43hQ5JiPELjyEhyyh3hPxtgifn7u6oRCEmYWhif6+miic/4R3sGllEsPdGGg7VtsFstuGR8/GYaEFUqunpfHVo6/QN6DnFMm/mipy+unzcMVguwqbQRh2r7v04xGJLwx9WHAADfuWAUEp12BUZpDD+8ZCwQmcAYSLa73RvAP7dVAlH9XuKV2MJv/eH6AfW7kSQpqsoqfrPcADAxPwVFmQnwBkID3q1ATBYvnpQLmzU+K9YQo74iJRVNaOn0I9Vtx8yi9BiPUD8YdJNuLZ8fPsG+XXwcrV39u4js8gfxpzVHAAB3XDwmLteACXabFf9+yRgAwNPrjvQ7293lD+K1reGLnpvnx/dFD6KyDQMt4xUnpWVx2EDtZEsiJ+ovyxpxwtP/C/IPI8H6/NFDkJboiPn4jGRifgrG56bAFwzJTfr6o77Ni52RTtsXxenaeKEwPQGLJoYncQayxOlfO6pQWt+O9EQHblkQf00no31lYg6mFKaiwxccULb7nZIqeLwBjMxKitsyfWFqpJln2wCbeZZUNONYQwcSHDZcOil+K4MAwGKxyNnuDwbQzDMU6m7guSSOq6yEwfYVEddTF47Lht3EVVbm/c3I8OaNzMTYnGR0+IJ4MzLT3VfRWe5r4zjLLVw1vWDA2e53d1ShpdOPoRkJWDguvjNgiMoCrj1wAkdO9G+7K7GezmoBrpwev0sehML0BEwtTIMkhZvL9Ve87o/aG4vFgqsj2auBZBte3FgGSQKmFKYix6RNbPpDTPr+c/txtPVjovLkLHeyK36z3Igcl3d9ZRwwgGy3JElyif+N84bBGsfZRIhmnpFJ3+e+6P8EhshyL5mci6Q4Py4Rdd5Yvb+u35UDJZXNqPN4keyyy13649lg+op4uvx4PZLYudjkVVYMukm3LBaLfOHzt01lkKS+NWhglvtUg8l2i0zPjfOGx3UJlTC5IBUXjsuGLxjCz97c1efjEpGsDQCcPzYbOSkMbBC1Fru/2Yaali6UVDTDYgEunRTfpeWCWNe9qbSxXz0HDtV68L+fHQYAfH/hGMXGZyTnjc7CqKwktHkD/Vonzyz3qQaa7d5W1oT9NR64HVZcM7tI0TEaxe0XjoLdasFHe2v79Z3pD4bw3s5wBQyrrMJmDctAdooLnq4ANpY29OuxYqvLSybk8BrzpL4i7/Rzz+7HPzyAmtYuDB+SiKUm3xmHQTfp2ldnFiLJacORE+3YeKRvX4rMcvduINnukopm7KxsgdNuxXXn8KIHkcmgR5ZNQYLDhs1HG/Ha1oo+PU6SpKitWuJ7PV000fV1w5H6fi0j+Whv+KJn1rAMZmYjCtMTMG9kuKHPuyV9274lFJJwz5u74A9KWDQxB1dMZdUAIlnFGyNriP+2sW+Tvsxy9+7kbHdje9/2RhbnqaunF8b98hFhQl4qbr9wFABg5bu7+/yduf5QPRrafchKdsZ9mb5gtVqwODJh259mnpIkscqqF1dHrms+6UdfkW1lTXgxkth5ZNlU0++Mw6CbdC3F7cBXZ4Vnz/rSUK1Hlvui0ZyBjGK3WfGDi/uX7f5b5KLn36bmIzPJqfgYjaIoMxErFocvIh95f1+f1iPvqGzB0fp2JDhsPFFHGZOTgtHZSfAHJfzxk0N9ekxju0/emSCet2rpjVhb91ZxZZ8CxZe2lGNbWROSnDY8ePWUuN3Crjf/b/ZQuB1WHKj14MtjZ19Dyyz36fXMdpee9f4nPF78X6Q3wXL2Eunhh18ZixFDElHb6sVvPzjQp8eIJSf/Nq3A1Gtm+0us6363pAoHavrWNPGf24/jWEMHnHarvEc1hffXHpebDF+gb31FfAFRLQh8fdZQnD/W/JNB/OSR7i0/N3zx8tHeWlS3nLlkUmS581LduJaZ2VNcPaMAI4Yk9inb3djuw792hrNlN/Gi5xS3njcCkwtS0doVwIPv7T3r/UWJ6qVcT3eKuxaFJzCeXX8UL2w48zZNXf4gbnvhS5Q1dKAwPYFlpye5fGo+nDYrDta2YV/1mS8ia1q68Ov/2w8AuHvJeBTE8XZMvUlLcMhd4c+2fRiz3GcWne1+YcPZs92vflkOf1DCjKJ0TClMU2mUxuB22PCrr04FAPx9cxm2lTWe8f5t3oBcGfRVlpb3cN6YLJwzIgNt3gBufW4Lalu7znj/zw+dwD3/3AkA+O6Fo3guj2KxWOSlC33pK/L0uiM4UOtBZpITP186UYURao9BN+ne+LwUzB2ZiWBIwstbTl/KG53lvvNiZrl7E17bHd7C5WzZ7te3/v/27j2qyjrf4/iHzU2QuyIIKOp4SwwaQY3UUSeVtHH06FTHHFOrac1Ec0RsOjUXsWWNTp0p8xyzmkptecxLM+bkOuly1HCaRAXCW3i/AALijWuAsPdz/gB3kqio7Z694f1ai7V4LrK+y/Vd+9nf5/f7fX/5ulxvU//IgFa9hcPt8nC3aOGkWFncGka4ruxx3JxzFbX6ZG/DCwzW011rfFyEnh3T8IV83icHrzvVz2ozNGv1l8rOK1Wgj6dWPD5QwczAaCLQx1P339XQjGb5Fydls11/tHve3w+qorZe93QJ0rRERmab8/PGKeabDhSrpOL6X8ivHuVml4fmtXS0u95q06pdDXtz83/ZvPt6dtTP4qNkGNLzf91/w0Zga/bkq6bOph4d2ys2ihcYV3O3uOmdaQnqEdpehWU1mrFsjyquM2X/q8Jy/Wpltupthn4aF6HZjS+L8Y2r+4ocLCy77n0nzlVq8baGPiJzf9KvzcykpOiGS7iyP+eHu/NUZ23+4cIod8u0ZLTbZjO0snFv7mn3RjPl9DrujgrUE0O7S5J+//GBZl9ibDpQpKRFO3Sh6rLCA9qxnu46kkf21JRBXWQY0n98+KWy85pO5zUMQ/M3fqXNB8/Ky92ivzyWoJ6d/E2L15k9nNDw+bc2s0DT3t+lwmaaqm0+WKxNB4vlYXHTgkl30yTxOvpHBmpA1yDV2wytuc5L32+Pcvu3Y/1xc1o62r3tUIkKy2oU7OupcXe37sZKd+J34+5Sh/ZeOlpSqbfTj19zvaKmTr9Zt1fzG2di/Swhimd5M4Lbe2nFzEHq6Oel3KJyPf2/2dd8zywsrdbM5btVWVuve3uE6NWHYtt8N/3mRAb5aFjjNPFJb36h9z6/9sWvYRj67fqGF0U/6h1qXwveFrTqovvll1/WfffdJ19fXwUFMVLnypJiwtXRz1vnKmo1f+NX+uL4eX19+ZsCh1HulrvRaHdNnVW7TlzQgk9zlX+xWgHtPPTTOEZmb2T26N6KCvbRmdJqvbbliP18WXWdUtfk6Jcrs3Wx6rL6hvtrxeOD5Ml6uma5ublp/oT+GtknVLX1Nj25IlOnzlfZr7/3+Uktb5x6/ueH4zSosWEYrjWybyfNnxCjdp4W/evYBSUt2qG/ZX+zxruipk5pGw5Kjd2Q7+ocYHLEzu3KmuIPMk5r7Z58HT9X2WS9PKPcLXej0e7C0mr9fW+hFjX2dnh4YJdW31jpTgS399Lc8f0kSf+97ViTLSx3Hr+gBxb9U+uyCuTm1jAV+hfDepgYrXPrEuKr92cMlI+nu/559LxeuGpnkrLqOs1ctkdny2vVq5Of3p6WwHfMG/jzw3Ea3rvhOT5/41d69N0MFVz62n59XWaBMk5cVDtPi16e2Lb6iLgZt7LfjYtJS0tTUFCQCgoK9N5776m0tPSW/0Z5ebkCAwNVVlamgAC+mJjp9S1H9MbWbxotuVvcFBMRoAFdg1Vvs2llRp7CA9op/bkRfCDeRL3VplGvpevUha/1cEKU/Nt5KvP0JR08U6b6q95KPjm0u37/k36mxuoKPjtcohnL9sjiJn2cPETl1fX6zUd7VVRWI4ub9MvhP9CsUb3Iyxaoqq3Xv7+Tof1nyhTdwVd/+9V9yjhxUcmrsiVJvx3XV0/96Admh+kSTpyr1Jx1e/VlXsOzLykmTH/8t7v1xtaj+mDnaXXr4KtNKT+isLmJ2nqrhizcrvNX7TEd7Oup+OhgxUeHaG1mvk6er9JvkvooeSRbrt3MP746qyc/yJSvl7vmjOmjL/MuKfv0JRWWfTN9393ips+eHaEuIb6mxursDMPQjGV7lH7knAZ1D9GKmYP06ubDer9xH+8uIT7680P38JKyhbYdOqsnV2TKZkiz7u+l5JE9Nf393dp54oI6+XtrffIQRdL74qYMw9Cq3Xl6aWOuquus8vP20Nzx/TSyTyeNei1dZdV1repZ3tJasVUX3VcsX75cKSkpFN0urqbOqnWZ+dp18qKyTl9SUdm16+vmT4hhbWIL/TWrQHPW7b3mfCd/byV0C9bAbiF6ZGAX+XrRKKQlZq3+UhtyCtWhvZcuNE6bjO7gq9cejlN8NF94bkVJRY0mvfmFCi5Vq0+Yv05eqNLlepumJ0Zr3k9j2tSb8TtVb7Xp7R0ntOgfR1RnNRTS3kuXvr4sw5BWPTlY97HcoUUOFZdrQ06hsk5d0t6CUtV+aw1tkK+n/vncSKaWt4BhGBr/P5/rwJnyJufdLW7q1zlA8dHBGhMTpvt+QG62RP7FrzXm9R2qrrOqo5+Xzlc2PH+mDOqq3z14F039btGqXXn67fr9kqTYqEDtKyhTey93rf1lomIiWBN/K06dr9KcdXuVdbphudiV/IyJCNCG5CGtppM+RfdVbqXorq2tVW3tN2+zy8vL1aVLF4puJ3SmtFqZpxoK8KzTl9TJ31tvTYtnNLGF6q02Ja/KVt7Fag3oGqSEbsFKiA5RVLAPRc1tOF9Zq1Gvpav064YmLNPujdYL4/ry0uI2HSup1OSlX9j3+xzTL0xLfx7P2uPbdLCwTKlr9urw2YaO5j+Lj9J/PRRndlgu6XK9TQcLy5R1+pIyT13SkbMVSh7ZU5Pjo8wOzWVknrqo//zrPkUG+yohOlgJ0cGK6xJEN+jb9JcdJ/Ty/+VKkkL9vfXK5FiN7NvJ7LBc1qubD2lJ45JFd4ub3p8xUMN7sz3Y7bDaDL2z44Re23JYdVZDFjdpQ/JQ3d2KmvpRdF/lVoruefPm6cUXX7zmPEU3gJvZceSc3v/XSc0c0p0H9Hdg98mL+sUHmerXOaBhvZ0XL9TuRG29VUu2H9eJc5V6aWJ/Bfm2jY6xQGtXb7Vp3icNfRrmjO7Drg53qKHZ1wH9LbtAL03sr4cSaM57p3KLyrXoH0c0vHcnPTq4q9nhfKdabdH9/PPP609/+tMN78nNzVXfvn3tx4x0A4Brqq23ysvdwuwLAMD3qrbeyuxJ3FRLi26Xm8czZ84czZgx44b39Ohx+x0avb295e3tfdv/HgDw3eELDwDADDx/8F1yuaI7NDRUoaFM2wQAAAAAOD+XK7pvRV5eni5evKi8vDxZrVbl5ORIknr27Ck/Pz+zwwMAAAAAtHKtuuieO3euVqxYYT/+4Q9/KEnavn27RowY0aK/cWXJe3l5+U3vBQAAAAC0DVdqxJu1SXO5Rmrft4KCAnXpQtdCAAAAAMC18vPzFRV1/a0jKbpvwmazqbCwUP7+/k7bPfdKh/X8/Hw6rMNpkJdwVuQmnBF5CWdEXsIZOVNeGoahiooKRUREyGKxXPe+Vj29/LtgsVhu+NbCmQQEBJieeMC3kZdwVuQmnBF5CWdEXsIZOUteBgYG3vSe65fjAAAAAADgjlB0AwAAAADgIBTdrYC3t7fS0tLk7e1tdiiAHXkJZ0VuwhmRl3BG5CWckSvmJY3UAAAAAABwEEa6AQAAAABwEIpuAAAAAAAchKIbAAAAAAAHoegGAAAAAMBBKLpbgSVLlqhbt25q166dBg8erN27d5sdEtqQHTt2aPz48YqIiJCbm5s+/vjjJtcNw9DcuXPVuXNn+fj4aNSoUTp69Khp8aJtWLBggQYOHCh/f3916tRJEydO1OHDh5vcU1NTo+TkZHXo0EF+fn6aPHmyzp49a1rMaP2WLl2q2NhYBQQEKCAgQImJifr000/t18lJOIOFCxfKzc1NKSkp9nPkJswwb948ubm5Nfnp27ev/bor5SVFt4tbs2aNUlNTlZaWpuzsbMXFxSkpKUklJSVmh4Y2oqqqSnFxcVqyZEmz11955RUtXrxYb731lnbt2qX27dsrKSlJNTU133usaDvS09OVnJysjIwMbdmyRXV1dRozZoyqqqrs98yePVuffPKJ1q1bp/T0dBUWFmrSpEmmxo3WLSoqSgsXLlRWVpYyMzP14x//WBMmTNDBgwclchJOYM+ePXr77bcVGxvb5Dy5CbPExMSoqKjI/vP555/br7lUXhpwaYMGDTKSk5Ptx1ar1YiIiDAWLFhgalxomyQZ69evtx/bbDYjPDzcePXVV+3nSktLDW9vb+PDDz80KUq0RSUlJYYkIz093TAa89DT09NYt26d/Z7c3FxDkrFz504TI0VbExwcbLz77rvkJExXUVFh9OrVy9iyZYsxfPhwY9asWYbB5yVMlJaWZsTFxTV7zdXykpFuF3b58mVlZWVp1KhR9nMWi0WjRo3Szp07TY0NkKSTJ0+quLi4SY4GBgZq8ODB5Ci+V2VlZZKkkJAQSVJWVpbq6uqa5Gbfvn3VtWtXchPfC6vVqtWrV6uqqkqJiYnkJEyXnJysBx98sEkOis9LmOzo0aOKiIhQjx49NHXqVOXl5UkumJceZgeA23f+/HlZrVaFhYU1OR8WFqZDhw6ZFhdwRXFxsdSYk1cLCwuzXwMczWazKSUlRUOGDFH//v2lxtz08vJSUFBQk3vJTTja/v37lZiYqJqaGvn5+Wn9+vXq16+fcnJyyEmYZvXq1crOztaePXuuucbnJcwyePBgLV++XH369FFRUZFefPFFDRs2TAcOHHC5vKToBgC0asnJyTpw4ECTdWCAWfr06aOcnByVlZXpo48+0vTp05Wenm52WGjD8vPzNWvWLG3ZskXt2rUzOxzAbuzYsfbfY2NjNXjwYEVHR2vt2rXy8fExNbZbxfRyF9axY0e5u7tf06Xv7NmzCg8PNy0u4IoreUiOwizPPPOMNm7cqO3btysqKsp+Pjw8XJcvX1ZpaWmT+8lNOJqXl5d69uyp+Ph4LViwQHFxcXrjjTfISZgmKytLJSUlGjBggDw8POTh4aH09HQtXrxYHh4eCgsLIzfhFIKCgtS7d28dO3bM5T4zKbpdmJeXl+Lj47V161b7OZvNpq1btyoxMdHU2ABJ6t69u8LDw5vkaHl5uXbt2kWOwqEMw9Azzzyj9evXa9u2berevXuT6/Hx8fL09GySm4cPH1ZeXh65ie+VzWZTbW0tOQnT3H///dq/f79ycnLsPwkJCZo6dar9d3ITzqCyslLHjx9X586dXe4zk+nlLi41NVXTp09XQkKCBg0apEWLFqmqqkozZ840OzS0EZWVlTp27Jj9+OTJk8rJyVFISIi6du2qlJQUvfTSS+rVq5e6d++uP/zhD4qIiNDEiRNNjRutW3JyslatWqUNGzbI39/fvr4rMDBQPj4+CgwM1BNPPKHU1FSFhIQoICBAv/71r5WYmKh7773X7PDRSr3wwgsaO3asunbtqoqKCq1atUqfffaZNm/eTE7CNP7+/vZ+F1e0b99eHTp0sJ8nN2GGZ599VuPHj1d0dLQKCwuVlpYmd3d3TZkyxeU+Mym6Xdwjjzyic+fOae7cuSouLtY999yjTZs2XdO4CnCUzMxMjRw50n6cmpoqSZo+fbqWL1+u5557TlVVVXrqqadUWlqqoUOHatOmTawbg0MtXbpUkjRixIgm55ctW6YZM2ZIkl5//XVZLBZNnjxZtbW1SkpK0ptvvmlKvGgbSkpK9Nhjj6moqEiBgYGKjY3V5s2bNXr0aImchBMjN2GGgoICTZkyRRcuXFBoaKiGDh2qjIwMhYaGSi6Wl25Gw966AAAAAADgO8aabgAAAAAAHISiGwAAAAAAB6HoBgAAAADAQSi6AQAAAABwEIpuAAAAAAAchKIbAAAAAAAHoegGAAAAAMBBKLoBAAAAAHAQim4AAAAAAByEohsAADRr3Lhxmj59uv14+/bt6tixo6xWq6lxAQDgSii6AQBAsyIjI3XmzBn78fDhw1VdXa2MjAxT4wIAwJVQdAMAgGZFRkaqoKDAfmyxWOTj46OSkhJt2LBBKSkppsYHAIAroOgGAADN+vZId05OjkpLS5WYmKh9+/YpLi7O1PgAAHAFFN0AAKBZkZGRqqysVHl5uWw2m2bPnq2pU6cqPDzcXnSXl5drwoQJeuedd8wOFwAAp+RhdgAAAMA5RUZGSpIKCgq0bNkyFRcXa8OGDZKk3Nxc+fj4aOzYsZo3b55Gjx5tcrQAADgnN8MwDLODAAAAzuf8+fMKDQ3VAw88oCNHjmjHjh2KjIxUdXW1IiIi1K1bN61cuVIxMTFmhwoAgNNiejkAAGhWx44d5e3trdOnTys9Pd0+8n3gwAElJibKZrPJw4NJcwAA3AhPSgAAcF01NTXXnNu3b5+GDRumpKQkPfroo0pPT5efn58p8QEA4OwY6QYAALdk37596t+/vwYMGKCnn35ajz/+uNkhAQDgtFjTDQAAAACAgzDSDQAAAACAg1B0AwAAAADgIBTdAAAAAAA4CEU3AAAAAAAOQtENAAAAAICDUHQDAAAAAOAgFN0AAAAAADgIRTcAAAAAAA5C0Q0AAAAAgINQdAMAAAAA4CAU3QAAAAAAOAhFNwAAAAAADvL/CN+U7zxxFjIAAAAASUVORK5CYII=",
+ "text/plain": [
+ "
"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "npts = 128\n",
+ "xx, f = single_freq_sine(npts)\n",
+ "plot_FFT(xx, f)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Notice that all of the power is at our single frequency, *and* it is all in the imaginary components, which is expected since $e^{ix} = \\cos(x) + i\\sin(x)$"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Next, we can try $f(x) = \\cos(2\\pi\\nu_0 x)$, and we know that a cosine is just a sine shifted in phase by $\\pi/2$."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 18,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "def single_freq_cosine(npts):\n",
+ "\n",
+ " # a pure cosine with no phase shift will result in pure real\n",
+ " # signal\n",
+ " f_0 = 0.2\n",
+ "\n",
+ " xmax = 10.0/f_0\n",
+ "\n",
+ " xx = np.linspace(0.0, xmax, npts, endpoint=False)\n",
+ "\n",
+ " f = np.cos(2.0*np.pi*f_0*xx)\n",
+ "\n",
+ " return xx, f"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 19,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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LqITEe9Jvl9JTbfddhtef/11fPjhhygvL1e+XlxcDL/fj/b29j6P5/uTkslms2H06NGYNWsW7rvvPkybNg2/+93v+P4k1W3YsAGNjY2YOXMmLBYLLBYLPv74Y/z+97+HxWJBUVER36OkGdnZ2Rg7diz27duny+sng26NsdlsmDVrFt5//33la+FwGO+//z4WLFig6tiIjjVixAgUFxf3eb96PB6sWbOG71dKOFmWcdttt+GVV17BBx98gBEjRvT581mzZsFqtfZ5f+7evRvV1dV8f5JqwuEwfD4f35+kuvPOOw9bt25FVVWV8mv27Nm49tprlf/ne5S0orOzE/v370dJSYkur59ML9egZcuW4YYbbsDs2bMxd+5cPPzww+jq6sJNN92k9tAoBXV2dmLfvn3K7w8ePIiqqirk5uZi2LBhuPPOO/Hzn/8cY8aMwYgRI3D33XejtLQUl112marjJuO79dZb8fe//x2vvfYanE6nUsflcrmQlpYGl8uFr371q1i2bBlyc3ORlZWF22+/HQsWLMD8+fPVHj6lgLvuugtLly7FsGHD0NHRgb///e/46KOP8Pbbb/P9SapzOp1KDwwhIyMDeXl5ytf5HiW1fPe738Ull1yCyspK1NbW4t5774XZbMY111yjy+sng24Nuuqqq9DU1IR77rkH9fX1mD59OpYvX35csyqiZFi/fj3OOecc5ffLli0DANxwww146qmn8P3vfx9dXV347//+b7S3t+PMM8/E8uXLWR9GCffoo48CABYtWtTn63/9619x4403AgAeeughmEwmXHnllfD5fFiyZAn++Mc/qjJeSj2NjY24/vrrUVdXB5fLhalTp+Ltt9/G+eefD/D9STrA9yip5ciRI7jmmmvQ0tKCgoICnHnmmfjss89QUFAA6PC9KcmRs3eJiIiIiIiIKM5Y001ERERERESUIAy6iYiIiIiIiBKEQTcRERERERFRgjDoJiIiIiIiIkoQBt1ERERERERECcKgm4iIiIiIiChBGHQTERERERERJQiDbiIiIiIiIqIEYdBNRERERERElCAMuomIiIiIiIgShEE3ERERERERUYIw6CYiIiIAQFNTE4qLi/HLX/5S+dqqVatgs9nw/vvvqzo2IiIivZJkWZbVHgQRERFpw5tvvonLLrsMq1atwrhx4zB9+nRceuml+O1vf6v20IiIiHSJQTcRERH1ceutt+K9997D7NmzsXXrVqxbtw52u13tYREREekSg24iIiLqo6enB5MnT0ZNTQ02bNiAKVOmqD0kIiIi3WJNNxEREfWxf/9+1NbWIhwO49ChQ2oPh4iISNe4001EREQKv9+PuXPnYvr06Rg3bhwefvhhbN26FYWFhWoPjYiISJcYdBMREZHie9/7Hv71r39h8+bNyMzMxNlnnw2Xy4XXX39d7aERERHpEtPLiYiICADw0Ucf4eGHH8azzz6LrKwsmEwmPPvss1ixYgUeffRRtYdHRESkS9zpJiIiIiIiIkoQ7nQTERERERERJQiDbiIiIiIiIqIEYdBNRERERERElCAMuomIiIiIiIgShEE3ERERERERUYIw6CYiIiIiIiJKEAbdRERERERERAnCoJuIiIiIiIgoQRh0ExERERERESUIg24iIiIiIiKiBGHQTURERERERJQgDLqJiIiIiIiIEoRBNxEREREREVGCMOgmIiIiIiIiShAG3UREREREREQJwqCbiIiIiIiIKEEsag9ADeFwGLW1tXA6nZAkSe3hEBERERERkc7IsoyOjg6UlpbCZDr5fnZKBt21tbWoqKhQexhERERERESkczU1NSgvLz/pn6dk0O10OoHoi5OVlaX2cIiIiIiIiEhnPB4PKioqlPjyZFQPuj/55BM88MAD2LBhA+rq6vDKK6/gsssuO+X3fPTRR1i2bBm2b9+OiooK/O///i9uvPHGfv9MkVKelZXFoJuIiIiIiIgG7XQly6o3Uuvq6sK0adPwyCOP9OvxBw8exMUXX4xzzjkHVVVVuPPOO3HzzTfj7bffTvhYiYiIiIiIiAZC9Z3upUuXYunSpf1+/GOPPYYRI0bgwQcfBABMmDABK1euxEMPPYQlS5YkcKREREREREREA6P6TvdArV69GosXL+7ztSVLlmD16tWqjYkokd7YUodP9jSpPQwiIiIiIhoE1Xe6B6q+vh5FRUV9vlZUVASPx4Oenh6kpaUd9z0+nw8+n0/5vcfjScpYiYaqudOH2/+xEQ6rGVt/vARmE4+4IyIiIiLSE93tdA/GfffdB5fLpfzicWGkF0fbehCWgW5/CC1dvn58BxERERERaYnugu7i4mI0NDT0+VpDQwOysrJOuMsNAHfddRfcbrfyq6amJkmjJRqaeo9X+f8GN4NuIiIiIiK9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iIgodUiShEceeQTDhw9HdnY2Hn/8caxatQoTJ05ETk4OfvaznymPXb58Oc466ywAwI4dOzB//ny89tpryMnJwU9/+lM899xzeOCBB/DMM89gx44dKC4uRk5ODtavX5+QsVsS8qxENGj1JzguDNELTWGWHUfaetDg8aE8J12lERIRERGRYfm7Iv+1pgNiAyjoB8IBwGQBLPbjH2tJA0zR/dxQAAj5AckMWB3HP9aWMeihrVixAjt27MCaNWtw0UUX4aKLLsLKlSvR2NiIGTNm4Nprr8XIkSOxdetWjBkzBgAwceJEAMCePXtQV1eHyy67DACQk5ODRx99FFOmTAEAjB8/Hlu2bMGCBQsGPb6T4U43kcaImu3CmOPCBNZ1ExEREVFC/bI08qu7pfdrq34X+dqb3+372AdGR77urun92tonIl/79219H/vwlMjXh+D73/8+0tPTcc455yArKwvXXnstcnNzMX78eEydOhVbtmwBALS3tyMzM7PP977xxhtIS0vD7bffjquvvho7duzAJZdcomSWOp1OuN3uIY3vZLjTTaQxDZ4T73THfk3shhMRERERpYrCwkLl/9PS0o77fWdnJwDA5XIp/y+8/vrr+OY3v3nShmkdHR1wuVwJGTeDbiKNqY82Uos9LkxQdrpZ001EREREifDD2sh/rTGljAu/Bcz/ZiS9PNb39kX+a0nr/drcW4BZN0TSy2PduTVhQz7WlClTsHfvXkyePBkA4PF4sGLFCtx9990n/Z7du3fjBz/4QULGw/RyIo3pTS8/UdAdSTlv4E43ERERESWCLSPyK6ahLyy2yNcs9hM/1hQTVpqtka9ZHSd+bBJceOGFfY4ae/PNN5Gfn680VztWQ0MDWlpaMHv27ISMh0E3kcacMr08uvtdz5puIiIiIqITuu666/Dqq68iFAph7969uP/++/Hkk08qR4gd6/nnn8d1110Hm82WkPEwvZxIQ2RZPmn3csSkl4uzvImIiIiIjOrQoUPK/8uyfNI/A4CPPvpI+f/S0lIsXboUL7zwAr70pS9h48aNJ/0ZwWAQf/7zn/Huu+/GdeyxGHQTaYinJwhfMAycpHu50kjN44Usy33O8SYiIiIioog//OEP/XqcxWLB1q2JrTdnejmRhoi08ex0KxzW49NfxE53tz+EDl8w6eMjIiIiIqKBYdBNpCH1p6jnBoA0mxlZjkiCCpupERERERFpH4NuIg0RgXTRSYJuxDRTa2BdNxERERGR5jHoJtIQ0bm86AT13EJRFjuYExERERHpBYNuIg05XXo5YoLuBgbdRERERESax6CbSEOUnW7XKdLLGXQTEREREekGg24iDRF12kXOU+10R1LP69lIjYiIiIhI8xh0E2mIkl5+ip1uppcTEREREekHg24ijQiEwmjujO50s3s5EREREZEhMOgm0oimDh9kGbCYJORl2E76OFHT3dTpQygsJ3GEREREREQ0UAy6iTRCpIsXOu0wmaSTPi4v0w6zSUIoLCs740REREREpE0Muok0oj+dywHAbJJQkMlmakREREREesCgm0gjRAB9qjO6hSIXm6kREREREekBg24ijWjoOH0TNaHIGdnpZtBNRERERKRtDLqJNKIhutPdn6BbdDCvZ9BNRERERKRplsF8U3t7O1555RWsWLEChw8fRnd3NwoKCjBjxgwsWbIECxcujP9IiQyu94xu+2kf23tWNxupERERERFp2YB2umtra3HzzTejpKQEP//5z9HT04Pp06fjvPPOQ3l5OT788EOcf/75mDhxIl544YXEjZrIgJRGas5+pJdnsaabiIiIiEgPBrTTPWPGDNxwww3YsGEDJk6ceMLH9PT04NVXX8XDDz+MmpoafPe7343XWIkMTexan657OWKarbF7ORERERGRtg0o6N6xYwfy8vJO+Zi0tDRcc801uOaaa9DS0jLU8RGlhE5fEJ2+INDP7uUiBZ073URERERE2jag9PLYgNvj8Zz0cfv27Tvu8UR0cmLH2mm3IMN++rUwkV7u8QbR4w8lfHxERERERDQ4g+5efvHFF8PnO76J0+7du7Fo0aIBPdcjjzyC4cOHw+FwYN68eVi7du1JH/vUU09BkqQ+vxyO0+8MEmlZY3THujDr9E3UACDTbkG6zQywgzkRERERkaYNOujOzMzE5ZdfjmAwqHxt586dWLRoEa688sp+P88LL7yAZcuW4d5778XGjRsxbdo0LFmyBI2NjSf9nqysLNTV1Sm/Dh8+PNi/BpEm9HYu798CkiRJSho6U8yJiIiIiLRr0EH3yy+/DLfbjWuvvRayLGPbtm1YtGgRrrnmGvzud7/r9/P89re/xS233IKbbroJEydOxGOPPYb09HQ8+eSTJ/0eSZJQXFys/CoqKhrsX4NIE0TQ3Z8zugV2MCciIiIi0r5BB91paWl44403sHv3bnzxi1/Eeeedh+uvvx6//e1v+/0cfr8fGzZswOLFi3sHZDJh8eLFWL169Um/r7OzE5WVlaioqMCll16K7du3n/Ln+Hw+eDyePr+ItKRRdC4fUNAdSUVnB3MiIiIiIu0aUNB9bOBqMpnwwgsvYM2aNbjyyitx9913DyiobW5uRigUOm6nuqioCPX19Sf8nnHjxuHJJ5/Ea6+9hr/97W8Ih8NYuHAhjhw5ctKfc99998Hlcim/KioqBvLXJko4ETj3p3O5II4WY003EREREZF2DejIsOzsbEiSdNzXZVnGY489hscffxyyLEOSJIRCiemovGDBAixYsED5/cKFCzFhwgQ8/vjj+NnPfnbC77nrrruwbNky5fcej4eBN2nKYNLLRYAudsmJiIiIiEh7BhR0f/jhh3H94fn5+TCbzWhoaOjz9YaGBhQXF/frOaxWK2bMmKEcU3Yidrsddnv/ukITqaFBCbr7/z4VATp3uomIiIiItGtAQffZZ58d1x9us9kwa9YsvP/++7jssssAAOFwGO+//z5uu+22fj1HKBTC1q1bcdFFF8V1bETJEg7LaOyI7Fb3t3s5YoNu1nQTEREREWnWgGq6q6urB/TkR48ePe1jli1bhieeeAJPP/00du7ciW984xvo6urCTTfdBAC4/vrrcddddymP/+lPf4p33nkHBw4cwMaNG/HlL38Zhw8fxs033zygsRFpRXOXD6GwDJMEFGT2f6dbBOiNHV7IspzAERIRERER0WANKOieM2cOvva1r2HdunUnfYzb7cYTTzyByZMn46WXXjrtc1511VX4zW9+g3vuuQfTp09HVVUVli9frjRXq66uRl1dnfL4trY23HLLLZgwYQIuuugieDwerFq1ChMnThzIX4VIMxrckV3u/Ew7LOb+fyQLnZEAPRCS0drlT9j4iIiIiIho8CR5AFtkLS0t+MUvfoEnn3wSDocDs2bNQmlpKRwOB9ra2rBjxw5s374dM2fOxN13363ZlG+PxwOXywW3242srCy1h0Mp7r0dDbj5mfWYUubCf24/c0DfO/vn76K504837jgTk0pdCRsjERERERH11d+4ckA73Xl5efjtb3+Luro6/OEPf8CYMWPQ3NyMvXv3AgCuvfZabNiwAatXr9ZswE2kNYPpXC4U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z88/7ffk5+eH9XgAuP/++wekpHd2dqK4uHjQ41fSN+aPxjfmj1Z7GKRDBoMBv/iPaWoPg4iIiIiI1G6kZrVaMXPmTKxdu1b+mt/vx9q1azF37tzTfs/cuXMHPB4APvjggzM+HgBsNhvS0tIG/CEiIiIiIiJSmurp5StWrMDy5csxa9YszJ49G08++SS6u7tx++23AwBuu+02FBUV4dFHHwUAfOc738H8+fPx61//GkuWLMHq1auxfft2PP300yr/JkREREREREQDqR50L1u2DE1NTXjggQdQX1+P6dOnY82aNXKztKqqKhiN/Rvy8+bNw4svvogf//jH+OEPf4ixY8fizTffxJQpU1T8LYiIiIiIiIg+zyBJkqT2IGKto6MDGRkZqK6uZqo5ERERERERhU30Cmtvb0d6evoZH6f6TrcanE4nAGi+mRoRERERERFpm9PpPGvQnZA73X6/H7W1tXA4HDAYlDu6abDEygl35BMbrwMCrwMKwWuBwOuAQvBaIPA6UI0kSXA6nSgsLBxQEn2qhNzpNhqNGDp0qNrDOG/suE7gdUBBvA5I4LVA4HVAIXgtEHgdqOJsO9yCqkeGEREREREREcUzBt1ERERERERECmHQrWE2mw0rV66EzWZTeyikIl4HBF4HFILXAoHXAYXgtUDgdaB5CdlIjYiIiIiIiCgWuNNNREREREREpBAG3UREREREREQKYdBNREREREREpBAG3UREREREREQKYdCtolWrVmHEiBGw2+2YM2cOtm3bdtbHv/rqq5gwYQLsdjumTp2K9957L2ZjJWWFcy0888wzuOSSS5CZmYnMzEwsXLjwnNcO6UO4nwnC6tWrYTAYsHTpUsXHSLER7rXQ3t6Ou+++GwUFBbDZbBg3bhzvEXEg3OvgySefxPjx45GUlITi4mLce++96Ovri9l4Kfo2bNiAq6++GoWFhTAYDHjzzTfP+T0ff/wxZsyYAZvNhjFjxuD555+PyVhJWeFeC6+//joWLVqEnJwcpKWlYe7cufj3v/8ds/HSQAy6VfLyyy9jxYoVWLlyJXbu3ImSkhIsXrwYjY2Np3385s2bceONN+JrX/saysrKsHTpUixduhR79+6N+dgpusK9Fj7++GPceOONWLduHbZs2YLi4mJcccUVOHnyZMzHTtET7nUgnDhxAt/97ndxySWXxGyspKxwrwW3241FixbhxIkTeO2113Do0CE888wzKCoqivnYKXrCvQ5efPFF3HfffVi5ciUOHDiAP/3pT3j55Zfxwx/+MOZjp+jp7u5GSUkJVq1adV6PP378OJYsWYLLL78c5eXluOeee3DHHXcw2IoD4V4LGzZswKJFi/Dee+9hx44duPzyy3H11VejrKxM8bHSaUikitmzZ0t33323/HefzycVFhZKjz766Gkff8MNN0hLliwZ8LU5c+ZI3/jGNxQfKykr3GvhVF6vV3I4HNILL7yg4ChJaZFcB16vV5o3b5707LPPSsuXL5euvfbaGI2WlBTutfCHP/xBGjVqlOR2u2M4SlJauNfB3XffLS1YsGDA11asWCFddNFFio+VYgOA9MYbb5z1Md///velyZMnD/jasmXLpMWLFys8Ooql87kWTmfSpEnSgw8+qMiY6Oy4060Ct9uNHTt2YOHChfLXjEYjFi5ciC1btpz2e7Zs2TLg8QCwePHiMz6e9CGSa+FUPT098Hg8yMrKUnCkpKRIr4OHHnoIubm5+NrXvhajkZLSIrkW3n77bcydOxd333038vLyMGXKFPz85z+Hz+eL4cgpmiK5DubNm4cdO3bIKegVFRV477338MUvfjFm4yb1cb5IZ+L3++F0OjlfVIlZ7QEkoubmZvh8PuTl5Q34el5eHg4ePHja76mvrz/t4+vr6xUdKykrkmvhVD/4wQ9QWFj4uZss6Uck18HGjRvxpz/9CeXl5TEaJcVCJNdCRUUFPvroI9x888147733cPToUdx1113weDxYuXJljEZO0RTJdXDTTTehubkZF198MSRJgtfrxTe/+U2mlyeYM80XOzs70dvbi6SkJNXGRup6/PHH0dXVhRtuuEHtoSQk7nQT6dhjjz2G1atX44033oDdbld7OBQjTqcTt956K5555hlkZ2erPRxSmd/vR25uLp5++mnMnDkTy5Ytw49+9CM89dRTag+NYujjjz/Gz3/+c/z+97/Hzp078frrr+Pdd9/Fww8/rPbQiEhlL774Ih588EG88soryM3NVXs4CYk73SrIzs6GyWRCQ0PDgK83NDQgPz//tN+Tn58f1uNJHyK5FoTHH38cjz32GD788ENMmzZN4ZGSksK9Do4dO4YTJ07g6quvlr/m9/sBAGazGYcOHcLo0aNjMHKKtkg+EwoKCmCxWGAymeSvTZw4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",
+ "text/plain": [
+ "
"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "xx, f = single_freq_cosine(npts)\n",
+ "plot_FFT(xx, f)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Now, as expected, all of the power is in the real component."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Now let's look at a sine with a $\\pi/4$ phase shift"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 20,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "def single_freq_sine_plus_shift(npts):\n",
+ "\n",
+ " # a pure sine with no phase shift will result in pure imaginary\n",
+ " # signal\n",
+ " f_0 = 0.2\n",
+ "\n",
+ " xmax = 10.0/f_0\n",
+ "\n",
+ " xx = np.linspace(0.0, xmax, npts, endpoint=False)\n",
+ "\n",
+ " f = np.sin(2.0*np.pi*f_0*xx + np.pi/4)\n",
+ "\n",
+ " return xx, f"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 21,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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bds+9Xf8vKRoWbx4MZ599llMnToVDQ0NeOCBB3Duuediz549mntdMugmIiJdu+OOO7Bnz56T6sCIomXq1KmoqKiA3W7Hq6++ihtvvBEffvhhtIdFMaympgbf/OY38d5778Fms0V7OESKiy++WPn/2bNnY/HixSgpKcE//vEPxMXFRXVsI8X0cg3LzMyE0Wj8VJe+pqYm5ObmRm1cRIJ4HfI1StHyjW98A2+++SY++OADFBYWKt/Pzc2Fy+VCZ2fnSbfna5PCzWKxYNKkSZg/fz4eeughlJWV4Te/+Q1fkxQ15eXlaG5uxrx582AymWAymfDhhx/it7/9LUwmE3JycvjaJFVITU3FlClTcOTIEc19ZjLo1jCLxYL58+dj3bp1yvd8Ph/WrVuHpUuXRnVsRAAwfvx45ObmnvQa7erqwpYtW/gapbCSZRnf+MY38Prrr+O///0vxo8ff9Lfz58/H2az+aTX5sGDB1FdXc3XJkWUz+eD0+nka5Ki5oILLkBlZSUqKiqUrwULFuDaa69V/p+vTVKDnp4eHD16FHl5eZr7zGR6ucatXr0aN954IxYsWIBFixbhscceQ29vL26++eZoD41iRE9PD44cOaL8+fjx46ioqEB6ejqKi4tx991346c//SkmT56M8ePH495770V+fj5WrVoV1XGTvt1xxx148cUX8cYbbyApKUmp70pJSUFcXBxSUlJwyy23YPXq1UhPT0dycjLuvPNOLF26FEuWLIn28Emn7rnnHlx88cUoLi5Gd3c3XnzxRaxfvx7vvPMOX5MUNUlJSUq/CyEhIQEZGRnK9/napGj4zne+g8suuwwlJSWor6/H/fffD6PRiKuvvlpzn5kMujXuqquuQktLC+677z40NjZizpw5WLt27acaVxGFy/bt23H++ecrf169ejUA4MYbb8Szzz6L733ve+jt7cVXv/pVdHZ24pxzzsHatWtZN0Zh9cQTTwAAli9fftL3//KXv+Cmm24CAPzf//0fDAYDrrzySjidTqxcuRJ/+MMfojJeig3Nzc244YYb0NDQgJSUFMyePRvvvPMOLrzwQoCvSVIxvjYpGmpra3H11Vejra0NWVlZOOecc/DJJ58gKysL0NjrUpL9Z+sSERERERERUYixppuIiIiIiIgoTBh0ExEREREREYUJg24iIiIiIiKiMGHQTURERERERBQmDLqJiIiIiIiIwoRBNxEREREREVGYMOgmIiIiIiIiChMG3URERERERERhwqCbiIiIiIiIKEwYdBMRERERERGFCYNuIiIiIiIiojBh0E1ERESn1dLSgtzcXPz85z9Xvrdp0yZYLBasW7cuqmMjIiJSO0mWZTnagyAiIiJ1e/vtt7Fq1Sps2rQJU6dOxZw5c3D55Zfj0UcfjfbQiIiIVI1BNxEREQ3LHXfcgffffx8LFixAZWUltm3bBqvVGu1hERERqRqDbiIiIhqW/v5+zJo1CzU1NSgvL0dpaWm0h0RERKR6rOkmIiKiYTl69Cjq6+vh8/lw4sSJaA+HiIhIE7jTTURERGfkcrmwaNEizJkzB1OnTsVjjz2GyspKZGdnR3toREREqsagm4iIiM7ou9/9Ll599VXs2rULiYmJWLZsGVJSUvDmm29Ge2hERESqxvRyIiIiOq3169fjsccew/PPP4/k5GQYDAY8//zz2LBhA5544oloD4+IiEjVuNNNREREREREFCbc6SYiIiIiIiIKEwbdRERERERERGHCoJuIiIiIiIgoTBh0ExEREREREYUJg24iIiIiIiKiMGHQTURERERERBQmDLqJiIiIiIiIwoRBNxEREREREVGYMOgmIiIiIiIiChMG3URERERERERhwqCbiIiIiIiIKEwYdBMRERERERGFCYNuIiIiIiIiojBh0E1EREREREQUJgy6iYiIiIiIiMKEQTcRERERERFRmJiiPQC18/l8qK+vR1JSEiRJivZwiIiIiIiISAVkWUZ3dzfy8/NhMAy9n82g+wzq6+tRVFQU7WEQERERERGRCtXU1KCwsHDIv2fQfQZJSUlA4IlMTk6O9nCIiIiIiIhIBbq6ulBUVKTEjENh0H0GIqU8OTmZQTcRERERERGd5ExlyGykRkRERERERBQmDLqJiIiIiIiIwoRBN5EO/KeyAeVVHdEeBhERERERDcKgm0jjDjd147YXduDWv26HzydHezhERERERBSEQTeRxokd7vZeF4639UZ7OEREREREFIRBN5HG7a6zK/9fWWs/7W2JiIiIiCiyGHQTadzu2k7l/3cF/T8REREREUUfg24iDXO4vTjQ0K38eTd3uomIiIiIVIVBN5GG7W/ogscnw2SQAAB76+3weH3RHhYREREREQUw6CbSsMpAPfdZkzKRZDXB4fbhcHNP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0R36F/DKN0L/v6tJ69EQEREREVEE7nQTGd3Bt0L/WzAXWHCT1qMhIiIiIqII3OkmMrppXwac6cDUS4CCOVqPhoiIiIiIIjDoJjK6qZeE/hARERERke4wvZyIiIiIiIhIIQy6iYiIiIiIiBTCoJuIiIiIiIhIIQy6iYiIiIiIiBTCoJuIiIiIiIhIIexefhqSJAEAXC6X1kMhIiIiIiIinRAxoogZT4ZB92m43W4AQHFxsdZDISIiIiIiIp1xu91IS0s76X83SacLy+NcMBhEbW0tUlJSYDKZtB7OoFwuF4qLi1FVVYXU1FSth0Ma4DVAvAaI10B848+feA0QrwH1SZIEt9uNwsJCmM0nr9zmTvdpmM1mjBkzRuthDElqaip/weIcrwHiNUC8BuIbf/7Ea4B4DajrVDvcAhupERERERERESmEQTcRERERERGRQhh0xwCHw4G1a9fC4XBoPRTSCK8B4jVAvAbiG3/+xGuAeA3oFxupERERERERESmEO91ERERERERECmHQTURERERERKQQBt1ERERERERECmHQTURERERERKQQBt0G8cQTT2D8+PFwOp1YsmQJtm7desrHv/zyy5g2bRqcTidmz56Nd955R7WxkjKGcw08/fTTOPfcc5GRkYGMjAwsX778tNcM6d9wPweEF154ASaTCVdeeaXiYyTlDPfn397ejjvuuAMFBQVwOByYMmUK7wUGN9xr4PHHH8fUqVORkJCA4uJifP/730dvb69q46Xo2rhxIy677DIUFhbCZDLh9ddfP+33fPzxx1iwYAEcDgcmTZqEZ599VpWxkjKGew28+uqrWLFiBXJycpCamoqlS5fivffeU2281IdBtwG8+OKLWLNmDdauXYudO3di7ty5WLlyJRobGwd9/KZNm3Dttdfim9/8JkpLS3HllVfiyiuvxN69e1UfO0XHcK+Bjz/+GNdeey3Wr1+PzZs3o7i4GBdddBFqampUHztFx3CvAeH48eP4wQ9+gHPPPVe1sVL0Dffn7/V6sWLFChw/fhyvvPIKDh06hKeffhpFRUWqj52iY7jXwHPPPYe77roLa9euxYEDB/CnP/0JL774In784x+rPnaKjq6uLsydOxdPPPHEkB5fUVGBVatW4YILLkBZWRnuvPNO3HLLLQy6DGy418DGjRuxYsUKvPPOO9ixYwcuuOACXHbZZSgt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oEGD5OfH+jcAAAAAgHN16aI7MzNTb775puN41KhRkqTt27dr0qRJnfofV5a819TUOClKAAAAAIC7uVIjflObNLdrpHarlZSUKCoqyugwAAAAAAAuqLi4WH379r3mdYrub2Cz2VRaWip/f3+X3T7kSof14uJiOqzDZZCXcFXkJlwReQlXRF7CFblSXtrtdtXW1ioiIkJm87WbQXfp6eXfBrPZfN23Fq4kICDA8MQDvo68hKsiN+GKyEu4IvISrshV8jIwMPAb72FvJgAAAAAAnISiGwAAAAAAJ6Ho7gIsFouysrJksViMDgVwIC/hqshNuCLyEq6IvIQrcse8pJEaAAAAAABOwkg3AAAAAABOQtENAAAAAICTUHQDAAAAAOAkFN0AAAAAADgJRXcXsHz5cvXv318+Pj5KTEzUnj17jA4J3cjOnTs1bdo0RUREyGQyaePGje2u2+12ZWZmqk+fPvL19VVycrKOHz9uWLzoHpYsWaI77rhD/v7+6t27t2bMmKGjR4+2u6exsVFpaWnq1auX/Pz8NGvWLJ07d86wmNH1rVixQrGxsQoICFBAQICSkpL04YcfOq6Tk3AFS5culclkUnp6uuMcuQkjLFq0SCaTqd3PsGHDHNfdKS8put3cO++8o4yMDGVlZWn//v2Ki4tTSkqKysvLjQ4N3UR9fb3i4uK0fPnyDq+/8MILWrZsmV577TXt3r1bPXr0UEpKihobG295rOg+cnJylJaWptzcXG3ZskUtLS269957VV9f77hn4cKFev/997V+/Xrl5OSotLRUM2fONDRudG19+/bV0qVLlZeXp3379unuu+/W9OnTdejQIYmchAvYu3evXn/9dcXGxrY7T27CKDExMTp79qzj5+OPP3Zcc6u8tMOtjRkzxp6WluY4tlqt9oiICPuSJUsMjQvdkyT7hg0bHMc2m80eHh5uf/HFFx3nqqqq7BaLxf72228bFCW6o/Lycrske05Ojt3elodeXl729evXO+45fPiwXZJ9165dBkaK7iY4ONi+atUqchKGq62ttQ8ePNi+ZcsW+8SJE+0LFiyw23lewkBZWVn2uLi4Dq+5W14y0u3GmpublZeXp+TkZMc5s9ms5ORk7dq1y9DYAEk6deqUysrK2uVoYGCgEhMTyVHcUtXV1ZKknj17SpLy8vLU0tLSLjeHDRumfv36kZu4JaxW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",
+ "text/plain": [
+ "
"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "xx, f = single_freq_sine_plus_shift(npts)\n",
+ "plot_FFT(xx, f)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "No surprise---the power is now equally in the real and imaginary parts."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### A frequency filter"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "we'll setup a simple two-frequency sine wave and filter a component"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 22,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "def two_freq_sine(npts):\n",
+ "\n",
+ " # a pure sine with no phase shift will result in pure imaginary \n",
+ " # signal \n",
+ " f_0 = 0.2\n",
+ " f_1 = 0.5\n",
+ "\n",
+ " xmax = 10.0/f_0\n",
+ "\n",
+ " # we call with endpoint=False -- if we include the endpoint, then for \n",
+ " # a periodic function, the first and last point are identical -- this \n",
+ " # shows up as a signal in the FFT. \n",
+ " xx = np.linspace(0.0, xmax, npts, endpoint=False)\n",
+ "\n",
+ " f = 0.5*(np.sin(2.0*np.pi*f_0*xx) + np.sin(2.0*np.pi*f_1*xx))\n",
+ "\n",
+ " return xx, f"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 23,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "[]"
+ ]
+ },
+ "execution_count": 23,
+ "metadata": {},
+ "output_type": "execute_result"
+ },
+ {
+ "data": {
+ "image/png": "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Sa1koFBUVVWD/AXf/va3ccMNN2BsbMzxeaqqYuHChbjpppvwN3/zNwCA8fFxDA0N4dvf/jYuu+wy7Ny5E8uWLcOTTz6Jc845BwCwYcMGvPe978Xrr7+OhQv5qNWJiQn09fVhfHwcvb29bfiUEhISEhISEkHDy/4dmfBx165dGBkZwerVq+ljfX19WLlyJbZs2QIA2LJlC/r7+2lwAwCrV69GIpHA1q1bbd+7XC5jYmLC8CUhISEhISHRuYhMgDMyMgIAGBoaMjw+NDREfzYyMoL58+cbfp5KpTAwMECfY4U777wTfX199GvRokWBfAYJCQkJCQmJaMBTgHPzzTdDURTHrxdeeCG4q/WJ9evXY3x8nH7t3btX9CVJSEhISEhIBAhPhgc33XQTrrzySsfnLF261NeFDA8PAwBGR0exYMEC+vjo6CjOOuss+pwDBw4YXler1XDkyBH6eitks1lks9JvQEJCQkJC4liBpwBn3rx5mDcvGLv0JUuWYHh4GJs2baIBzcTEBLZu3UorsVatWoWxsTFs374dK1asAAA89thjaDQaWLlyZSDXJSEhISEhIRE/BKbB2bNnD3bs2IE9e/agXq9jx44d2LFjh8Gz5rTTTsPDDz8MaFbhN9xwAz7zmc/gJz/5CZ599llcccUVWLhwIS655BIAwOmnn461a9fimmuuwbZt2/CrX/0K69atw2WXXcZdQSUhISEhISHR+QjMk/uWW27BAw88QL8/++yzAQCPP/44zj//fADAiy++iPHxcfqcj33sYygWi7j22msxNjaG8847Dxs2bEAupzeO/N73vod169bhggsuQCKRwPvf/37cfffdQX0MCQkJCQkJiRgicB+cKEL64EhISEhISMQPsfTBkZCQkJCQkJBoF2SAIyEhISEhIdFxkAGOhISEhISERMdBBjgSEhISEhISHQcZ4EhISEhISEh0HAIrE48ySOGYbLopISEhISERH5B9m6cA/JgMcCYnJwFANt2UkJCQkJCIISYnJ9HX1+f4nGPSB6fRaGDfvn3o6emBoihtfe+JiQksWrQIe/fulR47AUKOc3iQYx0O5DiHBznW4SCIcVZVFZOTk1i4cCESCWeVzTHJ4CQSCRx//PGB/o7e3l5544QAOc7hQY51OJDjHB7kWIeDdo+zG3NDIEXGEhISEhISEh0HGeBISEhISEhIdBxkgNNmZLNZ3Hrrrchms6IvpaMhxzk8yLEOB3Kcw4Mc63AgepyPSZGxhISEhISERGdDMjgSEhISEhISHQcZ4EhISEhISEh0HGSAIyEhISEhIdFxkAGOhISEhISERMdBBjhtxD333IPFixcjl8th5cqV2LZtm+hLij1+8Ytf4I//+I+xcOFCKIqCRx55xPBzVVVxyy23YMGCBcjn81i9ejVeeuklYdcbV9x5551461vfip6eHsyfPx+XXHIJXnzxRcNzSqUSrr/+esydOxfd3d14//vfj9HRUWHXHFd87Wtfw5lnnknNz1atWoV///d/pz+X4xwMPv/5z0NRFNxwww30MTnW7cGnP/1pKIpi+DrttNPoz0WNswxw2oSHHnoIN954I2699VY89dRTWL58OdasWYMDBw6IvrRYo1gsYvny5bjnnnssf/6FL3wBd999N+69915s3boVXV1dWLNmDUqlUujXGmc88cQTuP766/Gb3/wGGzduRLVaxYUXXohisUif89d//df413/9V/zwhz/EE088gX379uF973uf0OuOI44//nh8/vOfx/bt2/Hb3/4W7373u3HxxRfj+eefB+Q4B4Inn3wSX//613HmmWcaHpdj3T78wR/8Afbv30+/fvnLX9KfCRtnVaItOPfcc9Xrr7+efl+v19WFCxeqd955p9Dr6iQAUB9++GH6faPRUIeHh9UvfvGL9LGxsTE1m82qP/jBDwRdZWfgwIEDKgD1iSeeUFVtXNPptPrDH/6QPmfnzp0qAHXLli0Cr7QzMGfOHPUb3/iGHOcAMDk5qZ5yyinqxo0b1Xe9613qX/3VX6mqnNNtxa233qouX77c8mcix1kyOG1ApVLB9u3bsXr1avpYIpHA6tWrsWXLFqHX1snYtWsXRkZGDOPe19eHlStXynFvEePj4wCAgYEBAMD27dtRrVYNY33aaafhhBNOkGPdAur1Oh588EEUi0WsWrVKjnMAuP7663HRRRcZxhRyTrcdL730EhYuXIilS5fi8ssvx549ewDB43xMNttsNw4dOoR6vY6hoSHD40NDQ3jhhReEXVenY2RkBNDGmcXQ0BD9mYR3NBoN3HDDDXjHO96BN7/5zYA21plMBv39/YbnyrH2h2effRarVq1CqVRCd3c3Hn74YSxbtgw7duyQ49xGPPjgg3jqqafw5JNPzvqZnNPtw8qVK/Htb38bp556Kvbv34/bbrsN73znO/Hcc88JHWcZ4EhISBhw/fXX47nnnjPk0CXai1NPPRU7duzA+Pg4fvSjH+HP//zP8cQTT4i+rI7C3r178Vd/9VfYuHEjcrmc6MvpaLznPe+h/z/zzDOxcuVKnHjiifjnf/5n5PN5YdclU1RtwODgIJLJ5CxV+OjoKIaHh4VdV6eDjK0c9/Zh3bp1+OlPf4rHH38cxx9/PH18eHgYlUoFY2NjhufLsfaHTCaDk08+GStWrMCdd96J5cuX4ytf+Yoc5zZi+/btOHDgAN7ylrcglUohlUrhiSeewN13341UKoWhoSE51gGhv78fb3rTm/Dyyy8LndMywGkDMpkMVqxYgU2bNtHHGo0GNm3ahFWrVgm9tk7GkiVLMDw8bBj3iYkJbN26VY67R6iqinXr1uHhhx/GY489hiVLlhh+vmLFCqTTacNYv/jii9izZ48c6zag0WigXC7LcW4jLrjgAjz77LPYsWMH/TrnnHNw+eWX0//LsQ4GU1NTeOWVV7BgwQKxczpQCfMxhAcffFDNZrPqt7/9bfX3v/+9eu2116r9/f3qyMiI6EuLNSYnJ9Wnn35affrpp1UA6l133aU+/fTT6muvvaaqqqp+/vOfV/v7+9V/+Zd/UZ955hn14osvVpcsWaLOzMyIvvRY4brrrlP7+vrUzZs3q/v376df09PT9Dkf+tCH1BNOOEF97LHH1N/+9rfqqlWr1FWrVgm97jji5ptvVp944gl1165d6jPPPKPefPPNqqIo6qOPPqqqcpwDBVtFpcqxbhtuuukmdfPmzequXbvUX/3qV+rq1avVwcFB9cCBA6oqcJxlgNNGfPWrX1VPOOEENZPJqOeee676m9/8RvQlxR6PP/64CmDW15//+Z+rqlYq/qlPfUodGhpSs9msesEFF6gvvvii6MuOHazGGID6rW99iz5nZmZG/fCHP6zOmTNHLRQK6p/8yZ+o+/fvF3rdccT/+l//Sz3xxBPVTCajzps3T73gggtocKPKcQ4U5gBHjnV7cOmll6oLFixQM5mMetxxx6mXXnqp+vLLL9OfixpnRW0ubhISEhISEhISHQOpwZGQkJCQkJDoOMgAR0JCQkJCQqLjIAMcCQkJCQkJiY6DDHAkJCQkJCQkOg4ywJGQkJCQkJDoOMgAR0JCQkJCQqLjIAMcCQkJCQkJiY6DDHAkJCQkJCQkOg4ywJGQkJCQkJDoOMgAR0JCQkJCQqLjIAMcCQkJCQkJiY6DDHAkJCQkJCQkOg7/PxTg4QicQ+P4AAAAAElFTkSuQmCC",
+ "text/plain": [
+ "
"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "npts = 256\n",
+ "\n",
+ "xx, f = two_freq_sine(npts)\n",
+ "\n",
+ "fig, ax = plt.subplots()\n",
+ "ax.plot(xx, f)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "we'll take the transform: $f(x) \\rightarrow F(k)$"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 24,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# normalization factor: the 2 here comes from the fact that we neglect \n",
+ "# the negative portion of frequency space because our input function \n",
+ "# is real \n",
+ "norm = 2.0/npts\n",
+ "fk = norm*np.fft.rfft(f)\n",
+ "\n",
+ "ofk_r = fk.real.copy()\n",
+ "ofk_i = fk.imag.copy()\n",
+ "\n",
+ "# get the frequencies\n",
+ "k = np.fft.rfftfreq(len(xx))\n",
+ "\n",
+ "# since we don't include the endpoint in xx, to normalize things, we need \n",
+ "# max(xx) + dx to get the true length of the domain\n",
+ "#\n",
+ "# This makes the frequencies essentially multiples of 1/dx\n",
+ "kfreq = k*npts/(max(xx) + xx[1])"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 25,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ ""
+ ]
+ },
+ "execution_count": 25,
+ "metadata": {},
+ "output_type": "execute_result"
+ },
+ {
+ "data": {
+ "image/png": "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A3ZFRETEVlS8iIiIiK2oeKmAsLAwHnvsMcLCwqyOEpT0/FYtPb9VS89v1dLzW7Xs9vwG3YBdERERCW468iIiIiK2ouJFREREbEXFi4iIiNiKihcRERGxFRUvP/PKK6/QsGFDwsPD6dKlC0uWLDlr/8mTJ9OiRQvCw8Np06YNX3/99a+W1Y4q8vy+8847OByOUlt4ePivmtdO5s2bR//+/UlKSsLhcDB16tRf3GfOnDl06NCBsLAwmjZtyjvvvPOrZLWjij6/c+bMKfP6dTgcZGRk/GqZ7WLcuHFceumlREVFUbt2bQYOHEh6evov7qf333NTmec30N9/Vbyc5pNPPmH06NE89thjrFixgrZt29KnTx8OHjxYbv+FCxcyZMgQhg8fzsqVKxk4cCADBw5k7dq1v3p2O6jo88vJ2R7379/v23bu3PmrZraT3Nxc2rZtyyuvvHJO/bdv3861115Lz549WbVqFQ888AB33XUXM2bMqPKsdlTR5/eU9PT0Uq/h2rVrV1lGu5o7dy733XcfP/74IzNnzqSoqIirr76a3NzcM+6j999zV5nnl0B//zXEp3PnzsZ9993n+9rj8RhJSUnGuHHjyu1/0003Gddee22pti5duhh33313lWe1o4o+v2+//bYRExPzKyYMHoAxZcqUs/Z5+OGHjYsvvrhU280332z06dOnitPZ37k8v99//70BGEePHv3VcgWLgwcPGoAxd+7cM/bR+2/lncvzG+jvvzryclJhYSHLly+nd+/evjan00nv3r1ZtGhRufssWrSoVH+APn36nLH/hawyzy/A8ePHadCgAcnJyQwYMIB169b9SomDn16/v4527dpRp04dfvOb37BgwQKr49hCdnY2AHFxcWfso9dv5Z3L80uAv/+qeDnp8OHDeDweEhISSrUnJCSc8Rx1RkZGhfpfyCrz/DZv3py33nqLL7/8kg8++ACv10u3bt3Ys2fPr5Q6uJ3p9ZuTk8OJEycsyxUs6tSpw2uvvcbnn3/O559/TnJyMj169GDFihVWRwtoXq+XBx54gMsuu4zWrVufsZ/efyvnXJ/fQH//DbpVpSV4pKSkkJKS4vu6W7dutGzZktdff52nnnrK0mwiv6R58+Y0b97c93W3bt3YunUr48eP5/3337c0WyC77777WLt2LT/88IPVUYLSuT6/gf7+qyMvJ9WqVQuXy8WBAwdKtR84cIDExMRy90lMTKxQ/wtZZZ7fnwsJCaF9+/Zs2bKlilJeWM70+o2OjiYiIsKyXMGsc+fOev2exahRo5g+fTrff/899erVO2tfvf9WXEWe358LtPdfFS8nhYaG0rFjR2bNmuVr83q9zJo1q1T1ebqUlJRS/QFmzpx5xv4Xsso8vz/n8XhYs2YNderUqcKkFw69fn99q1at0uu3HIZhMGrUKKZMmcLs2bNp1KjRL+6j1++5q8zz+3MB9/5r9YjhQPLxxx8bYWFhxjvvvGOsX7/eGDlypBEbG2tkZGQYhmEYt912mzFmzBhf/wULFhhut9t47rnnjA0bNhiPPfaYERISYqxZs8bCnyJwVfT5feKJJ4wZM2YYW7duNZYvX24MHjzYCA8PN9atW2fhTxG4jh07ZqxcudJYuXKlARgvvPCCsXLlSmPnzp2GYRjGmDFjjNtuu83Xf9u2bUa1atWMP//5z8aGDRuMV155xXC5XEZaWpqFP0XgqujzO378eGPq1KnG5s2bjTVr1hh//OMfDafTaXz33XcW/hSB6Z577jFiYmKMOXPmGPv37/dteXl5vj56/628yjy/gf7+q+LlZ15++WWjfv36RmhoqNG5c2fjxx9/9N135ZVXGsOGDSvV/9NPPzUuuugiIzQ01Lj44ouNr776yoLU9lGR5/eBBx7w9U1ISDD69etnrFixwqLkge/Upbk/3049p8OGDTOuvPLKMvu0a9fOCA0NNRo3bmy8/fbbFqUPfBV9fp955hmjSZMmRnh4uBEXF2f06NHDmD17toU/QeAq73kFSr0e9f5beZV5fgP9/ddhmD+YiIiIiC1ozIuIiIjYiooXERERsRUVLyIiImIrKl5ERETEVlS8iIiIiK2oeBERERFbUfEiIiIitqLiRURERGxFxYuIiIjYiooXERERsRUVLyIiImIrKl5ERETEVv4fC/49hSyslPgAAAAASUVORK5CYII=",
+ "text/plain": [
+ "
"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "Y0 = np.array([1.0, 0.0, 0.0])\n",
+ "tmax = 4.e7\n",
+ "\n",
+ "ts, Ys = vode_integrate(Y0, tmax)\n",
+ "\n",
+ "fig, ax = plt.subplots()\n",
+ "ax.loglog(ts, Ys[0,:], label=r\"$y_1$\")\n",
+ "ax.loglog(ts, Ys[1,:], label=r\"$y_2$\")\n",
+ "ax.loglog(ts, Ys[2,:], label=r\"$y_3$\")\n",
+ "\n",
+ "ax.legend(loc=\"best\", frameon=False)\n",
+ "ax.set_xlabel(\"time\")"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "```{admonition} try it\n",
+ "Redo this integration, but now use the `RK45` solver instead of `BDF`. Does it work?\n",
+ "\n",
+ "You may need to use the `kernel` menu in Jupyter to interrupt the kernel if you get impatient.\n",
+ "```"
+ ]
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 3 (ipykernel)",
+ "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.13.3"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 4
+}
diff --git a/content/05-scipy/scipy-exercises-2.ipynb b/content/05-scipy/scipy-exercises-2.ipynb
new file mode 100644
index 00000000..75750590
--- /dev/null
+++ b/content/05-scipy/scipy-exercises-2.ipynb
@@ -0,0 +1,375 @@
+{
+ "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": [
+ "# More SciPy Exercises"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Linear Algebra"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Q1: Condition number\n",
+ "\n",
+ "For a linear system, ${\\bf A x} = {\\bf b}$, we can only solve for $x$ if the determinant of the matrix ${\\bf A}$ is non-zero. If the determinant is zero, then we call the matrix _singular_. The _condition number_ of a matrix is a measure of how close we are to being singular. The formal definition is:\n",
+ "\n",
+ "\\begin{equation}\n",
+ "\\mathrm{cond}({\\bf A}) = \\| {\\bf A}\\| \\| {\\bf A}^{-1} \\|\n",
+ "\\end{equation}\n",
+ "\n",
+ "But we can think of it as a measure of how much ${\\bf x}$ would change due to a small change in ${\\bf b}$. A large condition number means that our solution for ${\\bf x}$ could be inaccurate.\n",
+ "\n",
+ "A _Hilbert matrix_ has $H_{ij} = (i + j + 1)^{-1}$, and is known to have a large condition number. Here's a routine to generate a Hilbert matrix"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "def hilbert(n):\n",
+ " \"\"\" return a Hilbert matrix, H_ij = (i + j - 1)^{-1} \"\"\"\n",
+ "\n",
+ " H = np.zeros((n,n), dtype=np.float64)\n",
+ "\n",
+ " for i in range(1, n+1):\n",
+ " for j in range(1, n+1):\n",
+ " H[i-1,j-1] = 1.0/(i + j - 1.0)\n",
+ " return H"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Let's solve ${\\bf Hx} ={\\bf b}$. Create a linear system by picking an ${\\bf x}$ and generating a ${\\bf b}$ by multiplying by the matrix ${\\bf H}$. Then use the `scipy.linalg.solve()` function to recover ${\\bf x}$. Compute the error in ${\\bf x}$ as a function of the size of the matrix.\n",
+ "\n",
+ "You won't need a large matrix, $n \\sim 13$ or so, will start showing big errors.\n",
+ "\n",
+ "You can compute the condition number with `numpy.linalg.cond()`\n",
+ "\n",
+ "There are methods that can do a better job with nearly-singular matrices. Take a look at `scipy.linalg.lstsq()` for example."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# FFTs"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Q2: Noisy signal"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "A convolution is defined as: \n",
+ "\n",
+ " \\begin{equation} \n",
+ " (f \\star g)(t) \\equiv \\int_{-\\infty}^{\\infty} f(\\tau) g(t - \\tau) d\\tau \n",
+ " \\end{equation} \n",
+ "\n",
+ " It is easy to compute this with FFTs, via the [convolution theorem](https://en.wikipedia.org/wiki/Convolution_theorem),\n",
+ " \n",
+ " \\begin{equation} \n",
+ " \\mathcal{F}\\{f \\star g\\} = \\mathcal{F}\\{f\\} \\, \\mathcal{F}\\{g\\} \n",
+ " \\end{equation} \n",
+ " That is the Fourier transform of the convolution of $f$ and $g$ is simply\n",
+ " the product of the individual transforms of $f$ and $g$. This allows us\n",
+ " to compute the convolution via multiplication in Fourier space and then take\n",
+ " the inverse transform, $\\mathcal{F}^{-1}\\{\\}$, to recover the convolution in real space:\n",
+ " \n",
+ " \\begin{equation}\n",
+ " f \\star g = \\mathcal{F}^{-1}\\{ \\mathcal{F}\\{f\\} \\, \\mathcal{F}\\{g\\}\\}\n",
+ " \\end{equation}\n",
+ " \n",
+ "A common use of a convolution is to smooth noisy data, for example by convolving noisy data with a Gaussian. We'll do that here."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Here's some noisy data we'll work with"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "def fdata(x, L):\n",
+ " A = L/10.0\n",
+ " return 2*np.sin(2*np.pi*x/L) + x*(L-x)**2/L**3 * np.cos(x) + \\\n",
+ " 5*x*(L-x)/L**2 + A/2 + 0.1*A*np.sin(13*np.pi*x/L)\n",
+ "\n",
+ "N = 2048\n",
+ "L = 50.0\n",
+ "x = np.linspace(0, L, N, endpoint=False)\n",
+ "orig = fdata(x, L)\n",
+ "\n",
+ "rng = np.random.default_rng()\n",
+ "noisy = orig + 0.5 * rng.standard_normal(N)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "[]"
+ ]
+ },
+ "execution_count": 6,
+ "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.plot(x, noisy)\n",
+ "plt.plot(x, orig)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "SciPy provides a convolution function `scipy.signal.convolve()` that can do the convolution for us directly. To smooth the data, we want to use a Gaussian, which can be produced by `scipy.signal.gaussian()`.\n",
+ "\n",
+ "Convolve the noisy data with a Gaussian and plot the result together with the original data `orig`. You'll need to play with the width of the Gaussian to get a nice smoothing. You also will need to normalize the Gaussian so that it sums to 1, otherwise, your convolved data will be shifted verfically from the original function."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Q3: FFT of chaotic pendulum\n",
+ "\n",
+ "Last time we looked at ODEs and the chaotic pendulum, and were interested in writing a method to integrate the pendulum in time.\n",
+ "\n",
+ "Here we want to examine its behavior in frequency space. The code below will integrate the chaotic pendulum, while requesting that the solution be stored at points spaced with a fixed dt, which makes it suitable for taking the FFT."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "from functools import partial\n",
+ "from scipy.integrate import solve_ivp\n",
+ "\n",
+ "def rhs(t, Y, q, omega_d, b):\n",
+ " \"\"\" damped driven pendulum system derivatives. Here, Y = (theta, omega) are\n",
+ " the solution variables. \"\"\"\n",
+ " f = np.zeros_like(Y)\n",
+ " \n",
+ " f[0] = Y[1]\n",
+ " f[1] = -q*Y[1] - np.sin(Y[0]) + b*np.cos(omega_d*t)\n",
+ "\n",
+ " return f\n",
+ "\n",
+ "def restrict_theta(theta):\n",
+ " \"\"\" convert theta to be restricted to lie between -pi and pi\"\"\"\n",
+ " tnew = theta + np.pi\n",
+ " tnew += -2.0*np.pi*np.floor(tnew/(2.0*np.pi))\n",
+ " tnew -= np.pi\n",
+ " return tnew\n",
+ "\n",
+ "def int_pendulum(theta0, q, omega_d, b, tend, dt):\n",
+ " \"\"\" integrate the pendulum and return solution with dt\"\"\"\n",
+ "\n",
+ " # points in time where we'll request the solution\n",
+ " tpoints = np.arange(0.0, tend, dt)\n",
+ " \n",
+ " r = solve_ivp(partial(rhs, q=q, omega_d=omega_d, b=b),\n",
+ " [0.0, tend], [theta0, 0.0],\n",
+ " method='RK45', t_eval=tpoints)\n",
+ "\n",
+ " return r.t, r.y"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "The call below will give an undamped pendulum. For a small amplitude, since we have $L = g$ in our pendulum, the period is simply $T = 2\\pi$, and the frequency is $\\nu_k = 1/(2\\pi)$. We plot things in terms of angular frequency, $\\omega_k = 2\\pi \\nu_k$, so all the power will be at $\\omega_k = 1$."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 8,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "t, y = int_pendulum(np.radians(10), 0.0, 0.6666, 0.0, 200.0, 0.1)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Your task is to complete the power spectrum routine below to calculate the FFT of theta and plot it. Experiment with the damping and driving parameters to see the complexity of the pendulum in frequency space when it becomes chaotic. For reference, here's a plot of the solution theta"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 9,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "Text(0, 0.5, '$\\\\theta$')"
+ ]
+ },
+ "execution_count": 9,
+ "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.plot(t, restrict_theta(y[0,:]))\n",
+ "plt.xlabel(\"t\")\n",
+ "plt.ylabel(r\"$\\theta$\")"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 10,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "def power_spectrum(t, theta0):\n",
+ " \"\"\" return the power spectrum of theta. For the frequency\n",
+ " component, return it in terms of omega \"\"\"\n",
+ "\n",
+ " theta = restrict_theta(theta0)\n",
+ " \n",
+ " # fill in the rest -- take the FFT of theta and return omega_k and \n",
+ " # the transform of theta\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Fitting"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Q4: Let's find the errors on our fit\n",
+ "\n",
+ "We looked at fits, but not what the errors are on the fit. Look at `scipy.optimize.curve_fit()`. This is a simplified wrapper on the least squares fitting. It can return the convariance matrix, the diagonals of which can give the error of the fit for the parameters. \n",
+ "\n",
+ "Make up some data that models a non-linear function (by introducing some random noise) and perform a fit and find the errors on the parameters."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 3 (ipykernel)",
+ "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.13.2"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 4
+}
diff --git a/content/05-scipy/scipy-exercises.ipynb b/content/05-scipy/scipy-exercises.ipynb
new file mode 100644
index 00000000..0741ef0e
--- /dev/null
+++ b/content/05-scipy/scipy-exercises.ipynb
@@ -0,0 +1,398 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# SciPy exercises"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "import numpy as np\n",
+ "import matplotlib.pyplot as plt"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Integration"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "from scipy import integrate"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Q1: integrating an analytic function\n",
+ "\n",
+ "Numerical integration methods work differently depending on whether you have the analytic function available (in which case you can evaluate it freely at any point you please) or if it is sampled for you.\n",
+ "\n",
+ "Consider the function $f(x) = e^{-x^2}$. We want to integrate this from $[-5, 5]$. The\n",
+ "analytic integral is not easily obtained. Use `integrate.quad` to do the integration."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Q2: integrating a sampled function\n",
+ "\n",
+ "Consider now that you have data that represents a function sampled a `N` points, but you don't know the analytic form of the function. Here, we create the sampling here for a Gaussian and we will do the same integral as in Q1."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "array([1.38879439e-11, 3.15061953e-10, 5.80457065e-09, 8.68481106e-08,\n",
+ " 1.05527775e-06, 1.04133225e-05, 8.34503173e-05, 5.43103745e-04,\n",
+ " 2.87047478e-03, 1.23208538e-02, 4.29481052e-02, 1.21580337e-01,\n",
+ " 2.79510942e-01, 5.21855680e-01, 7.91258065e-01, 9.74320895e-01,\n",
+ " 9.74320895e-01, 7.91258065e-01, 5.21855680e-01, 2.79510942e-01,\n",
+ " 1.21580337e-01, 4.29481052e-02, 1.23208538e-02, 2.87047478e-03,\n",
+ " 5.43103745e-04, 8.34503173e-05, 1.04133225e-05, 1.05527775e-06,\n",
+ " 8.68481106e-08, 5.80457065e-09, 3.15061953e-10, 1.38879439e-11])"
+ ]
+ },
+ "execution_count": 3,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "N = 32\n",
+ "x = np.linspace(-5, 5, N)\n",
+ "f = np.exp(-x**2)\n",
+ "f"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Compute the integral of this sampled function using Simpson's method (`integrate.simps`). Now, vary the number of sample points (try 64, 128, ...) and see how the answer changes. Simpson's method is 4-th order accurate, which means that the error should decrease by $2^4$ when we double the number of sample points"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Optional: Make a plot of the error (compared to the analytic integral from Q1) vs. N"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Interpolation"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "from scipy import interpolate"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Q3: interpolation error\n",
+ "\n",
+ "There are a large number of different interpolation schemes available through scipy. Let's test them out.\n",
+ "\n",
+ "Create a python function, $f(x)$, that is your true function. Now create $N$ samples of it (either regularly spaced or irregularly spaced).\n",
+ "\n",
+ "Try some of the different interolation routines. `interpolate.interp1d` takes a `kind` argument that let's you choose the order of the interpolation. Measure the error in the method, by comparing the interpolated result with the actual function value. Also, try using cubic splines (look at `CubicSpline`)\n",
+ "\n",
+ "Try plotting the resulting interpolant."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Root Finding"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Q4: scalar function roots\n",
+ "\n",
+ "Consider the function\n",
+ "\n",
+ "$$q(x) = x^3 - 2x^2 - 11x + 12$$\n",
+ "\n",
+ "This has 3 roots, but is known to cause problems for some root-finding methods (it exhibits basis of attraction: https://en.wikipedia.org/wiki/Newton%27s_method#Basins_of_attraction -- very closely spaced initial guesses leave to very different roots)\n",
+ "\n",
+ "Use the SciPy `optimize.brentq` method to find the roots. You might need to play around with the intervals to find all 3 roots (try plotting the function to help)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "from scipy import optimize"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## ODEs"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Q5: orbits\n",
+ "\n",
+ "We want to consider planetary orbits. To do this, we need to solve Newton's second law together with Newton's law of gravity. If we restrict ourselves to the x-y plane, then there are 4 quantities we need to solve for: $x$, $y$, $v_x$, and $v_y$. These evolve according to:\n",
+ "\n",
+ "\\begin{align*}\n",
+ "\\frac{dx}{dt} &= v_x \\\\\n",
+ "\\frac{dy}{dt} &= v_y \\\\\n",
+ "\\frac{dv_x}{dt} &= a_x = -\\frac{GM_\\star x}{r^3} \\\\\n",
+ "\\frac{dv_y}{dt} &= a_y = -\\frac{GM_\\star y}{r^3}\n",
+ "\\end{align*}\n",
+ "\n",
+ "To integrate these forward in time, we need an initial condition for each quantity. We'll setup our system such that the Sun is at the origin (that will be one focus), and the planet begins at perihelion and orbits counterclockwise. \n",
+ "\n",
+ "\n",
+ "\n",
+ "The distance of perihelion from the focus is:\n",
+ "\n",
+ "$$r_p = a (1 - e)$$\n",
+ "\n",
+ "where $a$ is the semi-major axis and $e$ is the eccentricity. The perihelion velocity is all in the $y$ direction and is:\n",
+ "\n",
+ "$$v_y = v_p = \\sqrt{\\frac{GM_\\star}{a} \\frac{1+e}{1-e}}$$\n",
+ "\n",
+ "We'll work in units of AU, years, and solar masses, in which case, $GM_\\star = 4\\pi^2$ (for the Sun). \n",
+ "\n",
+ "Your initial conditions should be:\n",
+ "\n",
+ " * $x(t=0) = r_p$\n",
+ " * $y(t=0) = 0$\n",
+ " * $v_x(t=0) = 0$\n",
+ " * $v_y(t=0) = v_p$\n",
+ "\n",
+ "Here's a righthand side function for the ODEs:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "def rhs(t, Y, GM=4*np.pi**2):\n",
+ " \"\"\"RHS for orbits, Y is the solution vector, containing\n",
+ " x, y, v_x, and v_y\"\"\"\n",
+ "\n",
+ " x, y, vx, vy = Y\n",
+ " f = np.zeros_like(Y)\n",
+ "\n",
+ " # dx/dt = vx\n",
+ " f[0] = vx\n",
+ "\n",
+ " # dy/dt = vy\n",
+ " f[1] = vy\n",
+ "\n",
+ " # d(vx)/dt = -GMx/r**3\n",
+ " r = np.sqrt(x**2 + y**2)\n",
+ " f[2] = -GM*x/r**3\n",
+ "\n",
+ " # d(vy)/dt = -GMy/r**3\n",
+ " f[3] = -GM*y/r**3\n",
+ "\n",
+ " return f"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Use the SciPy ODE integration methods to integrate an orbit and plot it"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Q6: damped driven pendulum and chaos"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "There are a large class of ODE integration methods available through the `scipy.integrate.ode()` function. Not all of them provide _dense output_ -- most will just give you the value at the end of the integration. \n",
+ "\n",
+ "The explicit Runge-Kutta integrator will give you access to the solution at intermediate points and provides methods to interpolate to any value. You enable this via `dense_output=True` (see the example in our out-of-class notebook).\n",
+ "\n",
+ "The damped driven pendulum obeys the following equations:\n",
+ "\n",
+ "$$\\dot{\\theta} = \\omega$$\n",
+ "\n",
+ "$$\\dot{\\omega} = -q \\omega - \\sin \\theta + b \\cos \\omega_d t$$\n",
+ "\n",
+ "here, $\\theta$ is the angle of the pendulum from vertical and $\\omega$ is the angular velocity. $q$ is a damping coefficient, $b$ is a forcing amplitude, and $\\omega_d$ is a driving frequency.\n",
+ "\n",
+ "Choose $q = 0.5$ and $\\omega_d = 2/3$.\n",
+ "\n",
+ "Integrate the system for different values of $b$ (start with $b = 0.9$ and increase by $0.05$, and plot the results ($\\theta$ vs. $t$). Here's a RHS function to get you started:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "def rhs(t, Y, q, omega_d, b):\n",
+ " \"\"\" damped driven pendulum system derivatives. Here, Y = (theta, omega) are\n",
+ " the solution variables. \"\"\"\n",
+ " f = np.zeros_like(Y)\n",
+ " \n",
+ " f[0] = Y[1]\n",
+ " f[1] = -q*Y[1] - np.sin(Y[0]) + b*np.cos(omega_d*t)\n",
+ "\n",
+ " return f"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Note that the pendulum can flip over, giving values of $\\theta$ outside of $[-\\pi, \\pi]$. The following function can be used to restrict it back to $[-\\pi, \\pi]$ for plotting."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 8,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "def restrict_theta(theta):\n",
+ " \"\"\" convert theta to be restricted to lie between -pi and pi\"\"\"\n",
+ " tnew = theta + np.pi\n",
+ " tnew += -2.0*np.pi*np.floor(tnew/(2.0*np.pi))\n",
+ " tnew -= np.pi\n",
+ " return tnew"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Write a function that takes an initial angle, $\\theta_0$, and integrates the system and returns the solution.\n",
+ "\n",
+ "Note, the righthand side function, `rhs`, takes additional arguments that you need to pass through the integrator. The preferred method to do this with the `solve_ivp()` interface appears to be to use `functools.partial()`, as:\n",
+ "```\n",
+ "from functools import partial\n",
+ "\n",
+ "r = solve_ivp(partial(rhs, q=q, omega_d=omega_d, b=b), ...)\n",
+ "```\n",
+ "\n",
+ "Some values of $b$ will show very non-periodic behavior. To see chaos, integrate two different pendula that are the same except for $\\theta_0$, with only a small difference between then (like 60 degrees and 60.0001 degrees. You'll see the solutions track for a while, but then diverge."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 3 (ipykernel)",
+ "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.12.1"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 4
+}
diff --git a/content/05-scipy/scipy.md b/content/05-scipy/scipy.md
new file mode 100644
index 00000000..e0c7b9e5
--- /dev/null
+++ b/content/05-scipy/scipy.md
@@ -0,0 +1,3 @@
+# SciPy
+
+SciPy provides implementations of many common numerical methods.
diff --git a/lectures/05-scipy/scipy.png b/content/05-scipy/scipy.png
similarity index 100%
rename from lectures/05-scipy/scipy.png
rename to content/05-scipy/scipy.png
diff --git a/lectures/05-scipy/simpsons.png b/content/05-scipy/simpsons.png
similarity index 100%
rename from lectures/05-scipy/simpsons.png
rename to content/05-scipy/simpsons.png
diff --git a/lectures/05-scipy/trapezoid.png b/content/05-scipy/trapezoid.png
similarity index 100%
rename from lectures/05-scipy/trapezoid.png
rename to content/05-scipy/trapezoid.png
diff --git a/content/06-sympy/sympy-examples.ipynb b/content/06-sympy/sympy-examples.ipynb
new file mode 100644
index 00000000..002f7b3c
--- /dev/null
+++ b/content/06-sympy/sympy-examples.ipynb
@@ -0,0 +1,2420 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# SymPy examples"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "sources:\n",
+ "http://docs.sympy.org/latest/tutorial/\n",
+ "http://nbviewer.ipython.org/github/ipython/ipython/blob/master/examples/notebooks/SymPy%20Examples.ipynb"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "SymPy provides support for symbolic math to python, similar to what you would do with Mathematica or Maple. The major difference is that it acts just like any other python module, so you can use the symbolic math together in your own python projects with the rest of python functionality.\n",
+ "\n",
+ "The following import and function (`init_session()`) sets up a nice environment for us when working in Jupyter"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "IPython console for SymPy 1.13.3 (Python 3.13.2-64-bit) (ground types: gmpy)\n",
+ "\n",
+ "These commands were executed:\n",
+ ">>> from sympy import *\n",
+ ">>> x, y, z, t = symbols('x y z t')\n",
+ ">>> k, m, n = symbols('k m n', integer=True)\n",
+ ">>> f, g, h = symbols('f g h', cls=Function)\n",
+ ">>> init_printing()\n",
+ "\n",
+ "Documentation can be found at https://docs.sympy.org/1.13.3/\n",
+ "\n"
+ ]
+ }
+ ],
+ "source": [
+ "from sympy import init_session\n",
+ "init_session(use_latex=\"mathjax\")"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "import math"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## SymPy types and basic symbolic manipulation\n",
+ "\n",
+ "Sympy defines its own types, you can convert them to python types, but you don't always want to (and will probably lose accuracy when you do). "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "1.4142135623730951\n"
+ ]
+ }
+ ],
+ "source": [
+ "print(math.sqrt(2))"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "sqrt(2)\n"
+ ]
+ }
+ ],
+ "source": [
+ "print(sqrt(2))"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "2*sqrt(2)\n"
+ ]
+ }
+ ],
+ "source": [
+ "print(sqrt(8))"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "#help(sqrt(8))"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "We can do symbolic math not just on numbers, but we can tell SymPy what to treat as a symbol, using `symbols()`"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "from sympy import symbols\n",
+ "x, y, z = symbols(\"x y z\")"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 8,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/latex": [
+ "$\\displaystyle x + 2 y$"
+ ],
+ "text/plain": [
+ "x + 2⋅y"
+ ]
+ },
+ "execution_count": 8,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "expr = x + 2*y\n",
+ "expr"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 9,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/latex": [
+ "$\\displaystyle x + 2 y - 1$"
+ ],
+ "text/plain": [
+ "x + 2⋅y - 1"
+ ]
+ },
+ "execution_count": 9,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "expr - 1"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 10,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/latex": [
+ "$\\displaystyle x + y$"
+ ],
+ "text/plain": [
+ "x + y"
+ ]
+ },
+ "execution_count": 10,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "expr - y"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 11,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/latex": [
+ "$\\displaystyle x \\left(x + 2 y\\right)$"
+ ],
+ "text/plain": [
+ "x⋅(x + 2⋅y)"
+ ]
+ },
+ "execution_count": 11,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "f = x*expr\n",
+ "f"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 12,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/latex": [
+ "$\\displaystyle x^{2} + 2 x y$"
+ ],
+ "text/plain": [
+ " 2 \n",
+ "x + 2⋅x⋅y"
+ ]
+ },
+ "execution_count": 12,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "g = expand(f)\n",
+ "g"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 13,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/latex": [
+ "$\\displaystyle x \\left(x + 2 y\\right)$"
+ ],
+ "text/plain": [
+ "x⋅(x + 2⋅y)"
+ ]
+ },
+ "execution_count": 13,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "factor(g)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## substitution\n",
+ "\n",
+ "SymPy provides methods to substitute values for symbols in symbolic expressions. Note, the follow likely does not do what you expect:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 14,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/latex": [
+ "$\\displaystyle \\sin{\\left(2 \\pi z \\right)}$"
+ ],
+ "text/plain": [
+ "sin(2⋅π⋅z)"
+ ]
+ },
+ "execution_count": 14,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "expr = sin(z*2*pi)\n",
+ "z = 0\n",
+ "expr"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "We've now redefined `z` to be a python type"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 15,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "int"
+ ]
+ },
+ "execution_count": 15,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "type(z)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "to do substitution, we use the `subs()` method"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 16,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/latex": [
+ "$\\displaystyle \\sin{\\left(2 \\pi x \\right)}$"
+ ],
+ "text/plain": [
+ "sin(2⋅π⋅x)"
+ ]
+ },
+ "execution_count": 16,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "expr = sin(x*2*pi)\n",
+ "expr"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 17,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/latex": [
+ "$\\displaystyle \\frac{\\sqrt{2}}{2}$"
+ ],
+ "text/plain": [
+ "√2\n",
+ "──\n",
+ "2 "
+ ]
+ },
+ "execution_count": 17,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "a = expr.subs(x, 0.125)\n",
+ "a"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Note that this is not a floating point number -- it is still a SymPy object. To make it floating point, we can use evalf()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 18,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "0.707106781186548 \n"
+ ]
+ }
+ ],
+ "source": [
+ "b = a.evalf()\n",
+ "print(b, type(b))"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "This is still a SymPy object, because SymPy can do arbitrary precision "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 19,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/latex": [
+ "$\\displaystyle 0.70710678118654752440084436210484903928483593768847$"
+ ],
+ "text/plain": [
+ "0.70710678118654752440084436210484903928483593768847"
+ ]
+ },
+ "execution_count": 19,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "a.evalf(50)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "want regular python types?"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 20,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "0.7071067811865476 \n"
+ ]
+ }
+ ],
+ "source": [
+ "c = float(b)\n",
+ "print(c, type(c))"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Python and SymPy"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 21,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "x, y, z, t = symbols('x y z t')"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "SymPy symbols are just objects and when you do operations on two sympy objects the result is a sympy object. \n",
+ "\n",
+ "When you combine a sympy and python object, the result is also a sympy object. \n",
+ "\n",
+ "But we need to be careful when doing fractions. For instance doing `x + 1/3` will first compute `1/3` in python (giving `0.333...`) and then add it to the sympy `x` symbol. The `Rational()` function makes this all happen in sympy"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 22,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/latex": [
+ "$\\displaystyle \\sin{\\left(2 \\pi x \\right)} + \\frac{1}{3}$"
+ ],
+ "text/plain": [
+ "sin(2⋅π⋅x) + 1/3"
+ ]
+ },
+ "execution_count": 22,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "f = expr + Rational(1,3)\n",
+ "f"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 23,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/latex": [
+ "$\\displaystyle \\sin{\\left(2 \\pi x \\right)} + 0.333333333333333$"
+ ],
+ "text/plain": [
+ "sin(2⋅π⋅x) + 0.333333333333333"
+ ]
+ },
+ "execution_count": 23,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "expr + 1/3"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## equality"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "`=` is still the assignment operator of python (it does not mean symbolic equality), and `==` is still the logical test (exact structural equality). There is a separate object, `Eq()` to specify symbolic equality.\n",
+ "\n",
+ "And testing for _algebraic_ equality is not always accomplished using `==`, since that tests for _structural equality_."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 24,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "False"
+ ]
+ },
+ "execution_count": 24,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "x + 1 == 4"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 25,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/latex": [
+ "$\\displaystyle x + 1 = 4$"
+ ],
+ "text/plain": [
+ "x + 1 = 4"
+ ]
+ },
+ "execution_count": 25,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "Eq(x + 1, 4)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 26,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "a = (x + 1)**2\n",
+ "b = x**2 + 2*x + 1 # these are algebraically equal"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 27,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "False"
+ ]
+ },
+ "execution_count": 27,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "a == b"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "We can use `simplify()` to test for algebraic equality"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 28,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/latex": [
+ "$\\displaystyle 0$"
+ ],
+ "text/plain": [
+ "0"
+ ]
+ },
+ "execution_count": 28,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "simplify(a - b)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 29,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/latex": [
+ "$\\displaystyle i \\sin{\\left(x \\right)} + \\cos{\\left(x \\right)}$"
+ ],
+ "text/plain": [
+ "ⅈ⋅sin(x) + cos(x)"
+ ]
+ },
+ "execution_count": 29,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "a = cos(x) + I*sin(x)\n",
+ "a"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 30,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/latex": [
+ "$\\displaystyle e^{i x}$"
+ ],
+ "text/plain": [
+ " ⅈ⋅x\n",
+ "ℯ "
+ ]
+ },
+ "execution_count": 30,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "simplify(a)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## More substitution"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "note that substitution returns a new expression: SymPy expressions are immutable"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 31,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/latex": [
+ "$\\displaystyle 1$"
+ ],
+ "text/plain": [
+ "1"
+ ]
+ },
+ "execution_count": 31,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "expr = cos(x)\n",
+ "expr.subs(x, 0)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 32,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/latex": [
+ "$\\displaystyle \\cos{\\left(x \\right)}$"
+ ],
+ "text/plain": [
+ "cos(x)"
+ ]
+ },
+ "execution_count": 32,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "expr"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 33,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/latex": [
+ "$\\displaystyle x$"
+ ],
+ "text/plain": [
+ "x"
+ ]
+ },
+ "execution_count": 33,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "x"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "multiple substitutions, pass a list of tuples"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 34,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/latex": [
+ "$\\displaystyle x^{3} + 4 x y - z$"
+ ],
+ "text/plain": [
+ " 3 \n",
+ "x + 4⋅x⋅y - z"
+ ]
+ },
+ "execution_count": 34,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "expr = x**3 + 4*x*y - z\n",
+ "expr"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 35,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/latex": [
+ "$\\displaystyle 40$"
+ ],
+ "text/plain": [
+ "40"
+ ]
+ },
+ "execution_count": 35,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "expr.subs([(x, 2), (y, 4), (z, 0)])"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## simplifying"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "There is not unique definition of what the simplest form of an expression is.\n",
+ "\n",
+ "`simplify()` tries lots of methods for simplification"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 36,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/latex": [
+ "$\\displaystyle 1$"
+ ],
+ "text/plain": [
+ "1"
+ ]
+ },
+ "execution_count": 36,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "simplify(sin(x)**2 + cos(x)**2)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 37,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/latex": [
+ "$\\displaystyle x - 1$"
+ ],
+ "text/plain": [
+ "x - 1"
+ ]
+ },
+ "execution_count": 37,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "simplify( (x**3 + x**2 - x - 1)/(x**2 + 2*x + 1) )"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 38,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/latex": [
+ "$\\displaystyle \\left(x - 2\\right) \\left(x - 1\\right)$"
+ ],
+ "text/plain": [
+ "(x - 2)⋅(x - 1)"
+ ]
+ },
+ "execution_count": 38,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "simplify(gamma(x)/gamma(x - 2))"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "but sometimes it doesn't have your idea of what the simplest form is"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 39,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/latex": [
+ "$\\displaystyle x^{2} + 2 x + 1$"
+ ],
+ "text/plain": [
+ " 2 \n",
+ "x + 2⋅x + 1"
+ ]
+ },
+ "execution_count": 39,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "simplify(x**2 + 2*x + 1)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "instead factor may be what you want"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 40,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/latex": [
+ "$\\displaystyle \\left(x + 1\\right)^{2}$"
+ ],
+ "text/plain": [
+ " 2\n",
+ "(x + 1) "
+ ]
+ },
+ "execution_count": 40,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "factor(x**2 + 2*x + 1)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### polynomial simplification"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 41,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/latex": [
+ "$\\displaystyle x^{2} + 2 x + 1$"
+ ],
+ "text/plain": [
+ " 2 \n",
+ "x + 2⋅x + 1"
+ ]
+ },
+ "execution_count": 41,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "expand((x + 1)**2)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 42,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/latex": [
+ "$\\displaystyle x^{2} - x - 6$"
+ ],
+ "text/plain": [
+ " 2 \n",
+ "x - x - 6"
+ ]
+ },
+ "execution_count": 42,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "expand((x + 2)*(x - 3))"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 43,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/latex": [
+ "$\\displaystyle -2$"
+ ],
+ "text/plain": [
+ "-2"
+ ]
+ },
+ "execution_count": 43,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "expand( (x + 1)*(x - 2) - (x - 1)*x)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 44,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/latex": [
+ "$\\displaystyle z \\left(x + 2 y\\right)^{2}$"
+ ],
+ "text/plain": [
+ " 2\n",
+ "z⋅(x + 2⋅y) "
+ ]
+ },
+ "execution_count": 44,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "factor(x**2*z + 4*x*y*z + 4*y**2*z)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 45,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/latex": [
+ "$\\displaystyle \\left( 1, \\ \\left[ \\left( z, \\ 1\\right), \\ \\left( x + 2 y, \\ 2\\right)\\right]\\right)$"
+ ],
+ "text/plain": [
+ "(1, [(z, 1), (x + 2⋅y, 2)])"
+ ]
+ },
+ "execution_count": 45,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "factor_list(x**2*z + 4*x*y*z + 4*y**2*z)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "collect collects common powers"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 46,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/latex": [
+ "$\\displaystyle x^{3} - x^{2} z + 2 x^{2} + x y + x - 3$"
+ ],
+ "text/plain": [
+ " 3 2 2 \n",
+ "x - x ⋅z + 2⋅x + x⋅y + x - 3"
+ ]
+ },
+ "execution_count": 46,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "expr = x*y + x - 3 + 2*x**2 - z*x**2 + x**3\n",
+ "expr"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 47,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/latex": [
+ "$\\displaystyle x^{3} + x^{2} \\left(2 - z\\right) + x \\left(y + 1\\right) - 3$"
+ ],
+ "text/plain": [
+ " 3 2 \n",
+ "x + x ⋅(2 - z) + x⋅(y + 1) - 3"
+ ]
+ },
+ "execution_count": 47,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "collected_expr = collect(expr, x)\n",
+ "collected_expr"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "cancel cancels"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 48,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/latex": [
+ "$\\displaystyle \\frac{x^{2} + 2 x + 1}{x^{2} + x}$"
+ ],
+ "text/plain": [
+ " 2 \n",
+ "x + 2⋅x + 1\n",
+ "────────────\n",
+ " 2 \n",
+ " x + x "
+ ]
+ },
+ "execution_count": 48,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "a = (x**2 + 2*x + 1)/(x**2 + x)\n",
+ "a"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 49,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/latex": [
+ "$\\displaystyle \\frac{x + 1}{x}$"
+ ],
+ "text/plain": [
+ "x + 1\n",
+ "─────\n",
+ " x "
+ ]
+ },
+ "execution_count": 49,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "cancel(a)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "trigsimp simplifies trigonometric identities"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 50,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/latex": [
+ "$\\displaystyle \\frac{\\cos{\\left(4 x \\right)}}{2} + \\frac{1}{2}$"
+ ],
+ "text/plain": [
+ "cos(4⋅x) 1\n",
+ "──────── + ─\n",
+ " 2 2"
+ ]
+ },
+ "execution_count": 50,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "trigsimp(sin(x)**4 - 2*cos(x)**2*sin(x)**2 + cos(x)**4)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 51,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/latex": [
+ "$\\displaystyle \\sin^{2}{\\left(x \\right)}$"
+ ],
+ "text/plain": [
+ " 2 \n",
+ "sin (x)"
+ ]
+ },
+ "execution_count": 51,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "trigsimp(sin(x)*tan(x)/sec(x))"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "the tutorial discusses some of the nuances of simplification of powers and special functions"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Calculus"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Calculus operations are simple in SymPy\n",
+ "\n",
+ "### derivatives"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 52,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/latex": [
+ "$\\displaystyle - \\sin{\\left(x \\right)}$"
+ ],
+ "text/plain": [
+ "-sin(x)"
+ ]
+ },
+ "execution_count": 52,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "diff(cos(x), x)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 53,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/latex": [
+ "$\\displaystyle 2 x e^{x^{2}}$"
+ ],
+ "text/plain": [
+ " ⎛ 2⎞\n",
+ " ⎝x ⎠\n",
+ "2⋅x⋅ℯ "
+ ]
+ },
+ "execution_count": 53,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "diff(exp(x**2), x)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "third derivative"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 54,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/latex": [
+ "$\\displaystyle 24 x$"
+ ],
+ "text/plain": [
+ "24⋅x"
+ ]
+ },
+ "execution_count": 54,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "diff(x**4, x, 3)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "differentiate different variables"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 55,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/latex": [
+ "$\\displaystyle \\left(x^{2} y^{2} z^{2} + 3 x y z + 1\\right) e^{x y z}$"
+ ],
+ "text/plain": [
+ "⎛ 2 2 2 ⎞ x⋅y⋅z\n",
+ "⎝x ⋅y ⋅z + 3⋅x⋅y⋅z + 1⎠⋅ℯ "
+ ]
+ },
+ "execution_count": 55,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "expr = exp(x*y*z)\n",
+ "diff(expr, x, y, z)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "unevaluated derivatives can be useful for building up ODEs and PDEs"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 56,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/latex": [
+ "$\\displaystyle \\frac{\\partial^{3}}{\\partial z\\partial y\\partial x} e^{x y z}$"
+ ],
+ "text/plain": [
+ " 3 \n",
+ " ∂ ⎛ x⋅y⋅z⎞\n",
+ "────────⎝ℯ ⎠\n",
+ "∂z ∂y ∂x "
+ ]
+ },
+ "execution_count": 56,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "deriv = Derivative(expr, x, y, z)\n",
+ "deriv"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 57,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/latex": [
+ "$\\displaystyle \\left(x^{2} y^{2} z^{2} + 3 x y z + 1\\right) e^{x y z}$"
+ ],
+ "text/plain": [
+ "⎛ 2 2 2 ⎞ x⋅y⋅z\n",
+ "⎝x ⋅y ⋅z + 3⋅x⋅y⋅z + 1⎠⋅ℯ "
+ ]
+ },
+ "execution_count": 57,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "deriv.doit()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### integrals\n",
+ "\n",
+ "definite and indefinite integrals are supported"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 58,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/latex": [
+ "$\\displaystyle \\sin{\\left(x \\right)}$"
+ ],
+ "text/plain": [
+ "sin(x)"
+ ]
+ },
+ "execution_count": 58,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "integrate(cos(x), x)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "definite integral -- note the construction of the infinity"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 59,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/latex": [
+ "$\\displaystyle 1$"
+ ],
+ "text/plain": [
+ "1"
+ ]
+ },
+ "execution_count": 59,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "integrate(exp(-x), (x, 0, oo))"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "double integral"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 60,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/latex": [
+ "$\\displaystyle \\pi$"
+ ],
+ "text/plain": [
+ "π"
+ ]
+ },
+ "execution_count": 60,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "integrate(exp(-x**2 - y**2), (x, -oo, oo), (y, -oo, oo))"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "if it is unable to do the integral, it returns an Integral object"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 61,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Integral(x**x, x)\n"
+ ]
+ },
+ {
+ "data": {
+ "text/latex": [
+ "$\\displaystyle \\int x^{x}\\, dx$"
+ ],
+ "text/plain": [
+ "⌠ \n",
+ "⎮ x \n",
+ "⎮ x dx\n",
+ "⌡ "
+ ]
+ },
+ "execution_count": 61,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "expr = integrate(x**x, x)\n",
+ "print(expr)\n",
+ "expr"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 62,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/latex": [
+ "$\\displaystyle \\frac{x}{\\sqrt{x^{4} + 10 x^{2} - 96 x - 71}}$"
+ ],
+ "text/plain": [
+ " x \n",
+ "───────────────────────────\n",
+ " ________________________\n",
+ " ╱ 4 2 \n",
+ "╲╱ x + 10⋅x - 96⋅x - 71 "
+ ]
+ },
+ "execution_count": 62,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "a = x / sqrt(x**4 + 10*x**2 - 96*x - 71) # example from Wikipedia Risch algorithm page)\n",
+ "a"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 63,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/latex": [
+ "$\\displaystyle \\int \\frac{x}{\\sqrt{x^{4} + 10 x^{2} - 96 x - 71}}\\, dx$"
+ ],
+ "text/plain": [
+ "⌠ \n",
+ "⎮ x \n",
+ "⎮ ─────────────────────────── dx\n",
+ "⎮ ________________________ \n",
+ "⎮ ╱ 4 2 \n",
+ "⎮ ╲╱ x + 10⋅x - 96⋅x - 71 \n",
+ "⌡ "
+ ]
+ },
+ "execution_count": 63,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "integrate(a, x) # this has a known solution, but SymPy fails to find it"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### limits"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 64,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/latex": [
+ "$\\displaystyle 1$"
+ ],
+ "text/plain": [
+ "1"
+ ]
+ },
+ "execution_count": 64,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "limit(sin(x)/x, x, 0)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### series expansions"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 65,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/latex": [
+ "$\\displaystyle 1 + x + \\frac{x^{2}}{2} - \\frac{x^{4}}{8} - \\frac{x^{5}}{15} - \\frac{x^{6}}{240} + \\frac{x^{7}}{90} + \\frac{31 x^{8}}{5760} + \\frac{x^{9}}{5670} + O\\left(x^{10}\\right)$"
+ ],
+ "text/plain": [
+ " 2 4 5 6 7 8 9 \n",
+ " x x x x x 31⋅x x ⎛ 10⎞\n",
+ "1 + x + ── - ── - ── - ─── + ── + ───── + ──── + O⎝x ⎠\n",
+ " 2 8 15 240 90 5760 5670 "
+ ]
+ },
+ "execution_count": 65,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "expr = exp(sin(x))\n",
+ "a = expr.series(x, 0, 10)\n",
+ "a"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 66,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/latex": [
+ "$\\displaystyle -1 - \\frac{\\left(x - 1\\right)^{2}}{2} + \\frac{\\left(x - 1\\right)^{3}}{3} - \\frac{\\left(x - 1\\right)^{4}}{4} + \\frac{\\left(x - 1\\right)^{5}}{5} + x + O\\left(\\left(x - 1\\right)^{6}; x\\rightarrow 1\\right)$"
+ ],
+ "text/plain": [
+ " 2 3 4 5 \n",
+ " (x - 1) (x - 1) (x - 1) (x - 1) ⎛ 6 ⎞\n",
+ "-1 - ──────── + ──────── - ──────── + ──────── + x + O⎝(x - 1) ; x → 1⎠\n",
+ " 2 3 4 5 "
+ ]
+ },
+ "execution_count": 66,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "c = log(x).series(x, x0=1, n=6)\n",
+ "c"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 67,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/latex": [
+ "$\\displaystyle \\frac{x^{5}}{5} - \\frac{5 x^{4}}{4} + \\frac{10 x^{3}}{3} - 5 x^{2} + 5 x - \\frac{137}{60}$"
+ ],
+ "text/plain": [
+ " 5 4 3 \n",
+ "x 5⋅x 10⋅x 2 137\n",
+ "── - ──── + ───── - 5⋅x + 5⋅x - ───\n",
+ "5 4 3 60 "
+ ]
+ },
+ "execution_count": 67,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "simplify(c.removeO())"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## solvers\n",
+ "\n",
+ "`solveset()` is the main interface to solvers in SymPy. Note that it used to be `solve()`, but this has been replaced (see http://docs.sympy.org/latest/modules/solvers/solveset.html)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "If no Eq() is done, then it is assumed to be equal to 0"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 68,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/latex": [
+ "$\\displaystyle \\left\\{0, 1\\right\\}$"
+ ],
+ "text/plain": [
+ "{0, 1}"
+ ]
+ },
+ "execution_count": 68,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "solveset(x**2 - x, x)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "you can restrict the domain of the solution (e.g. to reals). Recall that Z is the set of integers"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 69,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/latex": [
+ "$\\displaystyle \\left\\{2 n \\pi + \\frac{\\pi}{2}\\; \\middle|\\; n \\in \\mathbb{Z}\\right\\}$"
+ ],
+ "text/plain": [
+ "⎧ π │ ⎫\n",
+ "⎨2⋅n⋅π + ─ │ n ∊ ℤ⎬\n",
+ "⎩ 2 │ ⎭"
+ ]
+ },
+ "execution_count": 69,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "solveset(sin(x) - 1, x, domain=S.Reals)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### linear systems\n",
+ "\n",
+ "`linsolve()` is the interface to linear systems"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 70,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/latex": [
+ "$\\displaystyle \\left\\{\\left( \\frac{1}{2}, \\ \\frac{5}{2}\\right)\\right\\}$"
+ ],
+ "text/plain": [
+ "{(1/2, 5/2)}"
+ ]
+ },
+ "execution_count": 70,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "linsolve([x - y + 2, x + y - 3], [x, y])"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 71,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/latex": [
+ "$\\displaystyle \\left\\{\\left( - y - 1, \\ y, \\ 2\\right)\\right\\}$"
+ ],
+ "text/plain": [
+ "{(-y - 1, y, 2)}"
+ ]
+ },
+ "execution_count": 71,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "linsolve([x + y + z - 1, x + y + 2*z - 3 ], (x, y, z))"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "roots will report if a solution is multiple by listing it multiple times"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 72,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/latex": [
+ "$\\displaystyle \\left\\{ 0 : 1, \\ 3 : 2\\right\\}$"
+ ],
+ "text/plain": [
+ "{0: 1, 3: 2}"
+ ]
+ },
+ "execution_count": 72,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "roots(x**3 - 6*x**2 + 9*x, x)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "0 is 1 root, and 3 is 2 more roots"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Differential equations"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "you need an undefined function (f and g already are by our init_session() above, but we've probably reset these"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 73,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "f, g = symbols('f g', cls=Function)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 74,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/latex": [
+ "$\\displaystyle f{\\left(x \\right)}$"
+ ],
+ "text/plain": [
+ "f(x)"
+ ]
+ },
+ "execution_count": 74,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "f(x)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 75,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/latex": [
+ "$\\displaystyle \\frac{d}{d x} f{\\left(x \\right)}$"
+ ],
+ "text/plain": [
+ "d \n",
+ "──(f(x))\n",
+ "dx "
+ ]
+ },
+ "execution_count": 75,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "f(x).diff(x)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 76,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "diffeq = Eq(f(x).diff(x, 2) - 2*f(x).diff(x) + f(x), sin(x))"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 77,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/latex": [
+ "$\\displaystyle f{\\left(x \\right)} - 2 \\frac{d}{d x} f{\\left(x \\right)} + \\frac{d^{2}}{d x^{2}} f{\\left(x \\right)} = \\sin{\\left(x \\right)}$"
+ ],
+ "text/plain": [
+ " 2 \n",
+ " d d \n",
+ "f(x) - 2⋅──(f(x)) + ───(f(x)) = sin(x)\n",
+ " dx 2 \n",
+ " dx "
+ ]
+ },
+ "execution_count": 77,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "diffeq"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 78,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/latex": [
+ "$\\displaystyle f{\\left(x \\right)} = \\left(C_{1} + C_{2} x\\right) e^{x} + \\frac{\\cos{\\left(x \\right)}}{2}$"
+ ],
+ "text/plain": [
+ " x cos(x)\n",
+ "f(x) = (C₁ + C₂⋅x)⋅ℯ + ──────\n",
+ " 2 "
+ ]
+ },
+ "execution_count": 78,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "dsolve(diffeq, f(x))"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Matrices"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "consider the Euler equations:\n",
+ "\n",
+ "$$q_t + A(q) q_x = 0$$\n",
+ "\n",
+ "where\n",
+ "\n",
+ "$$q = \\left ( \\begin{array}{c} \\rho \\\\ u \\\\ p \\end{array} \\right )\n",
+ "\\qquad\n",
+ "A(q) = \\left ( \\begin{array}{ccc} u & \\rho & 0 \\\\ \n",
+ " 0 & u & 1/\\rho \\\\ \n",
+ " 0 & c^2 \\rho & u \\end{array} \\right ) $$\n",
+ "\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 79,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/latex": [
+ "$\\displaystyle \\left[\\begin{matrix}u & \\rho & 0\\\\0 & u & \\frac{1}{\\rho}\\\\0 & c^{2} \\rho & u\\end{matrix}\\right]$"
+ ],
+ "text/plain": [
+ "⎡u ρ 0⎤\n",
+ "⎢ ⎥\n",
+ "⎢ 1⎥\n",
+ "⎢0 u ─⎥\n",
+ "⎢ ρ⎥\n",
+ "⎢ ⎥\n",
+ "⎢ 2 ⎥\n",
+ "⎣0 c ⋅ρ u⎦"
+ ]
+ },
+ "execution_count": 79,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "from sympy.abc import rho\n",
+ "rho, u, c = symbols('rho u c')\n",
+ "A = Matrix([[u, rho, 0], [0, u, rho**-1], [0, c**2 * rho, u]])\n",
+ "A"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 80,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/latex": [
+ "$\\displaystyle \\left[\\begin{matrix}u & \\rho & 0\\end{matrix}\\right]$"
+ ],
+ "text/plain": [
+ "[u ρ 0]"
+ ]
+ },
+ "execution_count": 80,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "A.row(0)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "The eigenvalues of the system are the speeds at which information propagates"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 81,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/latex": [
+ "$\\displaystyle \\left\\{ u : 1, \\ - c + u : 1, \\ c + u : 1\\right\\}$"
+ ],
+ "text/plain": [
+ "{u: 1, -c + u: 1, c + u: 1}"
+ ]
+ },
+ "execution_count": 81,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "A.eigenvals()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "You can diagonalize it, such that\n",
+ "$$ A = PDP^{-1}$$"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 82,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "P, D = A.diagonalize()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "$D$ will be a matrix of the eigenvalues"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 83,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/latex": [
+ "$\\displaystyle \\left[\\begin{matrix}u & 0 & 0\\\\0 & - c + u & 0\\\\0 & 0 & c + u\\end{matrix}\\right]$"
+ ],
+ "text/plain": [
+ "⎡u 0 0 ⎤\n",
+ "⎢ ⎥\n",
+ "⎢0 -c + u 0 ⎥\n",
+ "⎢ ⎥\n",
+ "⎣0 0 c + u⎦"
+ ]
+ },
+ "execution_count": 83,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "D"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "$P$ will be the matrix of right eigenvectors"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 84,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/latex": [
+ "$\\displaystyle \\left[\\begin{matrix}1 & \\frac{1}{c^{2}} & \\frac{1}{c^{2}}\\\\0 & - \\frac{1}{c \\rho} & \\frac{1}{c \\rho}\\\\0 & 1 & 1\\end{matrix}\\right]$"
+ ],
+ "text/plain": [
+ "⎡ 1 1 ⎤\n",
+ "⎢1 ── ── ⎥\n",
+ "⎢ 2 2 ⎥\n",
+ "⎢ c c ⎥\n",
+ "⎢ ⎥\n",
+ "⎢ -1 1 ⎥\n",
+ "⎢0 ─── ───⎥\n",
+ "⎢ c⋅ρ c⋅ρ⎥\n",
+ "⎢ ⎥\n",
+ "⎣0 1 1 ⎦"
+ ]
+ },
+ "execution_count": 84,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "P"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Inverse"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 85,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/latex": [
+ "$\\displaystyle \\left[\\begin{matrix}\\frac{1}{u} & - \\frac{\\rho}{- c^{2} + u^{2}} & \\frac{1}{- c^{2} u + u^{3}}\\\\0 & \\frac{u}{- c^{2} + u^{2}} & - \\frac{1}{- c^{2} \\rho + \\rho u^{2}}\\\\0 & - \\frac{c^{2} \\rho}{- c^{2} + u^{2}} & \\frac{u}{- c^{2} + u^{2}}\\end{matrix}\\right]$"
+ ],
+ "text/plain": [
+ "⎡1 -ρ 1 ⎤\n",
+ "⎢─ ───────── ─────────── ⎥\n",
+ "⎢u 2 2 2 3 ⎥\n",
+ "⎢ - c + u - c ⋅u + u ⎥\n",
+ "⎢ ⎥\n",
+ "⎢ u -1 ⎥\n",
+ "⎢0 ───────── ─────────────⎥\n",
+ "⎢ 2 2 2 2⎥\n",
+ "⎢ - c + u - c ⋅ρ + ρ⋅u ⎥\n",
+ "⎢ ⎥\n",
+ "⎢ 2 ⎥\n",
+ "⎢ -c ⋅ρ u ⎥\n",
+ "⎢0 ───────── ───────── ⎥\n",
+ "⎢ 2 2 2 2 ⎥\n",
+ "⎣ - c + u - c + u ⎦"
+ ]
+ },
+ "execution_count": 85,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "A**-1"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Units\n",
+ "\n",
+ "Sympy can attach units to numbers and propagate them through"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 86,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "from sympy.physics.units import newton, kilogram, meter, second, convert_to"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 87,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/latex": [
+ "$\\displaystyle 9.81 \\text{N}$"
+ ],
+ "text/plain": [
+ "9.81⋅newton"
+ ]
+ },
+ "execution_count": 87,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "F = 1 * kilogram * 9.81 * meter / second**2\n",
+ "convert_to(F, newton)"
+ ]
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 3 (ipykernel)",
+ "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.13.2"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 4
+}
diff --git a/content/06-sympy/sympy-exercises.ipynb b/content/06-sympy/sympy-exercises.ipynb
new file mode 100644
index 00000000..72b50736
--- /dev/null
+++ b/content/06-sympy/sympy-exercises.ipynb
@@ -0,0 +1,261 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# SymPy Exercises"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "IPython console for SymPy 1.9 (Python 3.10.2-64-bit) (ground types: gmpy)\n",
+ "\n",
+ "These commands were executed:\n",
+ ">>> from __future__ import division\n",
+ ">>> from sympy import *\n",
+ ">>> x, y, z, t = symbols('x y z t')\n",
+ ">>> k, m, n = symbols('k m n', integer=True)\n",
+ ">>> f, g, h = symbols('f g h', cls=Function)\n",
+ ">>> init_printing()\n",
+ "\n",
+ "Documentation can be found at https://docs.sympy.org/1.9/\n",
+ "\n"
+ ]
+ }
+ ],
+ "source": [
+ "import sympy as sym\n",
+ "from sympy import init_session\n",
+ "init_session()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Q1: Creating an expression\n",
+ "\n",
+ "Create the expression:\n",
+ "\n",
+ "$$f = x e^{-x} + x (1-x)$$\n",
+ "\n",
+ "Then evaluate it for \n",
+ "\n",
+ "$$x = 0, 0.1, 0.2, 0.4, 0.8$$"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Q2: Factoring a polynomial, and finding its roots\n",
+ "\n",
+ "Factor\n",
+ "\n",
+ "$$x^{4} - 6 x^{3} + x^{2} + 24 x + 16$$\n",
+ "\n",
+ "Then find its zeros."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Q3: Integratation and differentiation\n",
+ "\n",
+ "Integrate the function:\n",
+ "\n",
+ "$$f = \\sin(x) e^{-x}$$\n",
+ "\n",
+ "Then differentiate the result to see if you get back the original function"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Q4: Parsing an expression\n",
+ "\n",
+ "Write a program that reads in a mathematical expression as a string (e.g., `\"sin(2*pi*x)\"`), converts it to a SymPy expression, and then evaluates it as needed. \n",
+ "\n",
+ "Have your program either make a plot of the entered function, or use the input function as the function to fit a dataset to using curvefit.\n",
+ "\n",
+ "The following will be helpful:"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "`parse_expr()` will convert a string into a SymPy expression"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "from sympy.parsing.sympy_parser import parse_expr"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAAAE4AAAAVCAYAAADo49gpAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAEIklEQVRYCc2Y7VEbMRCGDw8FOKQD0wEfHZgO+KgA6CAMv+BfhnQAqSCEDqADIB1ACY47IM8jThr5fIcvHp/xzqylW62kV69WqzsXb29vxaroxcXFYFWw5DjqcPWKFZHLy8tvQNlaEThVGIMSX7KvyewsodMAn2f0jPrNLP//bWfMffrsUp7lfct5o22HthEqhj+53zLqzOnGjinD+ttGnMT10e1FgwSI455TRoLCFDw75zXlaanOLWHPPA+D0xJ/mPMH04lFvEUr4nB+wPcL5amdFixXjHddM6b2ifmYX3LH6O8a/2WYxCmudsTpCGgBdyGHjF13/I2qF9rCDmcTu4l97EbkUqXEKd5+q4jrCh0AzG2vDeNL0Cs+TRtWJbRhmIWbxXu47rCA8zZzhwUZAR1h30bdWY+G5QPPB5QFpX1+otpvUUNYIpRd9BEf88JHskejBE1JnGeqobx5aU8XBHXnPkEj9ppuxQ1+6ehT19c+iniPUddyhCriv3uvTvyKd2+9HOCK0kUk4TlMQinDEuitmoRngWt/odxAt6gHoigl1SR+hzZFFC6FN2VdfrNtSspxXVy6SLCFnIPNDZUMSfiFOrbPYWPwS0RjU1xzXKM3pkEgWd7aMZfVEed6hz1+nGAH5+puVRc0wq9OJGZI/zQJ9Qhy1u3nnE3j1s1l5LsZ+QbFxUqQpHoTO38gzXqGB3M4LUZaJFzTGPW0xFxrIOTtPCYR78CI8/j58Nc65T2awFFvI08NTtXNqLoJUNAzBWxupDnPyApCXYLUKHvYYnow8iIRsT2WT/jlJyG86mALWCjTHLFDVtovXQ52dEJ3TKa9zaoRh/lzBCxGyAblRDrJ0dBmesg3wdSRPyd37DnZ2g9Rj3cbCZvdYxDJKig925voGo+e/RPqgulSjPT+RxOAwSMkrhQF1P0ECrizvmL2tESptkf7RMk4phMx5KnG150mXNpHPX4kJ94uVAOJhrgDmf+6FMO+cYGAF9vUpxg2yZT0IOUiXcNtaYr2qRyrL3qPxjYJ91MqP7p+yYzzsbK6Efe6Xhp09LrOnWU23EhZJ21VcaC0iGrjjGePjLloSsAioV4G5uBq2hhii7nMvpJW987n0a6uQcJUT5jrmcCOzbZHtElCPpQ4yTLCTuhEEeQrv17XgnHXz9EQfTy7mGPUhWm33R3T/h3V7i4qbogRk47Zuzn9mlfsVyceO8eaOA2lo4TnIkHpFaVsSEcvd6Quka5Xggqw+f1pBLo5vnKNqDf1tYv9Tlv9O6J3VwJI34sOKKtkdDXl3OOC0Y2U5M3e3KMsrqO3eIzQxY3azUhGtXjbf+R3gyNdRHW3ZFdTzjVuGW3iDO+GqxBxLsQcWL0A5lpgh53El07Gp+e4uNByR/cp89syNn9qCSa/ZSe+u/8B4Jd2DkRmIk0AAAAASUVORK5CYII=\n",
+ "text/latex": [
+ "$\\displaystyle \\sin{\\left(2 \\pi x \\right)}$"
+ ],
+ "text/plain": [
+ "sin(2⋅π⋅x)"
+ ]
+ },
+ "execution_count": 3,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "s = \"sin(2*pi*x)\"\n",
+ "a = parse_expr(s)\n",
+ "a"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "`sympy.lambdify()` will convert a SymPy expression into a function that is callable by python. You can make it a numpy-compatible function too (this means, e.g., that any `sin()` in your SymPy expression will be evaluate using `np.sin()`)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "f = sym.lambdify(x, a, \"numpy\")"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/latex": [
+ "$\\displaystyle -2.44929359829471 \\cdot 10^{-16}$"
+ ],
+ "text/plain": [
+ "-2.4492935982947064e-16"
+ ]
+ },
+ "execution_count": 5,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "f(1.0)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "#help(lambdify)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Q5: Units\n",
+ "\n",
+ "SymPy can deal with physical units. See:\n",
+ "\n",
+ "http://docs.sympy.org/latest/modules/physics/units/quantities.html\n",
+ "\n",
+ "Let's try this out. Newton's 2nd law is\n",
+ "\n",
+ "$$F = ma$$\n",
+ "\n",
+ "Create a mass of 1 kg and an acceleration of 10 m/s$^2$, and compute the force, $F$, and express the result in Newtons.\n",
+ "\n",
+ "Note: the `convert_to` function was added in SymPy 1.1, so if you are using an earlier version, you will need to divide by the target unit to do the conversion."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 3 (ipykernel)",
+ "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.10.10"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 4
+}
diff --git a/content/06-sympy/sympy.md b/content/06-sympy/sympy.md
new file mode 100644
index 00000000..0a3160ad
--- /dev/null
+++ b/content/06-sympy/sympy.md
@@ -0,0 +1,5 @@
+# SymPy
+
+SymPy is the symbolic math library for python. A key design feature
+of it is that it can interoperate with all of the libraries we've
+already seen.
diff --git a/lectures/07-pandas/exercises.txt b/content/07-pandas/exercises.txt
similarity index 100%
rename from lectures/07-pandas/exercises.txt
rename to content/07-pandas/exercises.txt
diff --git a/lectures/07-pandas/ideas.txt b/content/07-pandas/ideas.txt
similarity index 100%
rename from lectures/07-pandas/ideas.txt
rename to content/07-pandas/ideas.txt
diff --git a/lectures/07-pandas/pandas-babynames.ipynb b/content/07-pandas/pandas-babynames.ipynb
similarity index 73%
rename from lectures/07-pandas/pandas-babynames.ipynb
rename to content/07-pandas/pandas-babynames.ipynb
index 5efd3267..1f1176ee 100644
--- a/lectures/07-pandas/pandas-babynames.ipynb
+++ b/content/07-pandas/pandas-babynames.ipynb
@@ -2,22 +2,16 @@
"cells": [
{
"cell_type": "markdown",
- "metadata": {
- "deletable": true,
- "editable": true
- },
+ "metadata": {},
"source": [
"# pandas exercises"
]
},
{
"cell_type": "markdown",
- "metadata": {
- "deletable": true,
- "editable": true
- },
+ "metadata": {},
"source": [
- "We'll use the sample datset from the Social Secury Administration on baby names:\n",
+ "We'll use the sample dataset from the Social Secury Administration on baby names:\n",
"https://www.ssa.gov/oact/babynames/limits.html\n",
"\n",
"Download the \"National\" version and unzip it. There will be one file for each year.\n",
@@ -28,11 +22,7 @@
{
"cell_type": "code",
"execution_count": 1,
- "metadata": {
- "collapsed": true,
- "deletable": true,
- "editable": true
- },
+ "metadata": {},
"outputs": [],
"source": [
"import pandas as pd\n",
@@ -45,22 +35,31 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "Let's start by reading in just a single dataset, for the first year available (1880). We give the names of the colums here. The index will just be the line / record number in the file (not really important for us)"
+ "Let's start by reading in just a single dataset, for the first year available (1880). We give the names of the columns here. The index will just be the line / record number in the file (not really important for us)"
]
},
{
"cell_type": "code",
"execution_count": 2,
- "metadata": {
- "collapsed": false,
- "deletable": true,
- "editable": true
- },
+ "metadata": {},
"outputs": [
{
"data": {
"text/html": [
"
\n",
@@ -1779,24 +1791,107 @@
},
{
"cell_type": "markdown",
- "metadata": {
- "deletable": true,
- "editable": true
- },
+ "metadata": {},
"source": [
- "a _pivot table_ creates a new dataframe from our orignal one, usually summarizing the data in a new way. In particular, with a pivot table, we can create a new index and columns, with the data in the `DataFrame` reduced via some operation across another column.\n",
+ "a _pivot table_ creates a new dataframe from our original one, usually summarizing the data in a new way. In particular, with a pivot table, we can create a new index and columns, with the data in the `DataFrame` reduced via some operation across another column.\n",
"\n",
- "Here, the column that we are going to aggregrate is \"births\", and the function will will use for the aggregating (e.g., `np.mean`). Here we'll use `sum`."
+ "Here, the column that we are going to aggregate is \"births\", and the function will will use for the aggregating is `sum` (to sum over the names)."
]
},
{
"cell_type": "code",
"execution_count": 9,
- "metadata": {
- "collapsed": false,
- "deletable": true,
- "editable": true
- },
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "
\n",
@@ -5106,27 +5027,27 @@
"text/plain": [
" hw 1 hw 2 hw 3 hw 4 exam hw average new\n",
"student \n",
- "A 10.0 9.0 10.0 7.0 97.0 9.00 0.920970\n",
- "B 8.0 7.0 9.0 9.0 82.0 8.25 0.765661\n",
- "C 0.0 9.0 6.0 5.0 80.0 5.00 0.900615\n",
- "D 8.0 9.0 9.0 9.0 90.0 8.75 0.317798\n",
- "E 0.0 10.0 10.0 10.0 95.0 7.50 0.156871\n",
- "F 8.0 2.0 6.0 7.0 80.0 5.75 0.125297\n",
- "G 6.0 0.0 4.0 5.0 80.0 3.75 0.240109\n",
- "H 8.0 8.0 9.0 8.0 84.0 8.25 0.238266\n",
- "I 10.0 7.0 10.0 10.0 92.0 9.25 0.133366\n",
- "J 10.0 6.0 9.0 9.0 91.0 8.50 0.590215\n",
- "K 8.0 7.0 6.0 8.0 87.0 7.25 0.702051\n",
- "L 3.0 8.0 5.0 7.0 80.0 5.75 0.148723\n",
- "M 9.0 9.0 8.0 9.0 94.0 8.75 0.729936\n",
- "N 8.0 10.0 9.0 9.0 90.0 9.00 0.502920\n",
- "O 10.0 10.0 10.0 9.0 99.0 9.75 0.940960\n",
- "P 8.0 9.0 8.0 10.0 94.0 8.75 0.271293\n",
- "Q 5.0 7.0 6.0 5.0 80.0 5.75 0.449197\n",
+ "A 10.0 9.0 10.0 7.0 97.0 9.00 0.848599\n",
+ "B 8.0 7.0 9.0 9.0 82.0 8.25 0.394722\n",
+ "C 0.0 9.0 6.0 5.0 80.0 5.00 0.957668\n",
+ "D 8.0 9.0 9.0 9.0 90.0 8.75 0.953680\n",
+ "E 0.0 10.0 10.0 10.0 95.0 7.50 0.000388\n",
+ "F 8.0 2.0 6.0 7.0 80.0 5.75 0.898409\n",
+ "G 6.0 0.0 4.0 5.0 80.0 3.75 0.346747\n",
+ "H 8.0 8.0 9.0 8.0 84.0 8.25 0.716042\n",
+ "I 10.0 7.0 10.0 10.0 92.0 9.25 0.965628\n",
+ "J 10.0 6.0 9.0 9.0 91.0 8.50 0.124690\n",
+ "K 8.0 7.0 6.0 8.0 87.0 7.25 0.694847\n",
+ "L 3.0 8.0 5.0 7.0 80.0 5.75 0.930668\n",
+ "M 9.0 9.0 8.0 9.0 94.0 8.75 0.606070\n",
+ "N 8.0 10.0 9.0 9.0 90.0 9.00 0.212891\n",
+ "O 10.0 10.0 10.0 9.0 99.0 9.75 0.905785\n",
+ "P 8.0 9.0 8.0 10.0 94.0 8.75 0.415708\n",
+ "Q 5.0 7.0 6.0 5.0 80.0 5.75 0.145941\n",
"R 1.0 1.0 1.0 1.0 1.0 1.00 1.000000"
]
},
- "execution_count": 79,
+ "execution_count": 82,
"metadata": {},
"output_type": "execute_result"
}
@@ -5137,20 +5058,16 @@
},
{
"cell_type": "code",
- "execution_count": 80,
- "metadata": {
- "collapsed": false,
- "deletable": true,
- "editable": true
- },
+ "execution_count": 83,
+ "metadata": {},
"outputs": [
{
"data": {
"text/plain": [
- "'\\\\begin{tabular}{lrrrrrrr}\\n\\\\toprule\\n{} & hw 1 & hw 2 & hw 3 & hw 4 & exam & hw average & new \\\\\\\\\\nstudent & & & & & & & \\\\\\\\\\n\\\\midrule\\nA & 10.0 & 9.0 & 10.0 & 7.0 & 97.0 & 9.00 & 0.920970 \\\\\\\\\\nB & 8.0 & 7.0 & 9.0 & 9.0 & 82.0 & 8.25 & 0.765661 \\\\\\\\\\nC & 0.0 & 9.0 & 6.0 & 5.0 & 80.0 & 5.00 & 0.900615 \\\\\\\\\\nD & 8.0 & 9.0 & 9.0 & 9.0 & 90.0 & 8.75 & 0.317798 \\\\\\\\\\nE & 0.0 & 10.0 & 10.0 & 10.0 & 95.0 & 7.50 & 0.156871 \\\\\\\\\\nF & 8.0 & 2.0 & 6.0 & 7.0 & 80.0 & 5.75 & 0.125297 \\\\\\\\\\nG & 6.0 & 0.0 & 4.0 & 5.0 & 80.0 & 3.75 & 0.240109 \\\\\\\\\\nH & 8.0 & 8.0 & 9.0 & 8.0 & 84.0 & 8.25 & 0.238266 \\\\\\\\\\nI & 10.0 & 7.0 & 10.0 & 10.0 & 92.0 & 9.25 & 0.133366 \\\\\\\\\\nJ & 10.0 & 6.0 & 9.0 & 9.0 & 91.0 & 8.50 & 0.590215 \\\\\\\\\\nK & 8.0 & 7.0 & 6.0 & 8.0 & 87.0 & 7.25 & 0.702051 \\\\\\\\\\nL & 3.0 & 8.0 & 5.0 & 7.0 & 80.0 & 5.75 & 0.148723 \\\\\\\\\\nM & 9.0 & 9.0 & 8.0 & 9.0 & 94.0 & 8.75 & 0.729936 \\\\\\\\\\nN & 8.0 & 10.0 & 9.0 & 9.0 & 90.0 & 9.00 & 0.502920 \\\\\\\\\\nO & 10.0 & 10.0 & 10.0 & 9.0 & 99.0 & 9.75 & 0.940960 \\\\\\\\\\nP & 8.0 & 9.0 & 8.0 & 10.0 & 94.0 & 8.75 & 0.271293 \\\\\\\\\\nQ & 5.0 & 7.0 & 6.0 & 5.0 & 80.0 & 5.75 & 0.449197 \\\\\\\\\\nR & 1.0 & 1.0 & 1.0 & 1.0 & 1.0 & 1.00 & 1.000000 \\\\\\\\\\n\\\\bottomrule\\n\\\\end{tabular}\\n'"
+ "'\\\\begin{tabular}{lrrrrrrr}\\n\\\\toprule\\n{} & hw 1 & hw 2 & hw 3 & hw 4 & exam & hw average & new \\\\\\\\\\nstudent & & & & & & & \\\\\\\\\\n\\\\midrule\\nA & 10.0 & 9.0 & 10.0 & 7.0 & 97.0 & 9.00 & 0.848599 \\\\\\\\\\nB & 8.0 & 7.0 & 9.0 & 9.0 & 82.0 & 8.25 & 0.394722 \\\\\\\\\\nC & 0.0 & 9.0 & 6.0 & 5.0 & 80.0 & 5.00 & 0.957668 \\\\\\\\\\nD & 8.0 & 9.0 & 9.0 & 9.0 & 90.0 & 8.75 & 0.953680 \\\\\\\\\\nE & 0.0 & 10.0 & 10.0 & 10.0 & 95.0 & 7.50 & 0.000388 \\\\\\\\\\nF & 8.0 & 2.0 & 6.0 & 7.0 & 80.0 & 5.75 & 0.898409 \\\\\\\\\\nG & 6.0 & 0.0 & 4.0 & 5.0 & 80.0 & 3.75 & 0.346747 \\\\\\\\\\nH & 8.0 & 8.0 & 9.0 & 8.0 & 84.0 & 8.25 & 0.716042 \\\\\\\\\\nI & 10.0 & 7.0 & 10.0 & 10.0 & 92.0 & 9.25 & 0.965628 \\\\\\\\\\nJ & 10.0 & 6.0 & 9.0 & 9.0 & 91.0 & 8.50 & 0.124690 \\\\\\\\\\nK & 8.0 & 7.0 & 6.0 & 8.0 & 87.0 & 7.25 & 0.694847 \\\\\\\\\\nL & 3.0 & 8.0 & 5.0 & 7.0 & 80.0 & 5.75 & 0.930668 \\\\\\\\\\nM & 9.0 & 9.0 & 8.0 & 9.0 & 94.0 & 8.75 & 0.606070 \\\\\\\\\\nN & 8.0 & 10.0 & 9.0 & 9.0 & 90.0 & 9.00 & 0.212891 \\\\\\\\\\nO & 10.0 & 10.0 & 10.0 & 9.0 & 99.0 & 9.75 & 0.905785 \\\\\\\\\\nP & 8.0 & 9.0 & 8.0 & 10.0 & 94.0 & 8.75 & 0.415708 \\\\\\\\\\nQ & 5.0 & 7.0 & 6.0 & 5.0 & 80.0 & 5.75 & 0.145941 \\\\\\\\\\nR & 1.0 & 1.0 & 1.0 & 1.0 & 1.0 & 1.00 & 1.000000 \\\\\\\\\\n\\\\bottomrule\\n\\\\end{tabular}\\n'"
]
},
- "execution_count": 80,
+ "execution_count": 83,
"metadata": {},
"output_type": "execute_result"
}
@@ -5162,11 +5079,7 @@
{
"cell_type": "code",
"execution_count": null,
- "metadata": {
- "collapsed": true,
- "deletable": true,
- "editable": true
- },
+ "metadata": {},
"outputs": [],
"source": []
}
@@ -5187,9 +5100,9 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
- "version": "3.5.3"
+ "version": "3.6.5"
}
},
"nbformat": 4,
- "nbformat_minor": 0
+ "nbformat_minor": 1
}
diff --git a/lectures/07-pandas/pandas-worldbank.ipynb b/content/07-pandas/pandas-worldbank.ipynb
similarity index 100%
rename from lectures/07-pandas/pandas-worldbank.ipynb
rename to content/07-pandas/pandas-worldbank.ipynb
diff --git a/content/07-pandas/pandas_solutions.txt b/content/07-pandas/pandas_solutions.txt
new file mode 100644
index 00000000..1db8c26b
--- /dev/null
+++ b/content/07-pandas/pandas_solutions.txt
@@ -0,0 +1,37 @@
+Q1:
+
+np.allclose(names.groupby(["year", "sex"]).prop.sum(), 1.0)
+
+
+Q2:
+
+boys = top[top.sex == "M"]
+girls = top[top.sex == "F"]
+
+Q3:
+
+all_names = top["name"].unique()
+all_names.dtype
+
+len(all_names)
+
+
+Q4:
+
+what are all the names that appear for both boys and girls?
+
+boy_names = top[top["sex"] == "M"]["name"].unique()
+girl_names = top[top["sex"] == "F"]["name"].unique()
+joint = np.intersect1d(boy_names, girl_names)
+
+
+Q5:
+
+def get_count(group, q=0.5):
+ group = group.sort_values(by="prop", ascending=False)
+ return group["prop"].cumsum().searchsorted(0.5)[0] + 1
+
+diversity = top.groupby(["year", "sex"]).apply(get_count)
+diversity = diversity.unstack("sex")
+diversity.plot()
+
diff --git a/lectures/07-pandas/sample.csv b/content/07-pandas/sample.csv
similarity index 100%
rename from lectures/07-pandas/sample.csv
rename to content/07-pandas/sample.csv
diff --git a/lectures/09-packages/NOTES b/content/09-packages/NOTES
similarity index 100%
rename from lectures/09-packages/NOTES
rename to content/09-packages/NOTES
diff --git a/content/09-packages/argparse_example.py b/content/09-packages/argparse_example.py
new file mode 100644
index 00000000..003893a2
--- /dev/null
+++ b/content/09-packages/argparse_example.py
@@ -0,0 +1,43 @@
+#!/usr/bin/env python3
+
+# to get usage: use -h
+import argparse
+
+
+def setup_args():
+
+ # simple example of argparse
+
+ parser = argparse.ArgumentParser()
+ parser.add_argument("-a", help="the -a option", action="store_true")
+ parser.add_argument("-b", help="-b takes a number", type=int, default=0)
+ parser.add_argument("-c", help="-c takes a string", type=str, default=None)
+ parser.add_argument("--darg", help="the --darg option", action="store_true")
+ parser.add_argument("--earg", help="--earg takes a string", type=str, metavar="test",
+ default="example string")
+
+ # extra arguments (positional)
+ parser.add_argument("extras", metavar="extra", type=str, nargs="*",
+ help="optional positional arguments")
+
+ return parser.parse_args()
+
+
+if __name__ == "__main__":
+
+ args = setup_args()
+
+
+ if args.a:
+ print("-a set")
+ print(f"-b = {args.b}")
+ print(f"-c = {args.c}")
+ if args.darg:
+ print("--dargs set")
+ print(f"--earg value = {args.earg}")
+
+ print(" ")
+ print("extra positional arguments: ")
+ if len(args.extras) > 0:
+ for e in args.extras:
+ print(e)
diff --git a/content/09-packages/packaging.pdf b/content/09-packages/packaging.pdf
new file mode 100644
index 00000000..9b324497
Binary files /dev/null and b/content/09-packages/packaging.pdf differ
diff --git a/content/09-packages/python-arguments.md b/content/09-packages/python-arguments.md
new file mode 100644
index 00000000..0cbb2683
--- /dev/null
+++ b/content/09-packages/python-arguments.md
@@ -0,0 +1,21 @@
+# Command line arguments
+
+For standalone programs, we often want to have our program take
+command line arguments that affect the runtime behavior of our
+program. There are a variety of mechanisms to do this in python, but
+the best option is the [argparse
+module](https://docs.python.org/3/library/argparse.html).
+
+Here's an example of using `argparse` to take a variety of options:
+
+```{literalinclude} argparse_example.py
+---
+language: python
+```
+
+A nice feature of `argparse` is that it automatically generates help for us. If
+we place the above code in `argparse_example.py` then we can do:
+
+```python
+python argparse_example.py --help
+```
diff --git a/content/09-packages/python-modules.md b/content/09-packages/python-modules.md
new file mode 100644
index 00000000..9aa264c0
--- /dev/null
+++ b/content/09-packages/python-modules.md
@@ -0,0 +1,91 @@
+# Python Modules
+
+So far, we've been writing our code all in Jupyter. But when it comes
+time to write code that we want to reuse, we want to put it into a
+standalone `*.py` file.
+
+Then we can load it on in python (or Jupyter) and use the capabilities
+it provides or make it a standalone program that can be run from the
+command line.
+
+```{tip}
+Jupyter is great for interactive explorations and sharing your workflow with others
+in a self-contained way. But if there is an operation that you do over and over,
+you should put it into a separate module that you import. That way you only need to
+maintain and debug a single instance of the function, and all your workflows can reuse it.
+```
+
+
+## Editors
+
+There are a number of popular editors for writing python source. Some
+popular ones include:
+
+* spyder: https://www.spyder-ide.org/
+
+* VS Code: https://code.visualstudio.com/
+
+* emacs / vi
+
+
+## Standalone module
+
+Here's a very simply module (lets call it `hello.py`):
+
+```python
+def hello():
+ print("hello")
+
+if __name__ == "__main__":
+ hello()
+```
+
+There are two ways we can use this.
+
+* Inside of python (or IPython), we can do:
+
+ ```python
+ import hello
+ hello.hello()
+ ```
+
+* From the command line, we can do:
+
+ ```python
+ python hello.py
+ ```
+
+Additionally, on a Unix system, we can add:
+
+```python
+#!/usr/bin/env python3
+```
+
+to the top and then mark the file as executable, via:
+
+```bash
+chmod a+x hello.py
+```
+
+allowing us to execute it simply as:
+
+```bash
+./hello.py
+```
+
+```{hint}
+Here we see how the `__name__` variable is treated by python:
+
+* If we import our module into python, then `__name__` is set to the module name
+
+* If we run the module from the command line, then `__name__` is set to `__main__`
+```
+
+## Changing module contents
+
+If we make changes to our module file, then we need to re-import it. This can be done as:
+
+```python
+import importlib
+example = importlib.reload(example)
+```
diff --git a/content/09-packages/python-more-modules.md b/content/09-packages/python-more-modules.md
new file mode 100644
index 00000000..bf8936c2
--- /dev/null
+++ b/content/09-packages/python-more-modules.md
@@ -0,0 +1,57 @@
+# Module Paths
+
+How does python find modules? It has a [search order](https://docs.python.org/3/tutorial/modules.html#the-module-search-path):
+
+* current directory
+
+* `PYTHONPATH` environment variable (this follows the same format as
+ the shell `PATH` environment variable)
+
+* System-wide python installation default path (usually has a
+ `site-packages` directory)
+
+We can look at the path via ``sys.path``. On my machine I get:
+
+```
+['/home/zingale/.local/bin',
+ '/home/zingale/classes/python-science/content/09-packages',
+ '/home/zingale/classes/numerical_exercises',
+ '/home/zingale/classes/astro_animations',
+ '/usr/lib64/python312.zip',
+ '/usr/lib64/python3.12',
+ '/usr/lib64/python3.12/lib-dynload',
+ '',
+ '/home/zingale/.local/lib/python3.12/site-packages',
+ '/usr/lib64/python3.12/site-packages',
+ '/usr/lib/python3.12/site-packages']
+
+```
+
+```{note}
+You can explicitly add paths to the ``sys.path`` by setting the `PYTHONPATH`
+environment variable.
+```
+
+
+Notice that the general places that it looks are in `~/.local` and in
+`/usr`. The first is the user-specific path—you can install things
+here without admin privileges. The second is a system-wide path.
+
+You can find your user-specific path via:
+
+```bash
+python3 -m site --user-site
+```
+
+on my machine, this gives:
+
+```
+/home/zingale/.local/lib/python3.12/site-packages
+```
+
+```{tip}
+Using `PYTHONPATH` to quickly add a module to your search path is an easy hack,
+but if you are developing a library that will be used by others, it is better
+to make the modules installable to the system search paths. This is where
+_packaging_ comes into play.
+```
diff --git a/content/09-packages/python-packages.md b/content/09-packages/python-packages.md
new file mode 100644
index 00000000..e37c3905
--- /dev/null
+++ b/content/09-packages/python-packages.md
@@ -0,0 +1,205 @@
+# Packaging
+
+
+
+Let's look at the structure of creating an installable python package.
+
+```{note}
+The python packaging system is constantly evolving, and the current recommendations
+of tools is list here: https://packaging.python.org/en/latest/guides/tool-recommendations/
+```
+
+
+
+(from https://xkcd.com)
+
+
+## Our example
+
+We'll work on an example that builds on the Mandelbrot set exercise
+from our matplotlib discussion. Our example is hosted here:
+
+https://github.com/sbu-python-class/mymodule
+
+On your local computer, if you have `git` installed, you can clone this via:
+
+```
+git clone https://github.com/sbu-python-class/mymodule.git
+```
+
+The directory structure appears as:
+
+```
+mymodule/
+├── mymodule
+│ ├── __init__.py
+│ └── mandel.py
+├── pyproject.toml
+└── README.md
+```
+
+This is a rather common way of structuring a project:
+
+* The top-level `mymodule` directory is not part of the python
+ package, but instead is where the source control (e.g. git) begins,
+ and also hosts setup files that are used for installation
+
+* `mymodule/mymodule` is the actual python module that we will load.
+
+ ```{important}
+ To make python recognize this as a module, we need an `__init__.py`
+ file there—it can be completely empty.
+ ```
+
+* The actual `*.py` files that make up our module are in `mymodule/mymodule`
+
+Right now, this package does not appear in our python search path, so
+the only way to load it is to work in the top-level `mymodule/`
+directory, and then we can do:
+
+```python
+import mymodule.mandel
+```
+
+we could also do:
+
+```python
+from mymodule.mandel import mandelbrot
+```
+
+
+## setuptools
+
+A popular set of packages are:
+
+* Installation:
+
+ * `pip` to install packages from PyPI
+ * `conda` for disctribution cross-platform software stacks
+
+* Packaging tools:
+
+ * `setuptools` to create source distributions
+ * `build` for binary distributions
+ * `twine` to upload to PyPI
+
+We'll look at how to use [`setuptools`](https://setuptools.pypa.io/en/latest/build_meta.html) to package our library.
+
+```{note}
+A lot of setuptools documentation is out-of-date and
+inconsistent with the packaging guidelines.
+
+Packages used to create a `setup.py` file that had all of the project information,
+but this is deprecated. Instead we should create a
+[pyproject.toml](https://packaging.python.org/en/latest/guides/writing-pyproject-toml/) file---this
+is consistent with [PEP 517](https://peps.python.org/pep-0517/).
+```
+
+Here's a first `pyproject.toml`:
+
+```toml
+[build-system]
+requires = ["setuptools"]
+build-backend = "setuptools.build_meta"
+
+[project]
+name = "mymodule"
+description = "test module for PHY 546"
+readme = "README.md"
+license.text = "BSD"
+version="0.1.0"
+authors = [
+ {name="Michael Zingale"},
+ {email="michael.zingale@stonybrook.edu"},
+]
+
+dependencies = [
+ "numpy",
+ "matplotlib",
+]
+
+```
+
+Some notes:
+
+* We have a `[build-system]` table that specifies the build tool.
+ Here we choose `setuptools`.
+
+* We have a lot of metadata for our project defined in the `[project]`
+ table.
+
+* We also list the dependencies of our project in the `[project]` table.
+ This will allow the installer to install any missing packages that are
+ required.
+
+There are many additional options to specify how to find files that
+are part of the project as well as data files, etc.
+
+
+```{tip}
+`pyproject.toml` also allows you to specify defaults for tools, like
+`pylint`, `flake8`, and others with a `[tool.X]` subtable.
+```
+
+```{note}
+Some projects also contain a `setup.cfg`
+file when using `setuptools`. This is
+usually not needed, since we can put everything
+in the `[project]` table.
+```
+
+
+## Installing
+
+We can now install simply as:
+
+```bash
+pip install .
+```
+
+```{tip}
+Look in your `.local/lib/python3.12/site-packages` directory, and you'll
+see the module there.
+```
+
+If instead, we want to install in a way that still allows us to edit the source,
+we can install as "editable" via:
+
+```bash
+pip install -e .
+```
+
+To uninstall, we can do:
+
+```bash
+pip uninstall mymodule
+```
+
+in a directory outside of our project (otherwise, `pip` may get confused).
+
+## Using our module
+
+Once the module is installed, we can use it from any directory. For example, if we do:
+
+```python
+import mymodule
+print(mymodule.__file__)
+```
+
+it shows us where the module is installed on our system. In my case, it is:
+
+```
+/home/zingale/.local/lib/python3.12/site-packages/mymodule-0.1.0-py3.12.egg/mymodule/__init__.py
+```
+
+Let's generate a plot:
+
+```python
+from mymodule.mandel import mandelbrot
+fig = mandelbrot(128)
+fig.savefig("test.png")
+```
+
+This produces the plot shown below:
+
+
diff --git a/content/09-packages/python-tools.md b/content/09-packages/python-tools.md
new file mode 100644
index 00000000..9add0512
--- /dev/null
+++ b/content/09-packages/python-tools.md
@@ -0,0 +1,63 @@
+# Tools to Make Your Life Easier
+
+## Version control
+
+Generally, you should put your project into version control. The most widely used
+package today is [git](https://git-scm.com/book/en/v2/Getting-Started-About-Version-Control).
+git will track the changes you make to your code, allow you to revert changes, collaboratively
+develop with others, work on several different features independently from one another while
+keeping the main codebase clean and more.
+
+git is often used together with [github](https://github.com), which provides a web-based view
+of your source code and provides additional mechanisms for collaboration.
+
+A nice introduction to git/github is provided by the [Software
+Carpentry _Version Control with Git_
+lesson](https://swcarpentry.github.io/git-novice/).
+
+
+## Code checkers
+
+There are a number of tools that help check code for formatting and
+syntax errors that are quite useful for developers. Many projects
+automatically enforce these tools on changes submitted to github.
+
+```{tip}
+Many editors have plugins that can automatically run these tools
+as your write your code.
+```
+
+* [flake8](https://flake8.pycqa.org/en/latest/)
+
+ `flake8` is a checker for [PEP 8](https://peps.python.org/pep-0008/)
+ style conformance. You can turn off checks that you don't like
+ via a [`.flake8`
+ file](https://flake8.pycqa.org/en/latest/user/configuration.html#configuration-locations).
+
+* [pylint](https://pypi.org/project/pylint/)
+
+ `pylint` is a static code analyzer. It can find errors and also suggest improvements
+ to your code. You can [generate a configuration file](https://pylint.readthedocs.io/en/latest/user_guide/configuration/index.html)
+ to customize its behavior (or add a section to `pyproject.toml`).
+
+* [black](https://pypi.org/project/black/)
+
+ `black` is an _uncompromising code formatted_. It will automatically rewrite your code
+ based on PEP-8 style.
+
+* [pyupgrade](https://github.com/asottile/pyupgrade)
+
+ `pyupgrade` will upgrade source to a later python standard, making
+ use of new features where available. For instance, you can run as:
+
+ ```
+ pyupgrade --py39-plus file.py
+ ```
+
+ to update to python 3.9 support.
+
+* [isort](https://pycqa.github.io/isort/)
+
+ `isort` simply sorts the module imports at the top of your modules,
+ grouping the standard python ones together followed by
+ package-specific ones.
diff --git a/content/09-packages/python_environment.png b/content/09-packages/python_environment.png
new file mode 100644
index 00000000..a8e8fd61
Binary files /dev/null and b/content/09-packages/python_environment.png differ
diff --git a/content/09-packages/test.png b/content/09-packages/test.png
new file mode 100644
index 00000000..062a8207
Binary files /dev/null and b/content/09-packages/test.png differ
diff --git a/content/10-testing/more-pytest.md b/content/10-testing/more-pytest.md
new file mode 100644
index 00000000..d84611a3
--- /dev/null
+++ b/content/10-testing/more-pytest.md
@@ -0,0 +1,130 @@
+# More pytest
+
+Unit tests sometimes require some setup to be done before the test is run.
+Fixtures provide this capability, allowing tests to run with a consistent
+environment and data.
+
+Standard pytest fixtures are written as functions with the `@pytest.fixture`
+decorator:
+```python
+@pytest.fixture
+def message():
+ return "Hello world!"
+```
+
+A fixture may return an object, which will be passed to any function
+that requests it, or it may just do some setup tasks (like creating a file or
+connecting to a database).
+
+Test functions can request a fixture by specifying a parameter with the same
+name as the fixture:
+```python
+def test_split(message):
+ assert len(message.split()) == 2
+```
+
+An alternate method for initializing test state is with explicit setup/teardown
+functions, which we'll look at a bit later. This is a style that's available in
+many other languages as well: see https://en.wikipedia.org/wiki/XUnit.
+
+## Fixtures examples
+
+Fixtures are reusable across different tests. This lets us avoid repeating the
+same setup code in multiple places, especially as we add more tests or need
+more complicated inputs.
+
+Here are some tests for the `Item` class that use fixtures, adapted from the
+[shopping cart exercise](w4-exercise-1). The full code is available
+[here](https://github.com/sbu-python-class/python-science/blob/main/examples/testing/pytest/fixtures/test_item.py)
+on the github repository for this site. You can download this file and run
+the tests with `pytest -v test_item.py`.
+
+```{literalinclude} ../../examples/testing/pytest/fixtures/test_item.py
+:lines: 58-68
+```
+
+All the fixtures that a test depends on will run once for each test.
+This gives each test a fresh copy of the data, so any changes made to the
+fixture results inside a test won't impact other tests.
+```{literalinclude} ../../examples/testing/pytest/fixtures/test_item.py
+:lines: 70-83
+```
+
+We can also test that a function raises specific exceptions with `pytest.raises`:
+```{literalinclude} ../../examples/testing/pytest/fixtures/test_item.py
+:lines: 85-91
+```
+
+### Fixtures can request other fixtures
+
+This is useful to split up complex initialization into smaller parts.
+A fixture can also modify the results of the fixtures it requests, which *will*
+be visible to anything that includes the fixture.
+
+Here is a set of tests that show how this can be used ([test_list.py](https://github.com/sbu-python-class/python-science/blob/main/examples/testing/pytest/fixtures/test_list.py)):
+```{literalinclude} ../../examples/testing/pytest/fixtures/test_list.py
+:lines: 1-13
+```
+
+Note that `append_1()` and `append_2()` only modify `numbers`, and don't return
+anything. `append_2()` requires `append_1`, to make sure they are run in the
+right order.
+
+This test only requires `numbers`, so it will receive an empty list:
+```{literalinclude} ../../examples/testing/pytest/fixtures/test_list.py
+:lines: 15-16
+```
+
+This test requires `append_1`, but not `append_2`:
+```{literalinclude} ../../examples/testing/pytest/fixtures/test_list.py
+:lines: 18-19
+```
+
+This test requires `append_2`, which itself pulls in `append_1`:
+```{literalinclude} ../../examples/testing/pytest/fixtures/test_list.py
+:lines: 21-22
+```
+
+
+## Example class
+
+It is common to use a class to organize a set of related unit tests. This is
+not a full-fledged class -- it simply helps to organize tests and data. In particular,
+there is no constructor, `__init__()`. See https://stackoverflow.com/questions/21430900/py-test-skips-test-class-if-constructor-is-defined
+
+We'll look at an example with a NumPy array
+
+* We'll use xunit-style setup/teardown methods to store the array as a class
+ member
+
+ * This way we don't have to ask for it in each of the tests
+
+* We'll use NumPy's own assertion functions: https://numpy.org/doc/stable/reference/routines.testing.html
+
+
+Here's an example:
+
+```{include} ../../examples/testing/pytest/class/test_class.py
+:code: python
+```
+
+```{note}
+Here we see the [`@classmethod` decorator](https://docs.python.org/3/library/functions.html#classmethod).
+This means that the function receives the class itself as the first argument rather than an instance,
+e.g., `self`.
+```
+
+Put this into a file called `test_class.py` and then we can run as:
+
+```bash
+pytest -v
+```
+
+```{admonition} Quick Exercise
+Try adding a new test that modifies `self.a`, above `test_max()`.
+Does this behave as you expect? What happens if you move the array creation
+into `setup_class()` instead?
+```
+
+% By default, pytest will capture stdout and only show it on failures. To make it
+% always show stdout, we add the `-s` flag.
diff --git a/lectures/10-testing/notes.txt b/content/10-testing/notes.txt
similarity index 100%
rename from lectures/10-testing/notes.txt
rename to content/10-testing/notes.txt
diff --git a/lectures/10-testing/pytest b/content/10-testing/pytest
similarity index 100%
rename from lectures/10-testing/pytest
rename to content/10-testing/pytest
diff --git a/content/10-testing/pytest.md b/content/10-testing/pytest.md
new file mode 100644
index 00000000..89b97892
--- /dev/null
+++ b/content/10-testing/pytest.md
@@ -0,0 +1,110 @@
+# pytest
+
+`pytest` is a unit testing framework for python code.
+
+Basic elements:
+
+* Discoverability: it will find the tests
+
+* Automation
+
+* Fixtures (setup and teardown)
+
+## Installing
+
+You can install `pytest` for a single user as:
+
+```
+pip install pytest
+```
+
+This should put `pytest` in your search path, likely in `~/.local/bin`.
+
+If you want to generate coverage reports, you should also install `pytest-cov`:
+
+```
+pip install pytest-cov
+```
+
+## Test discovery
+
+Adhering to these naming conventions will ensure that your tests are automatically found:
+
+* File names should start or end with "test":
+
+ * `test_example.py`
+ * `example_test.py`
+
+* For tests in a class, the class name should begin with `Test`
+
+ * e.g., `TestExample`
+ * There should be no `__init__()`
+
+* Test method / function names should start with `test_`
+
+ * e.g., `test_example()`
+
+## Assertions
+
+Tests use assertions (via python’s `assert` statement) to check behavior at runtime
+
+* https://docs.python.org/3/reference/simple_stmts.html#assert
+
+* Basic usage: `assert expression`
+
+ * Raises `AssertionError` if expression is not true
+
+ * e.g., `assert 1 == 0` will fail with an exception
+
+* pytest does some magic under the hood to add more details about what
+ exactly went wrong, which we will see below
+
+## Simple pytest example
+
+Create a file named `test_simple.py` with the following content:
+
+```python
+def multiply(a, b):
+ return a*b
+
+def test_multiply():
+ assert multiply(4, 6) == 24
+
+def test_multiply2():
+ assert multiply(5, 6) == 2
+```
+
+then we can run the tests as:
+
+```
+pytest -v
+```
+
+and we get the output:
+
+```
+============================= test session starts ==============================
+platform linux -- Python 3.11.3, pytest-7.2.2, pluggy-1.0.0 -- /usr/bin/python3
+cachedir: .pytest_cache
+rootdir: /home/zingale/temp/pytest
+plugins: anyio-3.6.2
+collected 2 items
+
+test_simple.py::test_multiply PASSED [ 50%]
+test_simple.py::test_multiply2 FAILED [100%]
+
+=================================== FAILURES ===================================
+________________________________ test_multiply2 ________________________________
+
+ def test_multiply2():
+> assert multiply(5, 6) == 2
+E assert 30 == 2
+E + where 30 = multiply(5, 6)
+
+test_simple.py:8: AssertionError
+=========================== short test summary info ============================
+FAILED test_simple.py::test_multiply2 - assert 30 == 2
+========================= 1 failed, 1 passed in 0.04s ==========================
+```
+
+this is telling us that one of our tests has failed.
diff --git a/content/10-testing/real-world-example.md b/content/10-testing/real-world-example.md
new file mode 100644
index 00000000..aaae6179
--- /dev/null
+++ b/content/10-testing/real-world-example.md
@@ -0,0 +1,92 @@
+# Real World Example
+
+Let's look at the testing in a larger python package. We'll use our
+group's python hydrodynamics code, pyro, as a test:
+
+https://github.com/python-hydro/pyro2
+
+## Installing
+
+We need to install the package first, via the `setup.py`:
+
+```bash
+python setup.py install --user
+```
+
+or alternately as
+
+```bash
+pip install .
+```
+
+## Running the tests
+
+We can run the tests via:
+
+```bash
+pytest -v pyro
+```
+
+## Using notebooks as tests
+
+Sometimes we want to use Jupyter notebooks as tests themselves—this
+is enabled via the [nbval plugin](https://nbval.readthedocs.io/en/latest/). In
+this way, pytest will execute the cells in the notebook and compare
+the result to the result stored in the notebook. If they agree, then
+the test passes.
+
+Sometimes there's a particular cell that we don't want to be part of the
+testing—we can disable these on a cell-by-cell basis by [adding
+tags to a cell](https://nbval.readthedocs.io/en/latest/#Using-tags-instead-of-comments).
+
+We can test notebooks as:
+
+```bash
+pytest -v --nbval pyro
+```
+
+## Coverage report
+
+The [pytest-cov](https://pytest-cov.readthedocs.io/en/latest/) plugin enables the generation
+of a coverage report. This will tell you what fraction of each python file was tested.
+We run this as:
+
+```bash
+pytest -v --cov=pyro --nbval pyro
+```
+
+We can also generate a more detailed interactive report with
+
+```bash
+coverage html
+```
+
+## Other types of tests
+
+Unit tests are only one form of testing—they test a function in
+isolation of others. Sometimes we need to test everything working together.
+For scientific codes, regression testing is often used. The basic workflow
+is:
+
+* Start with the project working in a way you are happy with
+
+* Store the output of one (or more) runs as a _benchmark_.
+
+* Each time you make changes, run the code and compare the new output
+ to the stored benchmark.
+
+ * If there are no differences, then your changes are likely good
+ (but there is always the case of some feature not being tested).
+
+ * If there are differences, then either you introduced a bug, in which
+ case you should fix it, or you fixed a bug, in which case you should
+ update the benchmarks.
+
+For our example code, pyro, the regression test runs simulations using
+all the different solvers and compares against the stored output, zone-by-zone
+for any differences. The comparison itself is built into the main driver
+of the code and can be invoked as:
+
+```bash
+./pyro/test.py
+```
diff --git a/lectures/10-testing/testing.fodp b/content/10-testing/testing.fodp
similarity index 99%
rename from lectures/10-testing/testing.fodp
rename to content/10-testing/testing.fodp
index ac31aff8..1e9af130 100644
--- a/lectures/10-testing/testing.fodp
+++ b/content/10-testing/testing.fodp
@@ -1,7 +1,7 @@
- Michael Zingale2013-01-02T12:36:142017-05-01T10:44:37.692799124P1DT13H43M56S190LibreOffice/5.2.6.2$Linux_X86_64 LibreOffice_project/20$Build-2
+ Michael Zingale2013-01-02T12:36:142019-07-23T20:09:25.108117001P1DT13H52M28S192LibreOffice/6.2.5.2$Linux_X86_64 LibreOffice_project/20$Build-2-301
@@ -22,23 +22,23 @@
true1500false
- //////////////////////////////////////////8=
- //////////////////////////////////////////8=
+ Hw==
+ Hw==falsetruetrue0
- 20
+ 19falsetruetrue40
- -301
- -4555
- 37579
- 21871
+ -331
+ -9360
+ 47262
+ 2186225402540254
@@ -50,17 +50,22 @@
false1500true
+ falsetrue
- $(inst)/share/palette%3B$(user)/config/standard.sob
+ $(brandbaseurl)/share/palette%3B$(user)/config/standard.sob0
- $(user)/config/standard.soc
- $(inst)/share/palette%3B$(user)/config/standard.sod
+ $(brandbaseurl)/share/palette%3B$(user)/config/standard.soc
+ $(brandbaseurl)/share/palette%3B$(user)/config/standard.sod1270
+ true
+ truefalse
+ true
+ falseen
@@ -70,9 +75,9 @@
- $(user)/config/standard.sog
+ $(brandbaseurl)/share/palette%3B$(user)/config/standard.sogtrue
- $(inst)/share/palette%3B$(user)/config/standard.soh
+ $(brandbaseurl)/share/palette%3B$(user)/config/standard.sohfalsefalsetrue
@@ -87,14 +92,16 @@
falsefalsefalse
- $(inst)/share/palette%3B$(user)/config/standard.soe
+ $(brandbaseurl)/share/palette%3B$(user)/config/standard.soefalse4false0low-resolution
- hp
- sgH+/2hwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQ1VQUzpocAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWAAMA0wAAAAAAAAAIAFZUAAAkbQAASm9iRGF0YSAxCnByaW50ZXI9aHAKb3JpZW50YXRpb249UG9ydHJhaXQKY29waWVzPTEKY29sbGF0ZT1mYWxzZQptYXJnaW5kYWp1c3RtZW50PTAsMCwwLDAKY29sb3JkZXB0aD0yNApwc2xldmVsPTAKcGRmZGV2aWNlPTEKY29sb3JkZXZpY2U9MApQUERDb250ZXhEYXRhCkR1cGxleDpEdXBsZXhOb1R1bWJsZQBJbnB1dFNsb3Q6RGVmYXVsdABQYWdlU2l6ZTpMZXR0ZXIAABIAQ09NUEFUX0RVUExFWF9NT0RFDwBEVVBMRVhfTE9OR0VER0U=
+ LaserJet-P2055dn
+ false
+ nQH+/0xhc2VySmV0LVAyMDU1ZG4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQ1VQUzpMYXNlckpldC1QMjA1NWRuAAAAAAAAAAAAAAAWAAMAuQAAAAAAAAAIAFZUAAAkbQAASm9iRGF0YSAxCnByaW50ZXI9TGFzZXJKZXQtUDIwNTVkbgpvcmllbnRhdGlvbj1Qb3J0cmFpdApjb3BpZXM9MQpjb2xsYXRlPWZhbHNlCm1hcmdpbmRhanVzdG1lbnQ9MCwwLDAsMApjb2xvcmRlcHRoPTI0CnBzbGV2ZWw9MApwZGZkZXZpY2U9MQpjb2xvcmRldmljZT0wClBQRENvbnRleERhdGEKUGFnZVNpemU6TGV0dGVyAAASAENPTVBBVF9EVVBMRVhfTU9ERRQARHVwbGV4TW9kZTo6TG9uZ0VkZ2U=
+ truefalse6true
@@ -115,6 +122,7 @@
+
@@ -122,10 +130,17 @@
+
+
+
+
+
+
+
@@ -133,7 +148,7 @@
-
+
@@ -186,18 +201,107 @@
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -260,7 +364,7 @@
-
+
@@ -449,7 +553,7 @@
-
+
@@ -638,7 +742,7 @@
-
+
@@ -827,7 +931,7 @@
-
+
@@ -1037,6 +1141,9 @@
+
+
+
@@ -1061,9 +1168,6 @@
-
-
-
@@ -1185,12 +1289,6 @@
-
-
-
-
-
-
@@ -1431,27 +1529,26 @@
-
+
-
+
-
+
- <number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number>
+ <number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number>
-
@@ -1543,26 +1640,28 @@
+
+
+
-
+
-
+
- <number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number>
+ <number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number>
-
@@ -1651,24 +1750,27 @@
+
+
+
-
+
-
+
-
+
- <number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number>
+ <number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number>
@@ -1686,21 +1788,21 @@
-
+
-
+
- <number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number>
+ <number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number>
-
+ iVBORw0KGgoAAAANSUhEUgAAAR4AAAAyCAIAAAAFsiN4AABFn0lEQVR4nO29B5wWRbY+XJ37
jZOHScCQZ8g5Z8RMEEUBIysoiyLm7Kqri2viusY1gzkHQEUBkYxkyTnNMITJ88bO/6e6ht65
Cn4/7+7e3W8vtbtsT7/V1dXV5znnOadOVYuOYcVEWyKirBFiEUsljkNEizgSqS8c/cfGf4jt
@@ -2044,22 +2146,22 @@
-
+
-
+
-
+
- <number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number>
+ <number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number>
@@ -2073,17 +2175,17 @@
-
+
-
+
- <number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number>
+ <number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number>
@@ -2093,22 +2195,22 @@
-
+
-
+
-
+
- <number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number>
+ <number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number>
@@ -2122,17 +2224,17 @@
-
+
-
+
- <number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number>
+ <number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number>
@@ -2142,22 +2244,22 @@
-
+
-
+
-
+
- <number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number>
+ <number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number><number>
@@ -2193,7 +2295,7 @@
This is a big topic:
- https://en.wikipedia.org/wiki/Software_testing
+ https://en.wikipedia.org/wiki/Software_testing
@@ -2333,7 +2435,7 @@
-
+ R0lGODlhzgKUAfcAABMbHQkTFRkmLB8pLxshJCksMCMsMSMwNisxNio1OTE1OTI5PDk6Oicp
KhUeIzQ8QTk9QTpBRTtFSD1GSkZKTkdISExTVE9VWEFQUFNWVFZaW1xdW1VXWFJLS1thXFRo
V1dwWWJhXGVuWmlmWmd7VXJ9XVtfYVZdYFtpY1tjY1x7Y2RmY2RoZWRpampra2ZnaHFlYXBt
@@ -176178,24 +176280,6 @@
-
-
-
- Unit vs. Integration Testing
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -176241,13 +176325,13 @@
-
+
-
+
@@ -176297,13 +176381,13 @@
-
+
-
+
@@ -176341,13 +176425,13 @@
-
+
-
+
@@ -176398,17 +176482,17 @@
- https://pytest.readthedocs.io/en/reorganize-docs/new-docs/user/naming_conventions.html
+ https://pytest.readthedocs.io/en/reorganize-docs/new-docs/user/naming_conventions.html
-
+
-
+
@@ -176422,7 +176506,7 @@
Tests use assertions (via python’s assert statement) to check behavior at runtime
- https://docs.python.org/3/reference/simple_stmts.html#assert
+ https://docs.python.org/3/reference/simple_stmts.html#assertBasic usage: assert expression
@@ -176442,13 +176526,13 @@
-
+
-
+
@@ -176495,13 +176579,13 @@
-
+
-
+
@@ -176527,7 +176611,7 @@
pytest supports a more flexible system for fixtures in addition to these, but we won’t look at it here
- http://pytest.org/dev/fixture.html
+ http://pytest.org/dev/fixture.html
@@ -176537,7 +176621,7 @@
By default, pytest will capture stdout, and only show it on failures
- See, e.g., https://docs.pytest.org/en/latest/capture.html
+ See, e.g., https://docs.pytest.org/en/latest/capture.htmlThis can be changed with the -s flag
@@ -176552,13 +176636,13 @@
-
+
-
+
@@ -176614,13 +176698,13 @@
-
+
-
+
@@ -176664,13 +176748,13 @@
-
+
-
+
@@ -176684,7 +176768,7 @@
Let’s look at a larger example:
- pyro is my tutorial hydrodynamics code: https://github.com/zingale/pyro2
+ pyro is my tutorial hydrodynamics code: https://github.com/zingale/pyro2
@@ -176699,50 +176783,50 @@
- .
- ├── advection
- │ ├── problems
- │ └── tests
- ├── advection_rk
- │ ├── problems -> ../advection/problems
- │ └── tests
- ├── analysis
- ├── compressible
- │ ├── problems
- │ └── tests
- ├── compressible_react
- ├── compressible_rk
- │ ├── problems -> ../compressible/problems
- │ └── tests
- ├── diffusion
- │ ├── problems
- │ └── tests
- ├── incompressible
- │ ├── problems
- │ └── tests
- ├── lm_atm
- │ ├── problems
- │ └── tests
- ├── lm_combustion
- ├── mesh
- │ ├── experiments
- │ └── tests
- ├── multigrid
- │ └── tests
- ├── radhydro
- ├── util
- │ └── tests
- └── www
+ .
+ ├── advection
+ │ ├── problems
+ │ └── tests
+ ├── advection_rk
+ │ ├── problems -> ../advection/problems
+ │ └── tests
+ ├── analysis
+ ├── compressible
+ │ ├── problems
+ │ └── tests
+ ├── compressible_react
+ ├── compressible_rk
+ │ ├── problems -> ../compressible/problems
+ │ └── tests
+ ├── diffusion
+ │ ├── problems
+ │ └── tests
+ ├── incompressible
+ │ ├── problems
+ │ └── tests
+ ├── lm_atm
+ │ ├── problems
+ │ └── tests
+ ├── lm_combustion
+ ├── mesh
+ │ ├── experiments
+ │ └── tests
+ ├── multigrid
+ │ └── tests
+ ├── radhydro
+ ├── util
+ │ └── tests
+ └── www
-
+
-
+
@@ -176789,13 +176873,13 @@
-
+
-
+
@@ -176823,21 +176907,21 @@
Our example, pyro, has regression testing built in with the --compare_benchmark option
- Here’s another example from my research codes: http://bender.astro.sunysb.edu/Castro/test-suite/test-suite-gfortran/
+ Here’s another example from my research codes: http://bender.astro.sunysb.edu/Castro/test-suite/test-suite-gfortran/
-
+
-
+
-
+ Verification
@@ -176870,8 +176954,8 @@
-
-
+
+ iVBORw0KGgoAAAANSUhEUgAAAbcAAAKqCAYAAAC5NxAzAAAABHNCSVQICAgIfAhkiAAAAAlw
SFlzAAAPYQAAD2EBqD+naQAAIABJREFUeJzs3XlclNXiBvBnZoAZQMAdMMklc8kUvJiES2lR
Ll3L6t7KW2HeNOsH3Yy6pbeuZlZULllJbqlYLqil2XY1o9BYFEVx11xQMDY3ZlhnYN7398cw
@@ -177499,16 +177583,15 @@
-
-
-
+
+
-
+
-
+ Our Class Slack
@@ -177531,16 +177614,15 @@
-
-
-
+
+
-
+
-
+ Next Semester: Numerical Methods
@@ -177549,7 +177631,7 @@
- I’m offering PHY 604: Computational Methods in Physics and Astronomy II next semester
+ I’m offering PHY 604: Computational Methods in Physics and Astronomy II next semesterAll the “II” means is that you know how to program
@@ -177611,13 +177693,12 @@
- http://bender.astro.sunysb.edu/classes/numerical_methods/
+ http://bender.astro.sunysb.edu/classes/numerical_methods/
-
-
-
+
+
diff --git a/content/10-testing/testing.md b/content/10-testing/testing.md
new file mode 100644
index 00000000..c7f3be34
--- /dev/null
+++ b/content/10-testing/testing.md
@@ -0,0 +1,55 @@
+# Testing
+
+Testing is an integral part of the software development process. We want to catch
+mistakes early, before they go on to affect our results.
+
+## Types of testing
+
+There are a lot of different types of software testing that exist.
+Most commonly, for scientific codes, we hear about:
+
+* Unit testing : Tests that a single function does what it was designed to do
+
+* Integration testing : Tests whether the individual pieces work together as intended.
+ Sometimes done one piece at a time (iteratively)
+
+* Regression testing : Checks whether code changes have changed answers
+
+* Verification & Validation (from the science perspective)
+
+ * Verification: are we solving the equations correctly?
+
+ * Validation: are we solving the correct equations?
+
+## Automating testing
+
+The best testing is automated. Github provides a *continuous integration* service that can
+be run on pull requests. You write a short definition (a Github workflow) that tells Github
+how to run your tests and then any time there is a change, the tests are run.
+
+## Unit testing
+
+* When to write tests?
+
+ * Some people advocate writing a unit test for a specification
+ before you write the functions they will test
+
+ * This is called Test-driven development (TDD):
+ https://en.wikipedia.org/wiki/Test-driven_development
+
+ * This helps you understand the interface, return values,
+ side-effects, etc. of what you intend to write
+
+* Often we already have code, so we can start by writing tests to
+ cover some core functionality
+
+ * Add new tests when you encounter a bug, precisely to ensure that
+ this bug doesn’t arise again
+
+* Tests should be short and simple
+
+ * You want to be able to run them frequently
+
+ * The more granular your tests are, the easier it will be to track down bugs
+
+
diff --git a/lectures/10-testing/unit_integration.gif b/content/10-testing/unit_integration.gif
similarity index 100%
rename from lectures/10-testing/unit_integration.gif
rename to content/10-testing/unit_integration.gif
diff --git a/content/11-machine-learning/README b/content/11-machine-learning/README
new file mode 100644
index 00000000..56cc6456
--- /dev/null
+++ b/content/11-machine-learning/README
@@ -0,0 +1,15 @@
+Note: on older machines, tensorflow generates an illegal instruction
+and crashes python on import. The issue is the CPU instructions it
+was compiled with. The solution seems to be to drop down to
+tensorflow 1.5:
+
+https://github.com/tensorflow/tensorflow/issues/17411
+
+On my system, I need to make sure I got numpy from pip (instead of the
+Fedora package manager).
+
+
+
+clustering examples:
+
+https://laxmikants.github.io/blog/neural-network-using-make-moons-dataset/
diff --git a/content/11-machine-learning/gradient-descent.ipynb b/content/11-machine-learning/gradient-descent.ipynb
new file mode 100644
index 00000000..489d03cb
--- /dev/null
+++ b/content/11-machine-learning/gradient-descent.ipynb
@@ -0,0 +1,355 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "id": "50dc4c55-a121-4353-8271-aec309b81a74",
+ "metadata": {},
+ "source": [
+ "# Gradient Descent"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "d1eea374-2243-44dd-ba94-98ab1bda1fbb",
+ "metadata": {},
+ "source": [
+ "[Gradient descent](https://en.wikipedia.org/wiki/Gradient_descent) is a simple algorithm for finding the minimum of a function of multiple variables. It works on the principle of looking at the local gradient of a function then then moving in the direction where it decreases the fastest."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "13513127-4294-4910-bcdb-6ae9803b7e58",
+ "metadata": {},
+ "source": [
+ "```{warning}\n",
+ "There is no guarantee that you arrive at the global minimum instead of a local minimum.\n",
+ "```"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "1b29e298-853d-4941-9411-72ddd1f0edf2",
+ "metadata": {},
+ "source": [
+ "Given a function $f({\\bf x})$, where ${\\bf x} = (x_0, x_1, \\ldots, x_{N-1})$,\n",
+ "the idea is to first compute the derivative:\n",
+ "\n",
+ "$$\\partial f / \\partial {\\bf x} = (\\partial f/\\partial x_0, \\partial f/\\partial x_1, \\ldots, \\partial f/\\partial x_{N-1})$$\n",
+ "\n",
+ "and then move in the opposite direction by some fraction, $\\eta$:\n",
+ "\n",
+ "$${\\bf x} \\leftarrow {\\bf x} - \\eta \\frac{\\partial f}{\\partial {\\bf x}}$$\n",
+ "\n",
+ "There are different ways to define what $\\eta$ should be, but we'll use a fixed value. We'll call $\\eta$ the _learning rate_."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "3bdcd77d-f54b-4cf3-9e13-7754d4d66906",
+ "metadata": {},
+ "source": [
+ "Let's demonstrate this."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "id": "62e0fa3e-74c3-474e-82f7-a7b8276a18b7",
+ "metadata": {
+ "tags": []
+ },
+ "outputs": [],
+ "source": [
+ "import numpy as np\n",
+ "import matplotlib.pyplot as plt"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "22754331-6821-4de0-b85f-8468a174be4d",
+ "metadata": {},
+ "source": [
+ "## Test function\n",
+ "\n",
+ "The [Rosenbrock function](https://en.wikipedia.org/wiki/Rosenbrock_function)\n",
+ "or the _banana function_ is a very difficult problem for minimization. It\n",
+ "has the form:\n",
+ "\n",
+ "$$f(x, y) = (a - x)^2 + b (y - x^2)^2$$\n",
+ "\n",
+ "and for $a = 1$ and $b = 100$, the minimimum is at a point $(a, a^2)$."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "id": "1a017bb2-fa5c-40af-9bf9-c27e0f905179",
+ "metadata": {
+ "tags": []
+ },
+ "outputs": [],
+ "source": [
+ "def rosenbrock(x0, x1, a, b):\n",
+ " return (a - x0)**2 + b*(x1 - x0**2)**2\n",
+ "\n",
+ "def drosdx(x, a, b):\n",
+ " x0 = x[0]\n",
+ " x1 = x[1]\n",
+ " return np.array([-2.0*(a - x0) - 4.0*b*(x1 - x0**2)*x0,\n",
+ " 2.0*b*(x1 - x0**2)])"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "6ffe26a7-8bcf-4e87-b293-0d6ef27519ca",
+ "metadata": {},
+ "source": [
+ "Let's plot the function"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "id": "189e89c6-3328-4bc2-b8e3-4f218fb0ed85",
+ "metadata": {
+ "tags": []
+ },
+ "outputs": [],
+ "source": [
+ "xmin = -2.0\n",
+ "xmax = 2.0\n",
+ "ymin = -1.0\n",
+ "ymax = 3.0"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "id": "bb125ea6-baab-446a-adef-1095f5006021",
+ "metadata": {
+ "tags": []
+ },
+ "outputs": [],
+ "source": [
+ "a = 1.0\n",
+ "b = 100.0"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "id": "997582fc-e0d6-4368-9c58-2575ac567fb5",
+ "metadata": {
+ "tags": []
+ },
+ "outputs": [],
+ "source": [
+ "N = 256\n",
+ "x = np.linspace(xmin, xmax, N)\n",
+ "y = np.linspace(ymin, ymax, N)\n",
+ "\n",
+ "x2d, y2d = np.meshgrid(x, y, indexing=\"ij\")"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 8,
+ "id": "f3f72877-be76-4a9c-b052-e793cbeb09b3",
+ "metadata": {
+ "tags": []
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ ""
+ ]
+ },
+ "execution_count": 8,
+ "metadata": {},
+ "output_type": "execute_result"
+ },
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "fig, ax = plt.subplots()\n",
+ "\n",
+ "im = ax.imshow(np.log10(np.transpose(rosenbrock(x2d, y2d, a, b))),\n",
+ " origin=\"lower\", extent=[xmin, xmax, ymin, ymax])\n",
+ "\n",
+ "fig.colorbar(im, ax=ax)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "516c5508-6ebc-4b66-ba57-1a164ac78a6b",
+ "metadata": {
+ "tags": []
+ },
+ "source": [
+ "## Implementing gradient descent"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "f7bf4946-7f78-4744-8ba9-d17345a8fff4",
+ "metadata": {},
+ "source": [
+ "Let's start with an initial guess. We'll keep guessing until the change in the solution is small.\n",
+ "\n",
+ "Note: our success is very sensitive to our choice of $\\eta$."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 9,
+ "id": "c41e0313-4a3f-4d8d-ac23-f63292cf0552",
+ "metadata": {
+ "tags": []
+ },
+ "outputs": [],
+ "source": [
+ "x0 = np.array([-1.0, 1.5])"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "44e78938-96d9-46ad-9841-07d5b02cbec4",
+ "metadata": {},
+ "source": [
+ "We'll set a tolerance and keep iterating until the change in the solution, `dx` is small"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 10,
+ "id": "ff9fbe69-a68c-4a52-a1ec-a8d96b9116ac",
+ "metadata": {
+ "tags": []
+ },
+ "outputs": [],
+ "source": [
+ "def do_descent(dfdx, x0, eps=1.e-5, eta=2.e-3, args=None, ax=None):\n",
+ "\n",
+ " # dx will be the change in the solution -- we'll iterate until this\n",
+ " # is small\n",
+ " dx = 1.e30\n",
+ " xp_old = x0.copy()\n",
+ "\n",
+ " if args:\n",
+ " grad = dfdx(xp_old, *args)\n",
+ " else:\n",
+ " grad = dfdx(xp_old)\n",
+ "\n",
+ " while dx > eps:\n",
+ "\n",
+ " xp = xp_old - eta * grad\n",
+ " \n",
+ " if ax:\n",
+ " ax.plot([xp_old[0], xp[0]], [xp_old[1], xp[1]], color=\"C1\")\n",
+ " \n",
+ " dx = np.linalg.norm(xp - xp_old)\n",
+ " \n",
+ " if args:\n",
+ " grad_new = dfdx(xp, *args)\n",
+ " else:\n",
+ " grad_new = dfdx(xp)\n",
+ " \n",
+ " #eta_new = np.abs(np.transpose(xp) @ (grad_new - grad)) / np.linalg.norm(grad_new - grad)**2\n",
+ " #eta = min(10*eta, eta_new)\n",
+ " \n",
+ " grad = grad_new\n",
+ " \n",
+ " xp_old[:] = xp"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 11,
+ "id": "dc9db9da-a87b-480a-9c45-fab0ddd8368d",
+ "metadata": {
+ "tags": []
+ },
+ "outputs": [],
+ "source": [
+ "do_descent(drosdx, x0, args=(a, b), ax=ax)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 12,
+ "id": "989577fb-6a21-4bd1-a5de-fc2da3eff011",
+ "metadata": {
+ "tags": []
+ },
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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ue63bt2KPXv2qNfll1/unPJjH/sYGGPe18aNG7U+zzzzDN761rfi13/91/He97630leclKI2/SxaMRuW59OX97OQn7BqLHk28pziPDp5jmSrM8lzfPOoMViR6c47NyMMesb3NcdSDy7u/06RsU79gZci5bF6qKYQz3kwCCKbrBWH+J9Jkhta/EbKb5/y27j1riswH+OIAdx196fxirP+C7hsD6GoImaw6EnFCP3akP9b2cde4kasNQId0/E7WK4V8Z3bMX9s7n4zti6FpsvRc1JZy/dSwdNzuSufFTdKlNpWuev1NDqWWfP37/4LRMjBd6vxXgK+K/LYRxEvEOOYLvsin70emzd/e5vL3iamknblzavzFre92b9wrCUMTwhYt8kcbZelnQrLk7rf6/YHEFxrBQAuu+wyvPOd7/S2OfbYY9X7Z555Bm94wxsUu2xVOewVvUuq0OGGV7uTdLUBDHqBSrmocHVK3FCmPFrJrvAeOUEPZc2TbHmmcs9pctMCW17KWfZwkH2hlX+KeEYxm909UtkrxY9cQaeQde0ZKD2uVEive8Uf4a67Po1hAMPguPXnV+J1Z15SUPayn5hPjsPUfGodck1cfzApxj3VNl9/RB4gvXeykrlKFL1Lucv3towDnxUvc+RzBR8JS77gro9yhH1XAPC+//z/xEzkSv5vcA5w9BIgTsE6ghRH5svb4vLCjZ678aXLvowBjyLtpZggPLOQU+7e15W7TUJS6kxpM3feJt7U3kDsUd1qddPafVxRFi5ciIULFwa13bZtG97whjdg7dq1+PKXv4woqv5LDn77AKnjkqpMednjWFsZKC9sDG59HzqmmV5n+85mvJSOSx+21EVrovCpi/+sU3Ik/vz0IL5x39UAcje1aaGWufJtsXs5nhxH+0vc56Zbv+DCN9zjtli8KWV9bDF26p431+yy4n1KXv6OBSVvkOHkljzU6xPP/x+sxktKyd+Lubhy+Vtya15a65k1zxh1xxsWPFHkZvql+R7Q0+fManW269jFRW9WZ6wivcidz9dbzTVfdyxTDjml0pLrvhfyzDPP4LzzzsPKlSvxyU9+Es899xx27NhRqAhbJofc/6SJuOL0VYAjZTvuUOUZQp7j7FOWXlMhzm6uwQfKc0koAl8dI58LLlbqQiWKXAoF3tHPJomOOj9jGK865T3KcXDixIv4h0f+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7LLLjGkN67Edrgk+2/jOmTMHQRAIx/Tp0/OdqISibj9sgzfffBOzZs1CZ2cnOjs7MWvWLLz11lvaNo2451dffTXGjx+Pjo4OTJkyBQ899JC2/ooVKzBlyhR0dHTggAMOwDXXXJPr/FRwmffy5csT9zUIAjz33HN1nDHw4IMP4pRTTsGoUaMQBAHuuOMOY5si3G/XeRflfi9evBgf+chHMHjwYAwfPhynnXYa1q5da2xXhHverGh6Qf/cc8+hUqng2muvxdNPP40f/OAHuOaaa3DJJZdo2+WxHa4rfLbxBYATTzwRmzdvjo67706/KYMLirL9sA/OOussrFmzBvfeey/uvfderFmzBrNmzTK2q+c9v/XWW3HBBRfg0ksvxerVq/Gxj30MJ510EjZs2EDWX7duHT75yU/iYx/7GFavXo1LLrkEX/3qV3HbbbflNscs5h1i7dq1wr394Ac/WKcZV/HOO+/gwx/+MH76059a1S/K/Xadd4hG3+8VK1bgy1/+MlatWoVly5Zh9+7dmDlzJt555x1lm6Lc86YF64P43ve+x8aPH68sr1QqrKuri33nO9+Jzr333nuss7OTXXPNNfWYooAlS5awzs5Oq7qzZ89mp556aq7zsYXtvItyv5955hkGgK1atSo6t3LlSgaAPffcc8p29b7nRxxxBJs3b55wbtKkSeziiy8m63/jG99gkyZNEs6de+65bPr06bnNkYLrvB944AEGgL355pt1mJ0dALClS5dq6xTlfvOwmXcR7zdjjG3dupUBYCtWrFDWKeI9byY0vUZPobu7W7vrkWk73KJj+fLlGD58OCZMmIC5c+di69atjZ6SFkW53ytXrkRnZyemTZsWnZs+fTo6OzuN86jXPd+1axf++Mc/CvcKAGbOnKmc48qVKxP1TzjhBDz++ON4//367JXtM+8Qhx12GEaOHInjjz8eDzzwQJ7TzARFuN9pULT73d3dDQDad3az3/NGo88J+hdffBE/+clPMG/ePGUd3Xa4YVlRcdJJJ+GWW27B/fffjyuuuAKPPfYYjjvuOPT09DR6akoU5X5v2bIFw4cPT5wfPny4dh71vOfbtm1Db2+v073asmULWX/37t3Ytm1b5nOk4DPvkSNH4rrrrsNtt92G22+/HRMnTsTxxx+PBx98sB5T9kYR7rcPini/GWOYP38+jjrqKG3202a950VBYQX9woULSccR/nj88ceFNps2bcKJJ56Iz3/+8/j7v/974xgu2+HmOW8XnHHGGTj55JMxefJknHLKKbjnnnvw/PPP46677ir0vIF87jfgNndqPNM88rrnOrjeK6o+dT5vuMx74sSJmDt3Lg4//HDMmDEDV199NU4++WR8//vfr8dUU6Eo99sFRbzf559/Pp544gn8+te/NtZtxnteFDjvXlcvuG6Hu2nTJhx77LGYMWMGrrvuOm27PLfDzXMbXwojR47E2LFj8cILL6Tqp5m3H7ad+xNPPIHXXnstUfb66687zSOre05h2LBhaG1tTWjBunvV1dVF1h8wYACGDh2a+Rwp+MybwvTp03HzzTdnPb1MUYT7nRUaeb+/8pWv4M4778SDDz6I/fffX1u3L93zRqCwgt5lO9xXX30Vxx57LKZMmYIlS5agpUVPVOS5HW6e2/hS2L59OzZu3CgIUB808/bDtnOfMWMGuru78eijj+KII44AADzyyCPo7u7GkUceaT1eVvecQltbG6ZMmYJly5bh9NNPj84vW7YMp556KtlmxowZ+P3vfy+cu++++zB16lQMHDgw8zlS8Jk3hdWrV+dyX7NEEe53VmjE/WaM4Stf+QqWLl2K5cuXY/z48cY2femeNwSN8gLMCq+++io76KCD2HHHHcdeeeUVtnnz5ujgMXHiRHb77bdH37/zne+wzs5Odvvtt7Mnn3ySfeELX2AjR45kO3bsqNvcX375ZbZ69Wq2aNEittdee7HVq1ez1atXs507d5Lz3rlzJ/va177GHn74YbZu3Tr2wAMPsBkzZrAPfOADhZ43Y8W434wxduKJJ7JDDz2UrVy5kq1cuZIdcsgh7FOf+pRQp9H3/De/+Q0bOHAgu/7669kzzzzDLrjgArbnnnuy9evXM8YYu/jii9msWbOi+i+99BLbY4892IUXXsieeeYZdv3117OBAwey3/72t7nML6t5/+AHP2BLly5lzz//PHvqqafYxRdfzACw2267ra7z3rlzZ/QMA2BXXnklW716NXv55ZfJeRflfrvOuyj3+0tf+hLr7Oxky5cvF97X7777blSnqPe8WdH0gn7JkiUMAHnwAMCWLFkSfa9UKuyyyy5jXV1drL29nX384x9nTz75ZF3nPnv2bHLeDzzwADnvd999l82cOZPtt99+bODAgWzMmDFs9uzZbMOGDYWeN2PFuN+MMbZ9+3Z29tlns8GDB7PBgwezs88+OxFuVIR7ftVVV7GxY8eytrY2dvjhhwuhR7Nnz2ZHH320UH/58uXssMMOY21tbWzcuHHsZz/7Wa7zU8Fl3t/97nfZgQceyDo6Otg+++zDjjrqKHbXXXfVfc5h2Jl8zJ49m5w3Y8W4367zLsr9Vr2v+fdFUe95s6LcprZEiRIlSpTowyis132JEiVKlChRIj1KQV+iRIkSJUr0YZSCvkSJEiVKlOjDKAV9iRIlSpQo0YdRCvoSJUqUKFGiD6MU9CVKlChRokQfRinoS5QoUaJEiT6MUtCXKFGiRIkSfRiloC9RokSJEiX6MEpBX6JEiRIlSvRhlIK+RIkSJUqU6MP4/3q5S/skR25JAAAAAElFTkSuQmCC\n",
+ "text/plain": [
+ ""
+ ]
+ },
+ "execution_count": 12,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "fig"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "ab5fb353-278d-422d-b190-a4f08d38f6b5",
+ "metadata": {
+ "tags": []
+ },
+ "source": [
+ "## momentum"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "1d785f3a-cf4c-4485-a2fd-cfce97872809",
+ "metadata": {},
+ "source": [
+ "A variation on gradient descent is to add \"momentum\"\n",
+ "to the update. This means that the correct depends\n",
+ "on the past gradients as well as the current one,\n",
+ "via some combination. This has the effect of reducing\n",
+ "the zig-zag effect that we see in our attempt above."
+ ]
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 3 (ipykernel)",
+ "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.13.2"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 5
+}
diff --git a/content/11-machine-learning/ideas.txt b/content/11-machine-learning/ideas.txt
new file mode 100644
index 00000000..09e3df03
--- /dev/null
+++ b/content/11-machine-learning/ideas.txt
@@ -0,0 +1,18 @@
+Packages to try:
+
+ -- keras
+ -- tensorflow
+ -- scikit-learn
+
+Some nice tutorials:
+
+ -- https://github.com/zotroneneis/machine_learning_basics
+
+
+https://elitedatascience.com/keras-tutorial-deep-learning-in-python
+
+
+types of machine learning:
+
+https://towardsdatascience.com/the-mostly-complete-chart-of-neural-networks-explained-3fb6f2367464
+
diff --git a/content/11-machine-learning/keras-clustering.ipynb b/content/11-machine-learning/keras-clustering.ipynb
new file mode 100644
index 00000000..86900705
--- /dev/null
+++ b/content/11-machine-learning/keras-clustering.ipynb
@@ -0,0 +1,807 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "id": "d8726fab-28bc-4600-82b1-83eb9f7abb37",
+ "metadata": {},
+ "source": [
+ "# Clustering"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "935a9130-4606-44d1-a670-b96e997118b1",
+ "metadata": {},
+ "source": [
+ "[Clustering](https://en.wikipedia.org/wiki/Cluster_analysis) seeks to group data into clusters based on their properties and then allow us to predict which cluster a new member belongs."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "id": "5aef60e6-70d3-4bd5-b0e6-7ee4d58b4028",
+ "metadata": {
+ "tags": []
+ },
+ "outputs": [],
+ "source": [
+ "import numpy as np\n",
+ "import matplotlib.pyplot as plt"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "1f841dc4-8484-44af-9ac9-c5bac1caf163",
+ "metadata": {},
+ "source": [
+ "We'll use a dataset generator that is part of [scikit-learn](https://scikit-learn.org/stable/index.html) called [`make_moons`](https://scikit-learn.org/stable/modules/generated/sklearn.datasets.make_moons.html). This generates data that falls into 2 different sets with a shape that looks like half-moons."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "id": "360de666-828d-4fe3-a8cb-ce7243373a64",
+ "metadata": {
+ "tags": []
+ },
+ "outputs": [],
+ "source": [
+ "from sklearn import datasets"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "id": "dcea3bcf-3f35-4133-8a52-064985382b4a",
+ "metadata": {
+ "tags": []
+ },
+ "outputs": [],
+ "source": [
+ "def generate_data():\n",
+ " xvec, val = datasets.make_moons(200, noise=0.2)\n",
+ "\n",
+ " # encode the output to be 2 elements\n",
+ " x = []\n",
+ " v = []\n",
+ " for xv, vv in zip(xvec, val):\n",
+ " x.append(np.array(xv))\n",
+ " v.append(vv)\n",
+ "\n",
+ " return np.array(x), np.array(v)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "id": "0f675629-596c-4e5c-9975-4e57a60bd4d2",
+ "metadata": {
+ "tags": []
+ },
+ "outputs": [],
+ "source": [
+ "x, v = generate_data()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "980e1976-2da3-46a9-89cd-7b61042bc758",
+ "metadata": {},
+ "source": [
+ "Let's look at a point and it's value"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "id": "68b11f44-9f9e-40b8-a6f2-e0cf93d35717",
+ "metadata": {
+ "tags": []
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "x = [0.69873964 0.40237326], value = 0\n"
+ ]
+ }
+ ],
+ "source": [
+ "print(f\"x = {x[0]}, value = {v[0]}\")"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "e0a3a621-f8c8-44ae-84ed-a50425b9766f",
+ "metadata": {},
+ "source": [
+ "Now let's plot the data"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "id": "56cee5e7-415d-4f5f-9aa0-16dee740d754",
+ "metadata": {
+ "tags": []
+ },
+ "outputs": [],
+ "source": [
+ "def plot_data(x, v):\n",
+ " xpt = [q[0] for q in x]\n",
+ " ypt = [q[1] for q in x]\n",
+ "\n",
+ " fig, ax = plt.subplots()\n",
+ " ax.scatter(xpt, ypt, s=40, c=v, cmap=\"viridis\")\n",
+ " ax.set_aspect(\"equal\")\n",
+ " return fig"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "id": "e5789e05-4b8b-45c3-bb38-5f29f0ae6f36",
+ "metadata": {
+ "tags": []
+ },
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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UVFRTPtcf/31GGM6vKZOnZryWJMpkXqLCHfffTclJSXk5OQwefJkPv3005THmkxHjhxh1qxZFBQUUFRUxNy5c6mtrY24z8SJE4+73jfddFPaYk7EypUrOemkk/B4PIwfP56//vWvEcu/8MILjBw5Eo/Hw6hRo3j11VfTFmsyxVPv1atXH3ddPR5PWuPtqrfeeotLL72UwYMHY4zhpZdeirrPxo0bOeecc3C73Zx88smsXr06LbEmU7z13rhx43HX2hhDRUVF2mJOhvvuu49zzz2X/Px8BgwYwPTp09m1a1fU/XrK5ztRPTJ5aWpq4qqrruLmm2+Oa7+pU6dy4MCB1tczzzyTshhTIZF633///fziF79g1apVlJeXk5uby5QpU2hsbExprMk0a9YsduzYwbp163jllVd46623mD9/ftT95s2b1+F633///WmJNxHPPfccP/7xj1m2bBnvv/8+Z511FlOmTOHQoUOdln/nnXeYOXMmc+fOZdu2bUyfPp3p06fz0UcfpT32roi33oSmUG9/Xfft25fWmLuqrq6Os846i5UrV8ZUfu/evVxyySVceOGFfPDBByxatIgbb7yR119/PeWxJlO89W6xa9euDtd7wIABKYsxFTZt2sSCBQt49913WbduHX6/n4svvpi6urqw+/SUz3eXSA/2xBNPSGFhYUxl58yZI5dddlnKY0qHWOsdDAZl0KBB8sADD7Ruq6ysFLfbLc8880yKo0yOjz/+WAB57733Wrf96U9/EmOMfPHFF2H3u+CCC+SWW25JU5RdN27cOFmwYEHrz4FAQAYPHiz33Xdfp+WvvvpqueSSSzpsGz9+vPzgBz9IeazJFG+94/nMZwNA1q5dG7HMHXfcIaeffnqHbddcc41MmTIlxdGlTiz1fvPNNwWQo0ePpi2udDh06JAAsmnTprBlesrnuyt6ZMtLojZu3MiAAQMoLS3l5ptv5vDhw5kOKaX27t1LRUUFkydPbt1WWFjI+PHj2bJlS0Zji9WWLVsoKipi7NixrdsmT56MzWajvLw84r5PP/00/fr144wzzmDp0qXU19enIeL4NTU1sXXr1g7XyWazMXny5LDXacuWLR3KA0yZMiVrrisJ1hugtraWoUOHMmTIEC677DJ27NiRpogzoydc664YPXo0JSUlXHTRRbz99tuZDqfLqqqqACguLg5bprdf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",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "fig = plot_data(x, v)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "26822875-799a-4ceb-8cb2-3e1e0abcaa0c",
+ "metadata": {
+ "tags": []
+ },
+ "source": [
+ "We want to partition this domain into 2 regions, such that when we come in with a new point, we know which group it belongs to."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "2b2779ae-6435-4112-a95b-ddd72e75f731",
+ "metadata": {},
+ "source": [
+ "First we setup and train our network"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 8,
+ "id": "83d69d84-10a3-47e4-a91c-b9963f60ea86",
+ "metadata": {
+ "tags": []
+ },
+ "outputs": [],
+ "source": [
+ "from keras.models import Sequential\n",
+ "from keras.layers import Dense, Dropout, Activation, Input\n",
+ "from keras.optimizers import RMSprop"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 9,
+ "id": "ecb97643-ec86-48cd-a510-f782a2adacd5",
+ "metadata": {
+ "tags": []
+ },
+ "outputs": [],
+ "source": [
+ "model = Sequential()\n",
+ "model.add(Input(shape=(2,)))\n",
+ "model.add(Dense(50, activation=\"relu\"))\n",
+ "model.add(Dense(20, activation=\"relu\"))\n",
+ "model.add(Dense(1, activation=\"sigmoid\"))"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 10,
+ "id": "097b8c96-7342-4ab6-8e5a-54da12af7aec",
+ "metadata": {
+ "tags": []
+ },
+ "outputs": [],
+ "source": [
+ "rms = RMSprop()\n",
+ "model.compile(loss='binary_crossentropy',\n",
+ " optimizer=rms, metrics=['accuracy'])"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 11,
+ "id": "fb0c9a41-844f-4352-ad83-cff6de8a1afd",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "