Source: https://web.stanford.edu/class/math220b/handouts/heateqn.pdf