I have a problem: I learned about a lot of the applications of mathematics from academics. Neither they nor I have had much contact with the "real world" to go and see for ourselves how mathematics are used today (rather than, say, in the pre-computer age).

So if there are non-academics out there reading MO, I would very much like to hear from them about how their use of mathematical tools may or may not differ from the academic training they received. I don't expect we'll get a very representative sample of math-users on MO, but that's quite all right, anecdotal evidence is all I'm after.

Precision: I want to read about the tools being used rather than, say, an underlying mathematical motivation (which is another legitimate role of mathematics, but not really part of my question). So for instance, you may say that Google's PageRank algorithm was motivated by the theory of Markov chains, but (from what I can tell), I would not say it uses Markov chains.

  • $\begingroup$ Yes, I'd like to see list of desired knowledge for applied mathematician! $\endgroup$ – Nikita Kalinin Sep 1 '10 at 22:01
  • $\begingroup$ @Nikita: This isn't quite the spirit of my question. My impression is that there are many ways in which one can apply mathematics, so each person should have their own list. $\endgroup$ – Thierry Zell Sep 2 '10 at 15:47

I'm not quite sure how to answer this but I'll take a stab anyway.

Once I started working as a mathematician, I found that my grasp of probability and discrete mathematics was very weak (now it is at least adequate). It is quite rare for me to go through the details of writing a proof; instead, I code up an idea in MATLAB (which I also learned outside of academia). Once it works, then I usually have what amounts to a proof embedded in the logical structure of code. Because my initial background was not ideal, the things that I've learned professionally have tended to have direct applications to my work.

But this has still been an esoteric bag of tricks, for which I will supply a few examples from the first five years or so of my career (it has been another five years since).

One of the first things I did was to give myself a crash course (now forgotten) in algorithms, crypto and complexity theory. I learned Markov processes and queueing theory to model coarse-grained computer network traffic, and martingales to profile its behavior. I learned the rudiments of graph theory, combinatorics and information theory to develop data structures and work with statistical symmetries in finite strings. I learned about toric varieties and briefly revived my acquaintance with index theory to understand Euler-Maclaurin formulae for polytopes, which were of theoretical import for precisely enumerating/sampling from those same statistical symmetries.

The overarching theme has always been to either develop methods of my own for tackling specific problems determined by needs external to my own narrow interests or to identify if and how someone else's constructions work, as well as to find areas for improvement. In both cases the goal has not been detailed proofs but either code or an argument for doing something in a particular way.

I will say that my formal education has been of comparatively little use. The few good techniques and working habits I've developed have come from my professional work and not from school.


My work draws on various bodies of mathematics. Here's a brief description (by no means exhaustive) of how I use math in my work:

  • Mathematical programming/optimization: Optimization is used for anything from reconciling actual data to a model's (regression), estimating unknown parameters in a system, to finding the best inputs that will extremize some functional in a dynamic system. The applications are endless. When people think mathematical programming, they think Linear Programming. But convex nonlinear programming is actually very well-established. In fact, large problems in nonconvex optimization are routinely solved (although modeling a nonconvex system can be quite an art).
  • Real/functional analysis: useful for understanding optimization algorithms. An understanding of convex functions and sets is crucial -- they lead to global solutions (with guarantees) without solving an NP-hard problem, so we exploit convexity properties whenever possible. (Lipschitz) continuity is another important idea, subgradients etc. are important concepts in nonsmooth optimization. Real analysis is not applied directly, but a good understanding of it is required for reading convergence proofs or descriptions of optimization algorithms.
  • Computational Geometry: ideas like convex hulls, Voronoi diagrams, etc. are useful in optimization. I use them to partition a problem space into convex regions, or to parametrize a space. The region bounded by convex polytopes can be represented by a set of inequality constraints that can be enforced in an optimization problem. Discrete optimization is used to optimally switch between these regions.
  • ODE/DAE theory: used for modeling dynamic systems. In particular, understanding the notion of index in DAEs can help one develop models that are amenable to reliable numerical solution.
  • Calculus. Differential calculus is used everywhere (e.g. model sensitivity analysis, automatic differentiation, postoptimality analysis)
  • Statistics: projection methods like the Karhunen-Loewe transform (related to SVD) are used to reduce the dimensionality of large models constructed from data. They're also the only way to handled correlated/collinear data (in practice, most large datasets in the real world are correlated. The assumption of factor independence built into standard regression techniques often does not hold, so methods like multiple linear regression often have to be modified for instance into principal components regression in order for them to be usable on real world large datasets). Also, tools like time-series analysis are used to construct time series models from data.
  • Linear algebra: used almost everywhere. They're the basic building blocks for working with nonlinear systems. In particular, efficient numerical solution of sparse structured matrices is crucial to the efficiency of large-scale nonlinear optimization algorithms (the bottleneck is often in the linear algebra solvers, not in the optimization algorithm itself). Tools like SVD are frequently used.
  • Numerical methods: used everywhere. Understanding concepts like numerical conditioning is crucial; when modeling, one wants to end up with a system with a Jacobian that is well-conditioned with respect to inversion.
  • Misc: Diophantine equations are used to derive certain control laws. Laplace transforms are used for modeling linear-time-invariant systems because they allow differential equations to be manipulated as algebraic ones. Algebraic Riccati equations are solved in the derivation of the Kalman gain. Fixed-point iteration is used to converge decomposed models.

When I was in grad school, numerical math essentially meant large-scale linear algebra and problems which were reducible to linear algebra (primarily PDEs.) When I started working in biostatistics, I was surprised how little use I had for linear algebra beyond basic operations on small matrices. What I did have a need for was random number generation, optimization, and numerical integration.


I use Octave and Matlab to code algorithms to quickly check particular things out. Sometimes, that involves simplifying things. See for example, my answer to a question which misuses the word "permutation" on this site, when what is really meant is a fairly simple problem.

Simplifying the complex sounding questions by looking at all of the aspects of it is a mathematical trait and habit I've been trained in, especially by mathematics and mathematicians. Formal education can also mislead you into applying the tools you have at hand rather than the best tool for the job. Just because you've got a chainsaw doesn't mean that you have to or even can use it to solve the problem that needs a delicate chisel or gouge.

I also like to use command line tools such as "sed" and "awk" on large columnar text data files, usually with the "bash" shell in unix or linux.


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.