All papers were created David Moore unless otherwise stated.
This page is meant exclusively for programs/projects/papers which are accompanied by formal, readable .pdfs. It is not a comprehensive list of all projects, and many projects of mine with Organized explanation-filled Mathematica programs or code snippets are not listed on this page. Most of the rest are on the programs page. I have tried to include all the pretty images on this page, with a bit of exposition.
The modes of the simple wave equation (that of a vibrating string with high tension and small displacement) are calculated numerically, given an arbitrary function describing the density of the string along its length. Normal modes are calculated using the finite element/Galerkin method. For the following image, the red dashed line represents the wave speed along the rope, and the various other lines represent the shapes of various vibrational modes of the string. The higher the curvature, the higher the frequency.
The neat part of this paper is that it can approximate any arbitrary wave pulse in terms of sums of the normal modes. To do this it inverts a large matrix to find the best possible least-squares approximation to the wave pulse in terms of calculated normal modes. Once the wave pulse is fitted, one gets a function which should approximate the wave equation solution, on an infinite time domain.
The following images link to animated .gifs
I attended the 2013 Wolfram Science Summer School in Boston and completed and presented a research project based around investigating the properties of a cellular automata "Wolfram rule 37R". The rule, with random initial conditions in a finite area and completely homogeneous conditions outside of that region, has very interesting properties. A standard run looks something like this, where time runs vertically (up to down) and space is horizontal.
One can separate the simulation into separate components, of periodic backgrounds and repeating/translating structures:
Given some initial conditions, one can use the boundaries of the structure to give a first estimate of the structure period and v:
I wrote more complicated period detection and velocity finding code to find thousands of unique repeating structures:
Once the structures had been identified and stored in a fast and efficient lookup table, I could start exploring the space of collisions between particles:
Unfortunately, I have only taken small steps to apply these tools in investigating collisions in detail.
This is a pretty straightforward paper presenting a Mathematica program to generate the Legendre polynomials using a Gram-Schmidt orthonormalization process. It also has some basic background information on the Gram-Schmidt process, and proves that the Gram-Schmidt process does in fact lead to an orthogonal set of vectors.