Main Content

Character Representation of Polynomials

You can specify polynomials as a character vector or string using a variety of syntaxes that correspond to those found in literature. The Communications Toolbox™ functions that support character vector and string polynomials internally convert them into the appropriate form. The form varies depending on the function. For example, the comm.BCHEncoder function expresses polynomials as a binary row vector whose powers are in descending order.

When specifying character vectors or strings to represent polynomials:

  • The order of the polynomial, ascending or descending, does not matter.

  • Spaces are ignored.

  • The caret symbol, ^, which indicates the presence of an exponent, is optional. If omitted, the function assumes that the integer following the variable name is an exponent.

  • Braces, {}, denote an exponent. For example, you can represent x2 as x{2}.

  • Text appearing before the polynomial expression (with or without an equals sign) is ignored.

  • Punctuation following square brackets is ignored.

  • Exponents must be uniformly positive or uniformly negative. Mixed exponents are not allowed. For example, 'x^2 + x + 1' and '1 + z^-6 + z^-8' are valid while '1 + z^6 + z^-8' is not.

To illustrate these characteristics, you can express the polynomial 1 + 2x + x3 + 4x5 + x14 using any of the following examples using single quotes for character vectors as shown or double quotes for strings.

  • '1+2x+x^3+4x^5+x^14'

  • '1+2m+m3+4m5+m14'

  • 'q14 + 4q5 + q3 + 2q + 1'

  • 'g(x) = 1+2x+x3+4x5+x14'

  • 'g(z) 1+2z+z3+4z5+z14'

  • 'p(x) = x{14} + 4x{5} + x{3} + 2{x} + 1'

  • '[D14 + 4D5 + D3 + 2D + 1]'