IN-HOUSE UPSILON LAB PROJECT
Manager: Joshua Wong
Learning Objectives: Programming (Python), Neural Networks
Electrons are all over the place, and they’re complicated! If only we could somehow model their wavefunctions… but with so many in a given molecule, that’s practically impossible! I wonder, is there an easier way to model a complicated wavefunction…?
Yes! We can use machine learning to do this. But let’s not jump right into the more complicated molecules. We ought to start with something simpler, something we can solve analytically. How about the ground state of an electron in one dimension? Sounds simple enough.
Given some potential function, we can use the time-independent Schrödinger’s equation to solve for the wavefunction of this sort of electron. To get a neural network to do the same thing, we can slice up the potential function and take it as a distribution–each data point will contain two values: the x-position and the corresponding potential value. By feeding this information into a neural network (which we will build in Python), we can train the network to guess the ground state wavefunction, given any potential function V(x). The network has never heard of Schrödinger’s equation, but by training it with thousands of potential functions, it can reach astoundingly high accuracy.
Eventually, this sort of network can be applied to more complicated systems, which may be at different energy levels, exist in three dimensions, contain multiple electrons, etc.