Mathematics Stack Exchange is a question and answer site for people studying math at any level and professionals in related fields. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

What are the math subjects that a person with high-school math background needs to learn to reach the point of learning and understanding different techniques of mathematical optimization? It would be helpful if the subjects are listed in the order that is most convenient to follow.

share|cite|improve this question
up vote 3 down vote accepted

I don't think there is a one size fits all answer, it depends on what subfield of optimisation you might want to learn about, but, based on my personal experience, here is somewhere that I think you could start.

This is taken from the preface of Convex Optimisation by Boyd and Vandenberghe which, I think, has become a very popular text on the subject.

"The only background required of the reader is a good knowledge of advanced calculus and linear algebra. If the reader has seen basic mathematical analysis (e.g., norms, convergence, elementary topology), and basic probability theory, he or she should be able to follow every argument and discussion in the book."

In other words, pretty much what Glougloubarbaki says, a bit of real analysis, linear algebra and differential calculus. Most of the material is covered in this course and this one. What is missing is some of multivariable calculus (I couldn't think of a free, on-line, complete with exercises/solutions course for this - but there exists a myriad of textbooks on the subject). Also whenever you get to optimisation you might want to check out this course and this other one - they're great.

share|cite|improve this answer

It depends on a branch of optimization with which you intend to work.

For linear and integer programming you have to study Linear algebra (I think it is first of all), for stochastic programming - Probability theory and so on.

A good classification of branches is given in, Chapter "Major subfields".

share|cite|improve this answer

It depends whether you want to study optimization (academically, as a student or as a researcher), or use optimization techniques to solve practical problems. Most of the answers above assume the first option. I'll address the second one, since it's more common.

It's mostly a matter of knowing what tools exist and which problems they can be applied to successfully. To do this, you need some mathematical background, but not a great deal. The specifications of the tools should tell you when and where they can be used. In typical cases, you will be using commercial software packages whose internals are entirely hidden from you, so you can't even see what they're doing, still less understand them.

Using an optimization package as a "black box" with no understanding is somewhat risky, and your results might be complete rubbish if you're unlucky. But to exercise caution and apply common-sense sanity checks, you don't need to be an expert in optimization theory. Most users of optimization are certainly not experts in the underlying theory.

share|cite|improve this answer
Bubba: I meant to use it :-) – Ashwin Nanjappa Mar 28 '13 at 13:09
  • Basic analysis and topology (notably the notions of compact sets, continuity, limits and analysis of a function of one real variable)
  • Linear algebra
  • Differential calculus
  • (a bit of) convex analysis
share|cite|improve this answer
note that those topics take typically a year to cover for a student majoring in math – Glougloubarbaki Mar 28 '13 at 10:46
I believe this answer is very incomplete. Graphs are an important part of optimization and so is Mathematical Programming (which as a whole is much, much more than mathematical analysis). – user69867 Mar 28 '13 at 10:53

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

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