Bird
Raised Fist0
NumPydata~5 mins

Polynomial operations with np.poly in NumPy

Choose your learning style10 modes available
Introduction

We use polynomial operations to work with equations like lines or curves easily.
Using np.poly helps us find the polynomial from its roots, which is useful in math and data science.

You have the roots (solutions) of a polynomial and want to find its equation.
You want to create a polynomial curve that passes through certain points.
You need to analyze or plot polynomial functions based on their roots.
You want to simplify polynomial expressions in data modeling.
Syntax
NumPy
numpy.poly(r)

# r is a sequence (list or array) of roots of the polynomial

The function returns the coefficients of the polynomial with the given roots.

Coefficients are in descending order of powers, starting with the highest degree.

Examples
This finds the polynomial coefficients for roots 1, 2, and 3.
NumPy
import numpy as np
roots = [1, 2, 3]
coefficients = np.poly(roots)
print(coefficients)
Polynomial with roots 0 and -1 gives coefficients for x² + x.
NumPy
coeffs = np.poly([0, -1])
print(coeffs)
Sample Program

This program finds the polynomial coefficients from roots 2, 4, and 6. Then it checks the polynomial value at each root, which should be zero or very close.

NumPy
import numpy as np

# Define roots of the polynomial
roots = [2, 4, 6]

# Get polynomial coefficients from roots
coefficients = np.poly(roots)

print('Polynomial coefficients:', coefficients)

# To verify, evaluate polynomial at roots (should be close to zero)
for r in roots:
    value = np.polyval(coefficients, r)
    print(f'P({r}) = {value}')
OutputSuccess
Important Notes

Roots can be real or complex numbers.

Polynomial coefficients are returned as a NumPy array.

Use np.polyval to evaluate the polynomial at any point.

Summary

np.poly creates polynomial coefficients from roots.

Coefficients start with the highest power term.

Use it to build polynomial equations easily from known roots.

Practice

(1/5)
1. What does the np.poly function do in NumPy?
easy
A. It evaluates a polynomial at given points.
B. It calculates the derivative of a polynomial.
C. It finds the roots of a polynomial from coefficients.
D. It returns polynomial coefficients from given roots.

Solution

  1. Step 1: Understand the purpose of np.poly

    The function np.poly takes roots of a polynomial as input and returns the coefficients of the polynomial with those roots.
  2. Step 2: Differentiate from other polynomial functions

    Other functions like np.polyder find derivatives, np.polyval evaluates polynomials, and np.roots finds roots from coefficients, so they are different.
  3. Final Answer:

    It returns polynomial coefficients from given roots. -> Option D
  4. Quick Check:

    np.poly = coefficients from roots [OK]
Hint: Remember: np.poly converts roots to coefficients [OK]
Common Mistakes:
  • Confusing np.poly with np.roots
  • Thinking np.poly evaluates polynomials
  • Mixing up derivative functions with np.poly
2. Which of the following is the correct syntax to get polynomial coefficients from roots [-1, 2, 3] using NumPy?
easy
A. np.poly([-1, 2, 3])
B. np.polyroots([-1, 2, 3])
C. np.polyval([-1, 2, 3])
D. np.polycoef([-1, 2, 3])

Solution

  1. Step 1: Recall the correct function name

    The function to get polynomial coefficients from roots is np.poly.
  2. Step 2: Check the syntax

    The correct syntax is np.poly([-1, 2, 3]). Other options are not valid NumPy functions.
  3. Final Answer:

    np.poly([-1, 2, 3]) -> Option A
  4. Quick Check:

    Correct function is np.poly with roots list [OK]
Hint: Use np.poly with a list of roots inside parentheses [OK]
Common Mistakes:
  • Using non-existent functions like np.polyroots
  • Confusing np.polyval with np.poly
  • Misspelling function names
3. What is the output of the following code?
import numpy as np
coeffs = np.poly([1, 2])
print(coeffs)
medium
A. [1. 3. 2.]
B. [1. -3. 2.]
C. [1. -2. 1.]
D. [1. 2. -3.]

Solution

  1. Step 1: Understand np.poly output for roots [1, 2]

    np.poly returns coefficients of polynomial with roots 1 and 2, which is (x - 1)(x - 2) = x^2 - 3x + 2.
  2. Step 2: Write coefficients in descending order

    The coefficients are [1, -3, 2], representing 1*x^2 - 3*x + 2.
  3. Final Answer:

    [1. -3. 2.] -> Option B
  4. Quick Check:

    Roots [1,2] -> coeffs [1, -3, 2] [OK]
Hint: Multiply (x - root) terms and list coefficients [OK]
Common Mistakes:
  • Mixing signs of coefficients
  • Listing roots instead of coefficients
  • Confusing order of coefficients
4. The following code throws an error. What is the problem?
import numpy as np
coeffs = np.poly(3, 4, 5)
print(coeffs)
medium
A. roots should be a list or array, not a tuple without brackets
B. np.poly does not accept more than two roots
C. print statement syntax is incorrect
D. np.poly requires integer roots only

Solution

  1. Step 1: Check the input to np.poly

    The roots 3, 4, 5 are passed as separate positional arguments instead of a single sequence. np.poly expects one array-like input (list, array, or tuple).
  2. Step 2: Fix the roots input

    Wrap roots in brackets: coeffs = np.poly([3, 4, 5]) to pass a list to np.poly.
  3. Final Answer:

    roots should be a list or array, not a tuple without brackets -> Option A
  4. Quick Check:

    np.poly needs list/array input [OK]
Hint: Always pass roots as list or array to np.poly [OK]
Common Mistakes:
  • Passing tuple without brackets
  • Assuming np.poly limits root count
  • Misunderstanding print syntax errors
5. You have roots [-2, 0, 3] and want to create a polynomial with leading coefficient 2 instead of 1. How can you do this using np.poly?
hard
A. Add 2 to the coefficients returned by np.poly
B. Pass an extra argument 2 to np.poly as np.poly([-2, 0, 3], 2)
C. Multiply the output of np.poly([-2, 0, 3]) by 2
D. Use np.polyval with 2 as the first argument

Solution

  1. Step 1: Generate coefficients from roots

    Use np.poly([-2, 0, 3]) to get coefficients for polynomial with leading coefficient 1.
  2. Step 2: Scale coefficients to change leading coefficient

    Multiply all coefficients by 2 to make leading coefficient 2, since np.poly does not take leading coefficient as argument.
  3. Final Answer:

    Multiply the output of np.poly([-2, 0, 3]) by 2 -> Option C
  4. Quick Check:

    Scale coefficients to change leading term [OK]
Hint: Multiply coefficients array to adjust leading coefficient [OK]
Common Mistakes:
  • Trying to pass leading coefficient as np.poly argument
  • Adding instead of multiplying coefficients
  • Using np.polyval incorrectly
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard