Bird
Raised Fist0
NumPydata~10 mins

Polynomial operations with np.poly in NumPy - Interactive Code Practice

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to create a polynomial from roots using np.poly.

NumPy
import numpy as np
roots = [1, 2, 3]
poly_coeffs = np.[1](roots)
print(poly_coeffs)
Drag options to blanks, or click blank then click option'
Apoly
Bpoly1d
Croots
Dpolyfit
Attempts:
3 left
💡 Hint
Common Mistakes
Using np.poly1d instead of np.poly, which creates a polynomial object, not coefficients.
Using np.roots which finds roots from coefficients, not the other way around.
2fill in blank
medium

Complete the code to evaluate the polynomial at x=2 using np.polyval.

NumPy
import numpy as np
coeffs = [1, -6, 11, -6]  # coefficients for (x-1)(x-2)(x-3)
value = np.[1](coeffs, 2)
print(value)
Drag options to blanks, or click blank then click option'
Apolyval
Broots
Cpoly
Dpolyfit
Attempts:
3 left
💡 Hint
Common Mistakes
Using np.poly which returns coefficients, not evaluation.
Using np.roots which finds roots, not evaluates.
3fill in blank
hard

Fix the error in the code to multiply two polynomials using np.polymul.

NumPy
import numpy as np
p1 = [1, -1]  # x - 1
p2 = [1, -2]  # x - 2
product = np.[1](p1, p2)
print(product)
Drag options to blanks, or click blank then click option'
Apolyval
Bpolyfit
Cpolyadd
Dpolymul
Attempts:
3 left
💡 Hint
Common Mistakes
Using np.polyadd which adds polynomials instead of multiplying.
Using np.polyval which evaluates polynomials, not multiply.
4fill in blank
hard

Fill both blanks to create a polynomial from roots and then find its roots.

NumPy
import numpy as np
roots = [4, 5, 6]
coeffs = np.[1](roots)
found_roots = np.[2](coeffs)
print(found_roots)
Drag options to blanks, or click blank then click option'
Apoly
Bpolyval
Croots
Dpolyfit
Attempts:
3 left
💡 Hint
Common Mistakes
Using np.polyval instead of np.roots to find roots.
Using np.polyfit which fits data, not related here.
5fill in blank
hard

Fill all three blanks to create a polynomial from roots, evaluate it at x=3, and multiply by another polynomial.

NumPy
import numpy as np
roots = [1, 2]
p1 = np.[1](roots)
val = np.[2](p1, 3)
p2 = [1, -3]
product = np.[3](p1, p2)
print(val)
print(product)
Drag options to blanks, or click blank then click option'
Apoly
Bpolyval
Cpolymul
Droots
Attempts:
3 left
💡 Hint
Common Mistakes
Mixing up np.roots with np.polyval.
Using np.polyfit which is for fitting data, not polynomial operations.

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