Complex scientific formula for nuclear magnetic resonance
I would consider the practice ok in this case.


Your variable try appear to be roughly the "ASCII" equivalent of the ones used in the equation.
You cite the paper where you got the equations from. (This is probably the most important thing to do) This allows the programmer to understand the context.


Remember readability is subjective, look at something like APL for example and you will see that APL strives for code most closely aligned to math. The creator of this language purposely designed the language to be effective at representing math operations (in particular, matrix manipulation) and it takes a vastly different approach from Python.

One interesting thought experimenet: If we grew up and learned that the word "print" was simply "p", "print" would likely be considered not readable and we would replace each case with "p". However, in our world, we consider the opposite to be true in most cases.

For me it is much easier to read dx instead of something like change_in_x because I have learned to appreciate the former.

The only thing I would consider changing is getting rid of pi_squared and just writting it out explicitly (unless there is some worthwhile performance cost in doing so).