Matthew L. Wright
Assistant Professor, St. Olaf College

# Modern Computational Math

## Math 242 ⋅ Spring 2019

Prof. Wright's office hours in RMS 405: Mon. 10:30–11:30, Tues. 1:30–2:30, Wed. 8:00–9:00, Thurs 10:15–11:00, Fri. 2:00–3:00, whenever the door is open, or by appointment

Help sessions: Wednesdays, 7–8pm, in RNS 204

Friday
February 8
Introduction; Mathematica basics
Do the following before next class:
Monday
February 11
Computing the digits of $$\pi$$
Do the following before next class:
• Start the $$\pi$$ Project. Implement two of the methods for approximating digits of $$\pi$$.
• For an explanation of why the sum of reciprocals of squares converges to $$\pi^2/6$$, watch this video. For an explanation of why the product formula from last time converges to $$\pi$$, watch this video.
Wednesday
February 13
Fibonacci numbers
Do the following before next class:
Friday
February 15
Fibonacci identities
Do the following before next class:
• Verify the identity $$F_n^2 - F_{n+r}F_{n-r} = (-1)^{n-r}F_r^2$$ for several values of $$r$$ and lots of values of $$n$$. Bring observations and questions to class on Monday.
Monday
February 18
Pell numbers
Do the following before next class:
• Catalan's Identity says $$F_n^2 - F_{n+r}F_{n-r} = (-1)^{n-r}F_r^2$$. Verify this for at least three values of $$r > 2$$. For each value of $$r$$, check at least 100 values of $$n$$. Submit a Mathematica notebook containing your verifications to Assignment 2 on Moodle. Please put your name at the top of your notebook. (Note that this is an Assignment, not a Project.)
• Take a look at this paper, which gives various identities for the Pell numbers. Try to generate several other polynomial identities similar to those described in Proposition 1. For example, can you directly conjecture and verify the identity for $$n=11$$?
• Take a look at the Pell Project, which is due Friday.
Wednesday
February 20
Pell numbers
Do the following before next class:
Friday
February 22
Iterated functions: Collatz conjecture
Do the following before next class:
• Continue investigating sequences that arise when iterating the Collatz function or other functions.
• Submit at least three observations and three questions, arising from your investigation, to the Collatz Observations and Questions quiz on Moodle.
Monday
February 25
Iterated functions: logistic map and chaos
Do the following before next class:
Wednesday
February 27
Iterated functions and fractals
Do the following before next class:
Friday
March 1
Mean-median map
Do the following before next class:
• Continue computational investigation of the mean-median map. What do you observe? What do you wonder?
Monday
March 4
Mean-median map
Do the following before next class:
• Finish modifying the function limitSeq to solve the problem encountered in class.
• Work on the Mean-Median Project, which is due Friday.
Wednesday
March 6
Primes
Do the following before next class:
• Note that there is no Wednesday evening help session this week. If you have questions, talk with Prof. Wright.
• Finish the Mean-Median Project and submit your notebook to Moodle.
Friday
March 8
Primes sieves
Do the following before next class:
Monday
March 11
Prime sieves
Do the following before next class:
• Finish implementing the Sieve of Sundaram.
• Begin the Primes Project, due Friday.
Wednesday
March 13
Prime powers
Do the following before next class:
• Finish the Primes Project and submit your notebook to Moodle.
• Watch this video introduction to RSA encryption.
• Choose two (secret) prime numbers of at least 30 digits. (Use your fermatPrime function to help with this!) Save these in a place where you can access them for the next week.
Friday
March 15
Mathematics of RSA cryptography
Do the following before next class:
• Complete the Mathematica notebook from today's class. Practice encrypting and decrypting numbers.
• Post your public key to the RSA Forum on Moodle. Next week, other people will use your public key to send you encrypted messages.
Monday
March 18
Encrypting text with RSA cryptography
Do the following before next class:
• Finish implementing the functions necessary to encrypt and decrypt text.
• Post your public key to the RSA Forum on Moodle, if you haven't done so already.
• Send and receive secure messages using the RSA Forum. Use your Mathematica code to encrypt and decrypt the messages.
• Work on the RSA Project.
Wednesday
March 20
Counting primes
Do the following before next class:
Friday
March 22
Prime patterns and the Riemann zeta function
Have a great spring break! No class March 25 – 29.
Do the following before next class:
• Complete the four exercises in the Primes and the Zeta Function notebook from class on March 22. Make sure your name is in your notebook, and upload your notebook to Moodle for the Primes and Zeta Assignment.
• Think about what topic/questions you would like to investigate for the Mid-Semester Project. Look at some of the papers linked from the project document. Bring some ideas to class on Monday after break.
Monday
April 1
Introduction to Python
Do the following before next class:
• Decide what topic and questions you would like to investigate for the Mid-Semester Project. Also decide if you want to work with a partner.
• Finish at least the first four exercises in the Intro to Python notebook.
Wednesday
April 3
Yahtzee in Mathematica and Python
Do the following before next class:
Friday
April 5
Yahtzee in Python, and plotting with Matplotlib
Do the following before next class:
• Finish implementing the Yahtzee simulation in Python. Practice drawing a few plots with Matplotlib.
• Finish your Mid-Semester Project. If you have questions, email Prof. Wright.
Monday
April 8
Trouble simulation
Do the following before next class:
Wednesday
April 10
One-Dimensional Random Walks
Do the following before next class:
• Finish investigating the three questions in the 1D random walks notebook. Bring two of your own questions about random walks to class on Friday.
• Finish the Trouble Project, due Friday.
Friday
April 12
Two-Dimensional Random walks
Do the following before next class:
• Finish investigating the first question in the 2D random walks notebook — when (or how often) does the 2D random walk return to the origin?
Monday
April 15
Random Walks
Do the following before next class:
Wednesday
April 17
Percolation
Do the following before next class:
• Finish the Random Walk Project, due Friday.
• Plan an algorithm to determines whether percolation occurs, as we started discussing in class. You don't need to implement your algorithm in code. Instead, make a plan on paper, and bring it to class on Friday.
Friday
April 19
Percolation
Do the following before next class:
• Finish implementing the depth-first search algorithm to determine whether percolation occurs.
• Investigate how the probability of percolation depends on the parameters $$p$$ and $$n$$.
Monday
April 22
Finish percolation; begin Markov chains
Do the following before next class:
• Work on the Percolation Project, due Friday.
• Work through the Intro Markov Chains notebook. If you have questions, ask! The professor will assume you are familiar with the content of this notebook when class begins on Wednesday.
Wednesday
April 24
Markov chain inverse problem
Do the following before next class:
Friday
April 26
Markov Chain Monte Carlo (MCMC)
Do the following before next class:
Monday
April 29
MCMC function minimization: simulated annealing
Do the following before next class:
Wednesday
May 1
Combinatorial optimization via simulated annealing
Do the following before next class:
Friday
May 3
Magic squares
Do the following before next class:
• Finish the Magic Squares Assignment. Your solution is due Monday (Moodle link).
• Think about a topic (and optionally a partner) for the Final Project.
Monday
May 6
Traveling salesperson problem
Do the following before next class:
• Work on the Traveling Salesperson Project (due Friday).
• Think about a topic (and optionally a partner) for the Final Project.
Wednesday
May 8
Traveling salesperson problem
Do the following before next class:
• Finish the Traveling Salesperson Project.
• Decide on a topic (and optionally a partner) for the Final Project.
Friday
May 10
Introduction to computational geometry
Final projects
Do the following before next class:
Monday
May 13
Introduction to computational algebra
Final projects
Do the following before next class:
• Work on your Final Project.
• Prepare 1–2 paragraphs describing what you have accomplished on your project, what remains to be done, and what questions you have.
Wednesday
May 15
Introduction to computational graph theory
Final projects
Do the following before the final exam period.