extract all coefficients of a multivariate polynomial involving commutative and anticommutative variables - Maple Programming Help

Online Help

All Products    Maple    MapleSim


Home : Support : Online Help : Physics : Physics/Coefficients

Physics[Coefficients] - extract all coefficients of a multivariate polynomial involving commutative and anticommutative variables

Calling Sequence

Coefficients(p, x, N, onlynonzero)

Parameters

p

-

algebraic expression, or relation between them, or a set or list of them

x

-

variable, can be a name, function, product, power, or a list of them

N

-

optional, default to all, can be an integer, or a range of integers (n..m), or any of the keywords leading, trailing, all; indicates whether to compute all the coefficients or some or only one

onlynonzero

-

optional, can be true or false (default), to receive only the coefficients not equal to zero in the returned sequence

Description

• 

The Coefficients command extracts the coefficients of x in the polynomial p, where x and p can involve anticommutative variables. Coefficients is a one-command generalization of coeff, coeffs, lcoeff and tcoeff, that works with commutative and anticommutative variables in equal footing.

• 

The first argument, p, can also be a relation between polynomials, or a set or list of them, in which case Coefficients maps itself over the elements of the relation, set or list. For example, if p is an equation, then Coefficients(p, x) returns the equation obtained by computing Coefficients(lhs(p), x) = Coefficients(rhs(p), x), where lhs(p) and rhs(p) respectively represent the left and right hand sides of p.

• 

The second argument, x, can be a name, function, product, power, or a list of them. When x is a power, say as in a^n, Coefficients(p, x) returns the same as Coefficients(p, a, n), that is the coefficient of the nth power.

• 

The third argument, N, is optional, and indicates whether to extract all the coefficients (default behavior when N is not given, this is as coeffs) or the one of the Nth power when N is an integer (this is how coeff works), or the leading or trailing coefficient (pass N as the corresponding word, this produces the equivalent of lcoeff and tcoeff results), or a sequence of coefficients when N is a range of integers. The case N = all is then equivalent to the range case N = lower_degree .. higher_degree.

• 

Unlike coeff and coeffs, when x is a single variable and more than one coefficient is requested (for example, you call Coefficients with just two arguments, or with a third argument as a range), Coefficients returns the sequence of coefficients in ascending order, including those that are equal to 0. To receive only the non-zero coefficients use the optional argument onlynonzero.

• 

When x is a product, say a * b, Coefficients(p, a * b, N) returns the equivalent of taking a * b as an atomic object, that is the same as seq(Coefficients(Coefficients(p, a, n), b, n), n in N). In all cases when N is omitted it is assumed equal to all. Note that when a and b are anticommutative, Coefficients(p, a*b) returns the same as - Coefficients(p, b*a); likely, Coefficients(a*b, a) = - Coefficients(b*a, a).

• 

When x is a list, say [a, b], Coefficients(p, [a, b], N) returns the equivalent of recursively computing the coefficients with respect to each of the elements of the list, that is the same as op(map(Coefficients, [Coefficients(p, a, N)], b, N)). Note that when a and b are anticommutative, Coefficients(p, [a, b]) returns the same as - Coefficients(p, [b, a]); likely, Coefficients(a*b, [a, b]) = - Coefficients(b*a, [a, b]).

• 

Related to extracting coefficients, to compute the Degree of an expression with respect to anticommutative variables use the PDEtools:-Library:-Degree command.

Examples

with(Physics):

Setup(mathematicalnotation = true);

mathematicalnotation=true

(1)

First set theta as an identifier to work with type/anticommutative variables (see Setup)

Setup(anticommutativepre = theta);

* Partial match of 'anticommutativepre' against keyword 'anticommutativeprefix'

_______________________________________________________

anticommutativeprefix=θ

(2)

a*theta[1]*theta[2] + b;

aθ1θ2+b

(3)

The following three input lines have the same meaning, returning a sequence with all the coefficients

Coefficients((3), theta[1]);

b,aθ2

(4)

Coefficients((3), theta[1], all);

b,aθ2

(5)

Coefficients((3), theta[1], 0..1);

b,aθ2

(6)

When the third argument is an integer, Coefficients returns the coefficient of the corresponding power

Coefficients((3), theta[1], 0);

b

(7)

Coefficients((3), theta[1], 1);

aθ2

(8)

Computing the coefficient or the 1st power of an anticommutative variable is the same as differentiating with respect to it

diff((3), theta[1]);

aθ2

(9)

Coefficients((3), theta[2], 1);

aθ1

(10)

diff((3), theta[2]);

aθ1

(11)

The coefficient of a product: note the change in sign when you reverse the order of the anticommutative variables in the coefficient product-variable

Coefficients((3), theta[1] * theta[2]);

b,a

(12)

Coefficients((3), theta[2] * theta[1]);

b,a

(13)

The coefficients of a list of variables - note the zeros in the output

Coefficients((3), [theta[1], theta[2]]);

b,0,0,a

(14)

Coefficients((3), [theta[1], theta[2]], all);

b,0,0,a

(15)

To receive only the nonzero coefficients use the onlynonzero optional argument

Coefficients((3), [theta[1], theta[2]], onlynonzero);

b,a

(16)

The leading and trailing coefficients

Coefficients((3), [theta[1], theta[2]], leading);

a

(17)

Coefficients((3), [theta[2], theta[1]], trailing);

b

(18)

When the third argument, N, is an integer, and the second argument is a list, the coefficients are computed recursively;

Coefficients((3), [theta[1], theta[2]], 0);

b

(19)

When N is equal to 1, this is also equivalent to differentiation

Coefficients((3), [theta[1], theta[2]], 1);

a

(20)

diff((3), [theta[1], theta[2]]);

a

(21)

Reversing the order of the anticommutative variables in the list,

Coefficients((3), [theta[2], theta[1]], 1);

a

(22)

diff((3), [theta[2], theta[1]]);

a

(23)

When the variables are anticommutative, their square is zero,

theta[1]^2;

0

(24)

Hence,

Coefficients((3), [theta[1], theta[2]], 2);

0

(25)

 

See Also

coeff, coeffs, lcoeff, PDEtools:-Library:-Degree, Physics, Physics conventions, Physics examples, Physics Updates, Tensors - a complete guide, Mini-Course Computer Algebra for Physicists, product, relation, Setup, tcoeff, type/anticommutative

Compatibility

• 

The Physics[Coefficients] command was introduced in Maple 16.

• 

For more information on Maple 16 changes, see Updates in Maple 16.