I'm coming from a programmers background, trying to learn more about physics. Immediately, I was encountered by math, but unfortunately unable to read it.

Is there a good guide available for reading mathematical notation? I know symbols like exponents, square roots, factorials, but I'm easily confused by things like sub-notation. For example, I have no idea what this is:


I can easily express values using programmatic notation, ie pseudocode:

milesPerHour = 60
distanceInFeet = 100
feetPerMillisecond = ((milesPerHour * 5280) / (1e3 * 60 * 60))
durationInMilliseconds = 100 / feetPerMillisecond

However, I have no clue even where to begin when trying to express the same logic in mathematical notation.

How can I improve my ability to read and interpret mathematical formulas in notation?

  • $\begingroup$ It might mean a lot of things. It can mean that you have an enumerable set of functions, let's say, $f_1, f_2, f_3,$etc, but it also can mean something else (although they are related), like if you're considering $f^n(x)=x^n$, for every $n\in\mathbb{N}$, and then taking the particular case of $n=3$. It could also mean that you are considering a function $f_{\delta}(x)$ that has some particular behavior when $\delta = 3$. There's no general case for this, it depends on the context of the formula you're working with. $\endgroup$ – Marra Feb 13 '13 at 23:34
  • $\begingroup$ @TKKocheran: Welcome the MSE! In what context/setting did you encounter/read this in as it could be a lot of different things? Regards $\endgroup$ – Amzoti Feb 13 '13 at 23:34
  • $\begingroup$ Regardless of where I came across it, what is the plain meaning? I'm seeking to be able to understand most mathematical notation. I updated the question. $\endgroup$ – Naftuli Kay Feb 13 '13 at 23:36
  • 4
    $\begingroup$ the index is just an index suchas any other index. Compared to programming (for example java, c/c++, c# etc), $f_n$ would be f[n] $\endgroup$ – CBenni Feb 13 '13 at 23:37
  • 1
    $\begingroup$ @TKKocheran How to Prove It: A Structured Approach has all the answers you need. $\endgroup$ – Git Gud Feb 13 '13 at 23:46

The problem is that you cannot learn mathematical notation as though it were a programming language with a single, well-defined, fixed syntax where particular grammatical constructs always have the same meaning. It's much more like a natural language: a collection of rules and conventions, some inviolate, others less so, with lots of idioms some of which are mutually incompatible, and lots of variation between "dialects" (by which I mean, conventions within various fields). That's why you get the advice in the other answers: There is no reference manual and no formal specification. Just keep reading and writing the language and allow yourself to absorb it through practice. Here, let me give some examples to convince you.

You ask what $f_n$ means devoid of context. Well, sometimes it is the $n$th function in a sequence of functions $f_1,f_2,\ldots$. Sometimes it is the $n$th entry of an $m$-dimensional vector $\mathbf f=(f_1,f_2,\ldots,f_m)$. Sometimes it's the normal component of a force, as opposed to the tangential component which might be called $f_t$.

You might think that at least $f^n$ will always be $f$ to the $n$th power, but that's not always true either. Sometimes we put an index at the top because we're already using indices at the bottom to mean something else — so $f_i^n$ might be the value at the $i$th grid cell at time $n$. Usually $\sin^nx$ means $(\sin x)^n$ but usually $\log^n x$ means $\underbrace{\log\log\cdots\log}_{\text{$n$ times}}\, x$.

Why this apparently miserable state of affairs? Because mathematical notation is actually an extremely efficient method for communicating ideas between people, and people are, with a little bit of practice, quite adept at determining with high accuracy the intended meaning of informal, ad-hoc, underspecified, potentially ambiguous signals. When doing mathematics, we don't worry about shaping our thoughts to fit the rigid syntax of our language, like we do when programming. Instead, we freely shape the syntax to fit our thoughts. If that means it is impossible to read mathematics without knowing what it means, so be it; it only needs to be easy to parse by the intended reader, who is usually a mathematically literate human being. And said reader surely knows that the context in which $f_n$ appears is about, say, sequences of functions, in which case $f_n$ almost certainly means the $n$th function in the sequence.

See also the fourth section ("Mathematical syntax") of Jeremy Kun's essay "Why there is no Hitchhiker’s Guide to Mathematics for Programmers".

(Re. CBenni's comment: Suppose someone asks "What is the meaning of f[n] in programming?" If you're programming in the C family, it means the nth element of the array f. If you're programming in Haskell or ML, it means the function f applied to the list [n], whose only element is n. If you're programming in Mathematica, it means the function f applied to n. The meaning of $f_n$ in mathematics is similar.)


I agree with Gustavo. There is no magical insight I can give you. By being exposed to the math and understanding the concepts, you understand the symbology. symbolism? whatever. Learn math, thats all I can say to you. Its just like any language. We read math by allowing the symbols to conjure up concepts. Each symbol represents a concept. And through conceptual understanding does the vocabulary make sense, just like any word in English. Like a lot of language students, math students make a similar fallacy... the belief that you need to "translate" into English. A lot is lost when you do that. Its better to think in terms of the language and not translate into the language you are more familiar with.

Programmers are particularly bad at math. Programmers think to linearly. Its a process for them. Whereas a mathematical expression is an entire concept on whole and cannot necessarily be written in a line of code. Coders also rely heavily on numeric values and get rounded and result in compounded errors; instead of the mathematician that manipulates abstract symbols for exact results.

  • 2
    $\begingroup$ The ratio of the offensive nature of your bit about programmers is proportional to its correctness ;) $\endgroup$ – Naftuli Kay Feb 14 '13 at 0:44
  • $\begingroup$ I wasnt ranting against programmers. I was trying to elaborate on a distinction in mindset. As a mathematician, though, I do get resentful when Im associated with programmers or programming, but that is a different issue. $\endgroup$ – CogitoErgoCogitoSum Feb 14 '13 at 1:15
  • $\begingroup$ I won't argue about programmers being bad at math, but I think the "particularly" is totally unwarranted ;). We're better than most, but we are certainly not as good as several other engineers, physicists, and mathematicians. $\endgroup$ – mormegil Nov 6 '14 at 0:52

I guess the most natural anwer to "How can I improve my ability to read and interpret mathematical formulas in notation?" is: through practice. If you're trying to read physics, you're probably familiar with Calculus. I would advise then that you do a Real Analysis course, only to get used to these notations, to mathematical logic and for the fun of it :)


Coming from a programming background, mathematical notation can be troublesome - especially when dealing with indexing and sets in general.

Consider the group $G$ generated by two elements $x$ and $y$ where $x^2=y^2=1$.

This is an infinite group, but you may not have picked up on that just by looking at it. In other words, you can use generators to describe groups simply, but you cannot rely on a finite set of generators to make a finite group.

Number theory is rife with examples of deceptively indexed sums and products; consider convolutions, which require summing over all divisors of $n$. Now, this is a simple concept to explain, but try putting this into a closed form (indexed by some $i$). You will find you need more than 1 sum (nested for loops). Similarly, taking products over all $p$ prime is easy to explain, but programming this requires knowing which $p$ are actually prime.

Finally, some mathematical notation is just plain horrible. The Legendre symbol comes to mind - though I have to admit, I don't really have a better suggestion.

My best advice to you is to embrace as much of mathematical convention as possible - mathematics books do tend to use certain letters and symbols to describe similar things ($\phi$ is favored in intro algebra for homomorphisms, so when you see it out of context, you think "homomorphism"). Also, remember that when dealing with sets that are not explicitly given, strange things can happen - the set could be empty, the set could be infinite, and in fact the set could be uncountably infinite - think about writing a program that prints "all real numbers from 0 to 1."


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.