@sym: c = coeffs (p, x) ¶@sym: c = coeffs (p) ¶@sym: c = coeffs (…, 'all') ¶@sym: [c, t] = coeffs (p, x) ¶@sym: [c, t] = coeffs (p) ¶@sym: [c, t] = coeffs (…, 'all') ¶Return non-zero (or all) coefficients of symbolic polynomial.
c contains the coefficients and t the corresponding terms.
Example:
syms x
[c, t] = coeffs (x^6 + 3*x - 4)
⇒ c = (sym) [1 3 -4] (1×3 matrix)
⇒ t = (sym 1×3 matrix)
⎡ 6 ⎤
⎣x x 1⎦
The polynomial can be multivariate:
syms x y
[c, t] = coeffs (x^2 + y*x)
⇒ c = (sym) [1 1] (1×2 matrix)
⇒ t = (sym 1×2 matrix)
⎡ 2 ⎤
⎣x x⋅y⎦
[c, t] = coeffs (x^2 + y*x, [x y]) % same
⇒ c = (sym) [1 1] (1×2 matrix)
⇒ t = (sym 1×2 matrix)
⎡ 2 ⎤
⎣x x⋅y⎦
[c, t] = coeffs (x^2 + y*x, {x y}) % same
⇒ c = (sym) [1 1] (1×2 matrix)
⇒ t = (sym 1×2 matrix)
⎡ 2 ⎤
⎣x x⋅y⎦
You can use the second argument to specify a vector or list of variables:
[c, t] = coeffs (x^2 + y*x, x)
⇒ c = (sym) [1 y] (1×2 matrix)
⇒ t = (sym 1×2 matrix)
⎡ 2 ⎤
⎣x x⎦
Omitting the second output is not recommended, especially for non-interactive code, because it gives only the non-zero coefficients, and additionally the output is in the “wrong order” compared to other polynomial-related commands:
c = coeffs (x^6 + 3*x - 4) ⇒ c = (sym) [-4 3 1] (1×3 matrix)
Warning: Again, note the order is reversed from the two-output case; this is for compatibility with Matlab’s Symbolic Math Toolbox.
If the optional input keyword 'all' is passed, the zero
coefficients are returned as well, and in the familiar order.
c = coeffs (x^6 + 3*x - 4, 'all') ⇒ c = (sym) [1 0 0 0 0 3 -4] (1×7 matrix)
Note: The 'all' feature does not yet work with
multivariate polynomials (https://github.com/gnu-octave/symbolic/issues/720).
See also: @@sym/sym2poly.
Package: symbolic