Bird
Raised Fist0
MATLABdata~5 mins

Polynomial evaluation and roots in MATLAB

Choose your learning style10 modes available
Introduction

We use polynomial evaluation to find the value of a polynomial at a certain point. Finding roots helps us know where the polynomial equals zero.

To check the value of a polynomial for a specific input, like calculating speed or growth.
To find where a curve crosses the x-axis in a graph.
To solve equations that can be written as polynomials.
To analyze signals or data trends that follow polynomial patterns.
Syntax
MATLAB
value = polyval(p, x)
roots_of_p = roots(p)

p is a vector of polynomial coefficients starting with the highest power.

x is the point or points where you want to evaluate the polynomial.

Examples
Evaluates the polynomial 2x² + 3x - 5 at x = 4.
MATLAB
p = [2 3 -5];
value = polyval(p, 4);
Finds the roots of the polynomial x³ - 6x² + 11x - 6.
MATLAB
p = [1 -6 11 -6];
r = roots(p);
Evaluates x² - 4 at x = 0, 1, and 2.
MATLAB
p = [1 0 -4];
values = polyval(p, [0 1 2]);
Sample Program

This program evaluates the polynomial x² - 3x + 2 at x = 5 and finds its roots.

MATLAB
p = [1 -3 2]; % Polynomial x^2 - 3x + 2
x = 5;
value = polyval(p, x);
roots_of_p = roots(p);

fprintf('Value of polynomial at x = %d is %d\n', x, value);
fprintf('Roots of the polynomial are:\n');
fprintf('%f\n', roots_of_p);
OutputSuccess
Important Notes

The roots function returns complex roots if they exist.

Polynomial coefficients must be in descending order of power.

Summary

Use polyval to find polynomial values at given points.

Use roots to find where the polynomial equals zero.

Practice

(1/5)
1. What does the MATLAB function polyval(p, x) do when p is a vector of polynomial coefficients and x is a number?
easy
A. Evaluates the polynomial at the value x.
B. Finds the roots of the polynomial p.
C. Plots the polynomial curve over x.
D. Calculates the derivative of the polynomial at x.

Solution

  1. Step 1: Understand the function inputs

    The vector p contains polynomial coefficients, and x is the point where we want to evaluate the polynomial.
  2. Step 2: Identify the function purpose

    polyval calculates the polynomial value at x using the coefficients in p.
  3. Final Answer:

    Evaluates the polynomial at the value x. -> Option A
  4. Quick Check:

    polyval = evaluate polynomial [OK]
Hint: polyval means evaluate polynomial at given points [OK]
Common Mistakes:
  • Confusing polyval with roots function
  • Thinking polyval finds zeros of polynomial
  • Assuming polyval plots the polynomial
2. Which of the following is the correct syntax to find the roots of a polynomial with coefficients stored in vector p in MATLAB?
easy
A. polyval(p)
B. roots(p)
C. findroots(p)
D. solve(p)

Solution

  1. Step 1: Recall MATLAB root-finding function

    MATLAB uses the function roots to find zeros of a polynomial given its coefficients.
  2. Step 2: Check syntax correctness

    The correct syntax is roots(p), where p is the coefficient vector.
  3. Final Answer:

    roots(p) -> Option B
  4. Quick Check:

    roots function syntax = roots(p) [OK]
Hint: Use roots() to find polynomial zeros in MATLAB [OK]
Common Mistakes:
  • Using polyval instead of roots
  • Trying non-existent functions like findroots
  • Passing wrong arguments to roots
3. What is the output of the following MATLAB code?
p = [1 -3 2]; % Represents x^2 - 3x + 2
r = roots(p);
medium
A. [1 2]
B. [3 2]
C. [2 1]
D. [-1 -2]

Solution

  1. Step 1: Identify the polynomial

    The vector p = [1 -3 2] represents the polynomial x^2 - 3x + 2.
  2. Step 2: Find roots of the polynomial

    Factoring: (x-1)(x-2) = 0 so roots are 1 and 2. MATLAB returns a column vector [2; 1], matching option [2 1].
  3. Final Answer:

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

    Roots of x^2-3x+2 = 1, 2 [OK]
Hint: Roots are where polynomial equals zero [OK]
Common Mistakes:
  • Mixing up coefficient order
  • Forgetting roots are values of x
  • Assuming roots are negative
4. The following MATLAB code is intended to evaluate the polynomial p = [2 -5 3] at x = 4. What is the error?
p = [2 -5 3];
y = roots(p, 4);
medium
A. The syntax is correct; no error.
B. The variable y is not defined before use.
C. The vector p should be transposed before calling roots.
D. roots does not take a second argument; use polyval instead.

Solution

  1. Step 1: Understand function usage

    The function roots only takes one input: the coefficient vector p.
  2. Step 2: Identify correct function for evaluation

    To evaluate polynomial at a point, use polyval(p, x), not roots.
  3. Final Answer:

    roots does not take a second argument; use polyval instead. -> Option D
  4. Quick Check:

    roots(p) finds zeros; polyval(p,x) evaluates [OK]
Hint: Use polyval to evaluate, roots only finds zeros [OK]
Common Mistakes:
  • Passing extra arguments to roots
  • Confusing roots and polyval functions
  • Assuming roots evaluates polynomial
5. You have a polynomial p = [1 -6 11 -6] representing x^3 - 6x^2 + 11x - 6. Which MATLAB code correctly finds the roots and evaluates the polynomial at x = 2?
hard
A. r = roots(p); y = polyval(p, 2);
B. r = polyval(p, 2); y = roots(p);
C. r = roots(2); y = polyval(p);
D. r = roots(p, 2); y = polyval(p, 2);

Solution

  1. Step 1: Find roots of polynomial

    Use roots(p) to get zeros of polynomial p.
  2. Step 2: Evaluate polynomial at x=2

    Use polyval(p, 2) to find polynomial value at 2.
  3. Final Answer:

    r = roots(p); y = polyval(p, 2); -> Option A
  4. Quick Check:

    roots(p) finds zeros, polyval(p,x) evaluates [OK]
Hint: roots() finds zeros; polyval() evaluates at points [OK]
Common Mistakes:
  • Swapping roots and polyval calls
  • Passing wrong arguments to roots
  • Using roots with two arguments
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