📖 Scenario: You are working as a data analyst and need to handle simple polynomial operations. Polynomials are like math expressions with powers of x, such as x2 + 3x + 2. Using Python's numpy library, you will learn how to create and work with polynomials easily.
🎯 Goal: Build a small program that creates two polynomials, adds them, multiplies them, and then prints the results.
📋 What You'll Learn
Create two polynomials using numpy's np.poly1d with exact coefficients
Add the two polynomials
Multiply the two polynomials
Print the resulting polynomials
💡 Why This Matters
🌍 Real World
Polynomials are used in data fitting, physics, and engineering to model curves and trends.
💼 Career
Data scientists often use polynomial models to understand relationships in data and make predictions.
Progress0 / 4 steps
1
Create two polynomials
Create two polynomials called poly1 and poly2 using np.poly1d. Use coefficients [1, 2, 1] for poly1 (which means x² + 2x + 1) and [2, 0, -1] for poly2 (which means 2x² - 1).
NumPy
Hint
Use np.poly1d([coefficients]) to create a polynomial. The list starts with the highest power.
2
Add the two polynomials
Create a new variable called poly_sum that adds poly1 and poly2 using the + operator.
NumPy
Hint
You can add two np.poly1d objects directly with +.
3
Multiply the two polynomials
Create a new variable called poly_product that multiplies poly1 and poly2 using the * operator.
NumPy
Hint
You can multiply two np.poly1d objects directly with *.
4
Print the results
Print poly_sum and poly_product to see the resulting polynomials.
NumPy
Hint
Use print() to display the polynomials. They will show in a nice math format.
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
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.
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.
Final Answer:
It returns polynomial coefficients from given roots. -> Option D
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
Step 1: Recall the correct function name
The function to get polynomial coefficients from roots is np.poly.
Step 2: Check the syntax
The correct syntax is np.poly([-1, 2, 3]). Other options are not valid NumPy functions.
Final Answer:
np.poly([-1, 2, 3]) -> Option A
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
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.
Step 2: Write coefficients in descending order
The coefficients are [1, -3, 2], representing 1*x^2 - 3*x + 2.
Final Answer:
[1. -3. 2.] -> Option B
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
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).
Step 2: Fix the roots input
Wrap roots in brackets: coeffs = np.poly([3, 4, 5]) to pass a list to np.poly.
Final Answer:
roots should be a list or array, not a tuple without brackets -> Option A
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
Step 1: Generate coefficients from roots
Use np.poly([-2, 0, 3]) to get coefficients for polynomial with leading coefficient 1.
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.
Final Answer:
Multiply the output of np.poly([-2, 0, 3]) by 2 -> Option C
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 unknownstrongwhile earning +1 Grip toward your certificate.