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]zn+c[2]z(n1)+...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:

x36x2+11x6

Remarks#

The coefficient of zn is set to unity (c[1]=1).

Source#

poly.src