polymake

Purpose

Computes the coefficients of a polynomial given the roots.

Format

c = polymake(r)
Parameters:

r (Nx1 vector) – roots of the desired polynomial

Returns:

c ((N+1)x1 vector) –

contains the coefficients of the Nth order polynomial with roots r:

\[p(z)=c[1]*z^n + c[2]*z^{(n-1)} + ... c[n]*z + c[n+1]\]

Examples

// Assign values for the roots of the polynomial
r = { 2, 1, 3 };

// Calculate the coefficients
c = polymake(r);

// Print 3 spaces for each number and 1 digit after the
// decimal place
format /rd 3,1;

// Iterate through each root in 'r'
for i(1, 3, 1);
   rtmp = r[i];
   // Calculate the polynomial
   rout = c[1]*rtmp^3 + c[2]*rtmp^2 + c[3]*rtmp + c[4];
   print "rtmp = " rtmp "rout = " rout;
endfor;

Since the values of r are roots for this polynomial, rout should equal 0.

Thus the code above gives the following output:

rtmp = 2.0 rout = 0.0
rtmp = 1.0 rout = 0.0
rtmp = 3.0 rout = 0.0

This example assigns c to be equal to:

     1.0
c = -6.0
    11.0
    -6.0

This represents the polynomial:

\[x^3 - 6x^2 + 11^x - 6\]

Remarks

The coefficient of \(z^n\) is set to unity (\(c[1]=1\)).

Source

poly.src