There are certain misconceptions that exist about Math, and one of them could be, that if a random system of equations is written down, the Algebraic solution of those equations is at hand. In fact, equations can arise easily, which are known to have numerical answers, but for which the exact, Algebraic (= analytical) answer, is nowhere in sight. And one example where this happens, is with polynomials ‘of a high degree’ . We are taught what the general solution to the quadratic is in High-School. But what I learned was, that the general solution to a cubic is extremely difficult to comprehend, while that of a 4th-degree polynomial – a quartic – is too large to be printed out. These last two have in fact been computed, but
not on consumer-grade hardware or software.
In fact, I was taught that for degrees of polynomials greater than 4, there is no general solution.
This seems to fly in the face of two known facts:
- Some of those equations have the full number of real roots,
- Computers have made finding numerical solutions relatively straightforward.
But the second fact is really only a testament, to how computers can perform numerical approximations, as their main contribution to Math and Engineering. In the case of polynomials, the approach used is to find at least one root – closely enough, and then, to use long division or synthetic division, to divide by (1 minus that root), to arrive at a new polynomial, which has been reduced in degree by 1. This is because (1 minus a root) must be a factor of the original polynomial.
Once the polynomial has arrived at a quadratic, computers will eagerly apply its general solution to what remains, thereby perhaps also generating 2 complex roots.
In the case of a cubic, a trick which people use, is first to normalize the cubic, so that the coefficient of its first term is 1. Then, the 4th, constant term is examined. Any one of its factors, or the factors of the terms it is a product of, positively or negatively, could be a root of the cubic. And if one of them works, the equation has been cracked.
In other words, if this constant term is the product of square roots of integers, the corresponding products of the square roots, of the factors of these integers, could lead to roots of the cubic.
(Updated 1/12/2019, 21h05 … )
Well this is also what the Computer Algebra System “Maxima” does, and because “Sage” uses some version of Maxima to do its actual Algebra, this is also what Sage does.
(Edit 1/11/2019, 15h50 : )
But I have learned that indeed, this is not the only way in which Maxima and Sage ‘know’ how to solve cubics (see below).
(End of Edited Insert. )
The following work-sheet tested this premise, and thereby, I also tested this weakness in Computer Algebra today. If none of the factors of the mentioned constant term act as a root, an unwieldy list of roots results,
(Edit 1/11/2019, 13h50 : )
The above work-sheet shows, that to try to solve the altered cubic, in which I replaced a (+6) with a (+5), constant term, causes Jupyter to output a highly complex set of 3 equations, that are humanly incomprehensible. But if the alternative is chosen, to write:
F1(x).roots(x, ring=CC, multiplicities=False)
Then, the Computer Algebra System seems to solve its original purpose because this ‘.roots()’ function is a numerical approximation, which may be more practical than what I got before.
What I needed to do, was to determine whether the earlier output was in fact, an accurate, ‘True’ answer. If it was, then Jupyter and Sage are in fact able to apply the general solution. The way I tested this was, to extract elements ,  and  from the list (S), to extract the Right-Hand-Side of each list item, and to compute a numerical approximation from it. What I discovered finally, was that this numerical approximation was almost identical to the one, that was asked for directly. The only difference in List Item  seems to be, a vestigial, non-zero imaginary component, with an order of magnitude of about (10^-16), which is irrelevant.
So what this means is that the extreme expression which the CAS outputs, consisting of 3 listed items, is in fact correct. The only reason I failed to determine this last night, was my forgetting to specify the Right-Hand-Side of the list items, using the correct syntax, which is:
What I had forgotten to do last night, when trying to confirm this, was to put an empty set of parentheses on the right-hand-side of the ‘rhs’ function, which turns that into a function-call, instead of an abstract object-placeholder.
I will not bother the reader with yet another work-sheet, only to prove that the work-sheet above contains only True statements, from Jupyter.
(Update 1/12/2019, 21h05 : )
One happenstance of using Computer Algebra Systems is, that when ‘coerced’ into producing numerical answers to complicated equations, they will sometimes have small, non-zero components, where the exact answer possesses a zero. These are round-off errors, and if the term in question is at least 10 decimal orders of magnitude smaller than the main terms of the solution, a Human operator needs to keep in mind, that this could just be the way the CAS has attempted to arrive at zero exactly, especially if the term in question is an imaginary term, in a solution that’s known only to have real numbers.
I have delved further into the question, of why the solution-set (S) produced by Jupyter above, as an exact, algebraic solution to a cubic equation that has no rational roots, is in a form so difficult for Humans to understand. And I think I found my answer. In general, what Jupyter’s solution set states, is of the form:
In fact, the cubic needs to possess coefficients that are numbers and not symbolic variables, and after failing to factor it, this software applies such a template.
Further, the real solution set seems to contain an H1 and an H2 expression, each of which is being rotated in opposite directions. The cause of this is explainable. H1 results as (Z), while H2 results as (1/Z). If the imaginary component of (Z) becomes positive, then that of (1/Z) will naturally become negative, and vice-versa. (Z) is consistently the cube root of the same thing. But this also results in an expression which, itself, can only be computed to arrive at a numeric value, and which cannot be analyzed algebraically, by ordinary means.
The third line in the figure above states what I call a ‘rotator’ , by which I mean a complex number, that merely rotates another number in the complex plane. The rotator above gives 3 terms derived from (H), but 120⁰ apart in the complex plane, one of which has just not been rotated, but to all 3 of which (1) must be added. The imaginary part of this term contains (±) cosine of 30⁰, when not zero. The real part then contains (-) sine of 30⁰.
For finding complex roots, An earlier posting of mine already describes this phenomenon, but the reader will need to be able to view page-sized PDF-Files, to appreciate that posting.
The reason why the solution-set (S) above counts as ‘True’ , is the fact that when the CAS named “Jupyter” is given the command:
All this command will do is to arrive at one numeric solution, that happens to be close to a real number. In fact, the way Jupyter and Maxima happen to work with fractional powers, may have as advantage, only to generate one answer each time.
Each of the solutions proposed by Jupyter as part of (S), already implies 3 roots, but the term which I called their ‘rotator’ positions each of those roots closer to the Real-number-line, and thus further from the Imaginary-axis. But then, this form of a general solution to a cubic has 2 main disadvantages which I can think of:
- It does not reveal at first glance, whether the cubic equation in question does in fact have 3 real roots, or only 1, or even 2. It could be that neither of the other two translates into a real number, when the two rotations are applied…
- If any of these terms is plugged back in to the cubic equation in question, ‘F1(x)’ , doing so fails to generate a satisfactory value of zero, just because each of the list-items by itself, defines 3 theoretical values. Plugging all of them back in to ‘F1(x)’ at once will produce one zero, plus two complex values, that are in fact extraneous.
Therefore, even the output of a CAS, when told to solve difficult problems, needs some level of skill from the Human operator, to interpret.