orthax.polynomial.polyfromroots
- orthax.polynomial.polyfromroots(roots)Source
Generate a monic polynomial with given roots.
Return the coefficients of the polynomial
\[p(x) = (x - r_0) * (x - r_1) * ... * (x - r_n),\]where the
r_nare the roots specified in roots. If a zero has multiplicity n, then it must appear in roots n times. For instance, if 2 is a root of multiplicity three and 3 is a root of multiplicity 2, then roots looks something like [2, 2, 2, 3, 3]. The roots can appear in any order.If the returned coefficients are c, then
\[p(x) = c_0 + c_1 * x + ... + x^n\]The coefficient of the last term is 1 for monic polynomials in this form.
- Parameters:
roots (array_like) – Sequence containing the roots.
- Returns:
out (ndarray) – 1-D array of the polynomial’s coefficients If all the roots are real, then out is also real, otherwise it is complex. (see Examples below).
See also
orthax.chebyshev.chebfromroots,orthax.legendre.legfromroots,orthax.laguerre.lagfromroots,orthax.hermite.hermfromroots,orthax.hermite_e.hermefromrootsNotes
The coefficients are determined by multiplying together linear factors of the form
(x - r_i), i.e.\[p(x) = (x - r_0) (x - r_1) ... (x - r_n)\]where
n == len(roots) - 1; note that this implies that1is always returned for \(a_n\).Examples
>>> from orthax import polynomial as P >>> P.polyfromroots((-1,0,1)) # x(x - 1)(x + 1) = x^3 - x array([ 0., -1., 0., 1.]) >>> j = complex(0,1) >>> P.polyfromroots((-j,j)) # complex returned, though values are real array([1.+0.j, 0.+0.j, 1.+0.j])