This is an old revision of the document!
Collect[var1, var2, …, transformations]
collects together terms involving the same powers of specified vars and applies specified transformation to the expression that forms the coefficient of each term obtained. Collect
will insert Kronecker deltas or metric tensors in order to “uncontract” indices and factor out tensorial parts.Collect
is similar to other CASs.
Collect terms involving x
:
println Collect['x'] >> 'a*x + b*x + с*x**2 + d*x**2 + f*e'.t
> (a + b)*x + (c + d)*x**2 + f*e
Collect powers of x
and factor coefficients:
println Collect['x', Factor] >> '(1 + a + x)**4'.t
> x**4 + 4*x**3*(a+1) + 6*x**2*(a+1)**2 + 4*(a+1)**3*x + (a+1)**4
Collect terms involving tensor A_i
:
println Collect['A_i'] >> 'A_m*B_n + A_n*C_m + B_n*C_m'.t
> A_{a}*(C_{m}*d_{n}^{a} + B_{n}*d_{m}^{a}) + B_{n}*C_{m}
Collect terms involving same tensorial function F_ij[x_ab]
:
def t = 'F_ij[t_ab]*t^ij + F_ab[t_pq]*f^ba + F_ij[f_ij]*t^ij + F_ij[f_ij]*f^ji'.t println Collect['F_ij[a_ij]'] >> t
> (t^{ij}+f^{ji})*F_{ij}[t_{ab}]+(t^{ij}+f^{ji})*F_{ij}[f_{ij}]
Collect with respect to two variables:
def t = 'A_a * B^b + A^b * B_a + A_a * C^b + A^b * D_a'.t println Collect['A_m', 'B_m'] >> t
> A_c*B^d*(d_a^c*d^b_d+g_ad*g^bc)+(C^b*d_a^c+g^bc*D_a)*A_c