`You never understand mathematics, you just get used to it.' --- J. von Neumann.
Many people prefer explicit expressions for the roots of polynomials in terms of radicals (root extractions). This preference is again psychological --- root extraction, with the exception of square roots, for which there is a finite compass-and-ruler geometric construction, is itself an infinite process and not a `closed form' expression really. Nonetheless many people would prefer
to the much more compact
RootOf(x^3+x+1,x) or its mathematical
translation `Let be a root of ', with its implicit
subtext that we can compute to any desired degree of precision
without any reference to radicals whatsoever (in fact reference to
radicals may introduce unnecessary numerical difficulties).
But radicals are what people are used to, and students are continually disturbed by the fact that there is no algorithm for writing roots of polynomials as radicals if the degree of the polynomial is five or higher. Some polynomials of arbitrary degree can have their roots so written, of course, but it is not clear just which ones.
In fact there is a formula for the roots of the general polynomial of degree five --- it involves elliptic functions, however, which most modern people would not regard as `closed form expressions' although they are perfectly good functions (as we will see later). Elliptic functions were better understood in the mathematical community a hundred years ago, though, and at that time such an explicit formula was considered useful. Maple does not at this time know this formula (to be honest, neither do I --- I just know it exists ).
RootOf construction, however, is much more powerful in
that it handles polynomials of arbitrary degree (in principle). It
also allows a more compact solution than otherwise possible and is
really our first instance of a computation sequence appearing
in the answer to a problem : `` The answer is ,
where is the root of .'' Combined with a
numerically stable method of calculating these roots (which the
explicit expressions may not be) this is a complete and perfectly
Some further examples of their usefulness follow, showing how to evaluate sums and products of expressions containing RootOf's, where the sum or product is to be taken over all roots of the polynomials. Maple uses the Newton identities to express symmetric functions of the roots in terms of the coefficients to evaluate sums and products over the roots of polynomials.
> p := randpoly(x); 5 4 3 2 p := - 85 x - 55 x - 37 x - 35 x + 97 x + 50 > q := randpoly(x); 5 4 3 2 q := 79 x + 56 x + 49 x + 63 x + 57 x - 59 > R := unapply(p/q,x); 5 4 3 2 - 85 x - 55 x - 37 x - 35 x + 97 x + 50 R := x -> ------------------------------------------- 5 4 3 2 79 x + 56 x + 49 x + 63 x + 57 x - 59 > r := x -> evalf(R(x)); r := x -> evalf(R(x)) > alias(alpha=RootOf(q,x)); I, alpha > res := unapply(p/diff(q,x),x); 5 4 3 2 - 85 x - 55 x - 37 x - 35 x + 97 x + 50 res := x -> ------------------------------------------- 4 3 2 395 x + 224 x + 147 x + 126 x + 57 > > pfd := x -> -85/79 + evalf(Sum( res(a)/(x-a),a=alpha)); ----- \ res(a) pfd := x -> - 85/79 + evalf( ) ------) / x - a ----- a = alpha > > pfd(1.); -.2653061224 > r(1.); -.2653061224 > > pfd(0.134578); -1.244999651 > r(0.134578); -1.244999651 > Digits := 30; Digits := 30 > pfd(Pi); -1.01929909357787190035915737927 > r(Pi); -1.01929909357787190035915737927This gives a powerful way of expressing the complete partial fraction expansion of rational functions. This idea is pursued farther in .
Conclude that if we can find u and v to satisfy
then we can solve the cubic equation. Solve the above equation.