2

I'm not very familiar with algebra and was wondering if there are any results regarding the effective order of rational polynomials (i.e. rational functions).

Specifically: given $P(z)$ and $Q(z)$ as polynomials in $z$ with real coefficients of order $p$ and $q$ respectively, is there a way to know the effective order of the rational function $P(z)Q^{-1}(z)$ - by which I mean to know if there are $r$ roots shared by the numerator and denominator that cancel each other out resulting in a smaller rational polynomial of order $p-r, q-r$?

More importantly, can this be done without explicit factorization ? I just want to know the value of $r$ without knowing the roots or the reduced polynomials.

firdaus
  • 733
  • Find the greatest common divisor by the Euclidean algorithm? – Daniel Fischer May 06 '14 at 14:54
  • @Daniel Calculating gcds of polynomials with finite approximations to real numbers can be quite tricky, e.g. if you don't choose accurate enough approximations then the calculation may incorrectly deem some number to be zero, possibly yielding in an incorrect gcd. Or it may incorrectly deem some number nonzero, then divide by it, i.e. division by zero. – Bill Dubuque May 06 '14 at 16:55

2 Answers2

1

You can determine whether two polynomials have common roots by calculating a resultant. A resultant is a function of the coefficients of the two polynomials that is zero iff they have a common root. Resultants are related to "elimination theory", which was a hot topic 100 years ago, but became unfashionable in the 1930s.

The Wikipedia and MathWorld pages talk about "the" resultant of two polynomials. But, in fact there are numerous different types of resultant. They are associated with the names of people like Cayley, Sylvester, Dixon, and Bezout, among others.

See also this question.

bubba
  • 44,617
  • Thanks for this link. The methods listed here seem to be for determining if they share at least one root. I am wondering if there is anything that determines if P(z) and Q(z) are the "minimal" representation of the rational function P/Q ? Specifically - I would also like to know how many roots are shared. – firdaus May 06 '14 at 16:53
  • @firdaus Are you concerned only with theoretical methods, or also with practical methods too? (hence with effective algorithms for computing with real numbers, esp. zero-testing) – Bill Dubuque May 06 '14 at 18:05
  • I'm interested in theoretical properties for rational functions with arbitrary coefficients. I would be happy with a sufficiency statement like : if coeffs of P(z) and Q(z) satisfy some property, then the rational function P(z)/Q(z) is guaranteed to be minimal. – firdaus May 06 '14 at 18:24
  • Specifically, I want to (separately) construct a polynomial P(z) of order p and a polynomial Q(z) of order q to fit some data and while also ensuring that their roots are not shared, because I want to argue that these polynomials are a minimal order representation of P(z)/Q(z) – firdaus May 06 '14 at 18:29
  • @firdaus Does the data come from the real-word (finite precision) or the mathematical world (infinite precision)? I emphasize again if you want an algorithm then you need to worry about how to test equality (which is undecidable in general). Also you need to write at-user for the user to be notified (Tab completes the user name). – Bill Dubuque May 06 '14 at 18:47
  • @firdaus -- if you are fitting rational functions to real-world data, then you'll run into the floating point problems that Bill mentioned. Testing resultant == 0 will almost always fail in floating point arithmetic. You have to use some tolerance, and picking the right tolerance value will be tricky. – bubba May 06 '14 at 23:49
  • @firdaus -- if you're trying to fit data using a rational function, computing two polynomials separately is a strange approach. Just use rational approximation directly. It's non-linear and tricky, but decent algorithms exist. Look up Remez' algorithm, or look in the Mathematica or Maple docs. There is also a Matlab add-on called Chebfun that computes rational approximations. – bubba May 06 '14 at 23:54
  • @firdaus -- if you decide to use rational approximation, then just run the algorithm with increasingly large values of $m = deg(P)$ and $n=deg(Q)$ until you get a fit that's close enough. The $P/Q$ you get this way will be "minimal". If it were not, you would have achieved the desired error with smaller values of $m$ and $n$. – bubba May 06 '14 at 23:58
  • The usual approach for a "fuzzy" or approximate common divisor is to compute the effective rank of one of the resultant matrices, for instance using QR decomposition or better SVD. This also gives a basis for the "effective" kernel of the matrix, which allows to determine the largest approximate common factor. – Lutz Lehmann May 07 '14 at 07:52
0

Euclid's GCD algorithm can be used to find common factors between two polynomials. For instance: $$ \begin{align} \gcd(x^3 + 1, x^4 + x^2 + 1) & = \gcd(x^3 + 1, x^4 + x^2 + 1 - x(x^3 + 1)) \\ & = \gcd(x^3 + 1, x^2 - x + 1) \\ & = \gcd(x^3 + 1 - x(x^2 - x + 1), x^2 - x + 1) \\ & = \gcd(x^2 - x + 1, x^2 - x + 1) \\ &= \gcd(x^2 - x + 1, 0) \\ &= x^2 - x + 1 \end{align} $$

So $x^2 - x + 1$ is the greatest common factor between $x^3 + 1$ and $x^4 + x^2 + 1$.

NovaDenizen
  • 4,286