NOTE: In all cases, what you turn in must be entirely your own work. You may of course consult the internet or chatbots on basic technical questions like "How do you reverse a numpy array?", but not on the project problem itself.
For those who'd like to tackle a really interesting application of numerical methods:
Shazam is a phone app that can identify recordings of music captured by phone microphone even in an environment where there is ambient noise. The principles of its operation are described by its inventor in this paper. Try to implement a very modest version of this, and apply it to recognizing tracks from a set at least 2 or 3 recordings using short excerpts of them.
CAUTION: When I first assigned this project some years ago, there was nothing about it on the internet. Now, there is a lot, and complete solutions in Python can be found. Therefore, if you choose this option you must agree and affirm that you have not done, and will not do, any internet searches whatsoever on the topic, nor consult any other resource (e.g. chatbot) on the topic. What I want to see is your own effort to tackle this problem on your own. I want to see your thinking process. You do not need to get to the point of complete success in order to get an A+ on this project option.
For those with a preference for a theoretical problem:
In reading answers to this homework question, I noticed that for all of the examples tested, the convergence seemed faster by one order than guaranteed by Theorem 4.17. Is a sharper theorem than Thm. 4.17 possible? Or are there functions that attain the bound of that theorem? Explore and investigate this.
For those who may have significant time pressures outside of this class:
Predict the equilibrium shape and tensions of the toy suspension bridge model that will be derived in class Thursday, Nov 13. Use Newton's method, or a quasi-Newton method to solve the large system of equilibrium equations. Because finding a good initial guess directly may be difficult or impossible, you may consider writing an outer loop ("homotopy") that gradually morphs the system from an instance with a special choice of the parameters that make it easy to compute the solution by hand. Here are the masses and here are the endpoint positions and segment lengths.