What is a real world application of polynomial factoring?

If you model some phenomenon with a polynomial, it's often of interest to determine when the polynomial evaluates to zero. One of the tools used in deciding when this happens is factoring.

For example, simple trajectory can be modeled with a quadratic function. If you think of time as the input and height as the output, then the positive time for which the polynomial evaluates to zero is precisely the time when the object hits the ground.


For polynomials with integer coefficients the question is roughly the same as "what are the practical applications of algebraic number theory". The usual answers are coding theory and cryptography where factorization (and related operations such as testing whether a polynomial can be factorized) is part of the basic infrastructure from which systems are built or broken. Coding is necessary for digital communication (including telephone, video and satellites) and cryptography has become a basic feature of everyday computer use and commerce.

For polynomials with real coefficients there is partial fraction expansion used in calculus to compute integrals.

For polynomials with complex numbers as coefficients the factorization is into linear factors so that factoring is practically the same as numerical root finding (and this is in part true for real numbers as well). Problems in engineering where the location of complex roots of a polynomial determines the behavior of the system are common. For example, stability or instability can be decided by whether all the roots are inside the unit circle, or have positive real part, or other location-based criteria. Oscillations might be periodic if roots are $n$'th roots of $1$ for some $n$, or quasiperiodic behavior if roots are on the unit circle but not all at roots of $1$. A system governed by a partial differential equation would show diffusion (like heat) or wave-like behavior based on the factorization of an associated "differential operator", which is essentially a polynomial.

In general, many phenomena are decomposable into components, pieces or subsystems in a way that (when the systems are modeled mathematically) appears as a multiplicative decomposition of polynomials, with one factor per subsystem.


(This is a very long comment, not a real answer)

When people (including my students) ask me questions like this my internal fuses blow out, I usually reply with a very cynical tone something along the following lines:

This is useless. Everything that you study here is completely useless to you later on in life, if you prefer not to study this you can go to a college, or change profession. This university wants you to enrich you with a broader knowledge, either take it or leave it.

Of course, I am lying. Everything that you study can come into use sometimes, often in unexpected places. It is possible that one day number theory will save your life. In the meantime you can just view your studying as a way of learning to do things abstractly.

Why is that important? Problems are often similar, though one needs to climb one or more level of abstraction to see that.

For example, if I asked you to take out 3 oranges from a pile of 10 oranges. Would this be any different if those were apples? rocks? sheep? bullets? No. It would probably be the same. This level of abstraction is very simple. True.

On the other hand, asking you to find the best route to get from one class to another taking into account the weather, the possible amount of people walking between classes as well, and so on.

This problem may seem very different than asking you to buy food for a week with optimal budget (you don't want to spend all your money on groceries, right?), taking into account the weather and how you are likely to spend the following week.

In reality they are different problems, and one would likely to employ different parts of the brain to solve a spatial reasoning problem and an arithmetical problem about money.

Mathematically speaking one could represent them both as a complicated weighted-graph; probability and statistics; fuzzy logic; multivariable calculus; and perhaps other fields of mathematics.

This is a form of abstraction that people are not usually able to do "just like that". Furthermore, even if you do find a general solution, applying it to each problem is again not a trivial matter and is often complicated just as the abstraction part.

Finally, we reach to the point of my babbling above. Mathematics is a wonderful and abstract tool. If you study it, your ability to make the connections between seemingly unrelated problems is likely to get better, your ability to solve the abstract problems is likely to get better, and as a result your ability to solve the problem at hand is likely to get better.

You are a programmer, you need to be able to deal with a lot of problems, they could come in many forms and many ways. You need to be able to see the abstract similarity, and as a good programmer be able to write abstract tools to handle the general problems. Not to rewrite ad-hoc code to solve each problem on its own.