1D Quantum Mechanics:  Scattering (buy it in the app store) is an iOS app designed to help physics instructors and students bring to life the material found in a typical university-level introductory quantum mechanics course.

Main screen:  Upper plot shows $$V(x)$$, $$\left|\psi(x)\right|^2$$, and the real and imaginary parts of $$\psi(x)$$ vs $$x$$.  Lower plot shows $$T(E)$$ vs $$E$$.  Palette at right selects potentials.

There are two main screens.  In the first, you can select among a variety of potentials from the palette on the right.

The top plot displays the potential $$V(x)$$ and the wavefunction $$\psi(x)$$.  The red trace is the real part, green is the imaginary part, and yellow is the magnitude-squared.  The plot units are energy (eV) vs. distance (angstroms).  The white horizontal dashed line indicates the total mechanical energy of the electron, and the real and imaginary parts of $$\psi$$ are plotted using the line as an axis (i.e., $$\psi=0$$ where it crosses the line).

The bottom plot displays the transmission coefficient $$T(E)$$.  The units are probability vs. energy (eV).  The vertical white dashed line indicates the total mechanical energy of the electron (i.e., it shows the same value as the dashed line in the upper plot).

Things to try:

1. Use a single finger to pan up and down in the top screen.
2. Use a single finger to pan right and left in the bottom screen.
3. Select a different potential by tapping a different trace in the right palette.
4. Pinch in the top and bottom plots.
5. Use two fingers to pan the top and bottom plots (vertically and horizontally).
6. Single-tap in either plot.  Do it again.
7. Double-tap in either plot.
8. Swipe in the potential palette to reveal more potentials.

The math:

The app starts with the assumption that the time-independent wavefunction at $$-\infty$$ consists of a superposition of two momentum eigenstates, an incident wave $$A \exp(i p x / \hbar)$$, and a reflected wave  $$B \exp(-i p x / \hbar)$$ .  Thus the total wavefunction at $$-\infty$$ is $$\psi_L(x)=Ae^{+ipx/\hbar}+Be^{-ipx/\hbar}.$$  The app also assumes that, at $$+\infty$$, the wavefunction only has a component traveling in the positive $$x$$ direction $$\psi_R(x)=Fe^{+ipx/\hbar}.$$

The app then takes the time-independent Schrodinger equation $$\left(\frac{d^2}{dx^2}+\frac{2m}{\hbar^2}(E-V(x))\right)\psi(x) = 0,$$ where $$E=p^2/2m$$ and $$V(x)$$ is defined numerically from the palette, and numerically integrates it over the displayed region in real time, calculating the wavefuction.  It solves numerically for $$A$$, $$B$$, and $$F$$, and calculates the transmission coefficient $$T$$ as $$T=\left|\frac{ F }{ A } \right|^2.$$