# Expanding a Matrix Vector product in powers of epsilon

I am attempting a perturbation expansion in Mathematica. As part of this, I would like to expand a matrix-vector product where the vectors are given in powers of epsilon. Eventually, I'd like to generate a CoefficientList in powers of epsilon of something like

$Assumptions=Q ∈ Vectors[3] && P ∈ Vectors[3] && A ∈ Matrices[{3, 3}]; A . (P ϵ + Q ϵ^2)  But first I would like to expand the second expression as ϵ A.P + ϵ^2 A.Q  but mathematica doesn't seem to want to expand it. I thought that specifying $$A$$, $$P$$, and $$Q$$ as Matrices and Vectors but so far it hasn't been helpful. I've looked at this question and this one, which come close to what I'm asking. Eventually, I would like to be able to substitute in a particular matrix for $$A$$ but I think that while generating the sequence of equations at different orders in $$\epsilon$$ it makes more sense to leave it unspecified. ## 1 Answer $Assumptions = Q ∈ Vectors[3] && P ∈ Vectors[3] && A ∈ Matrices[{3, 3}];
TensorExpand[A . (P ϵ + Q ϵ^2)]


ϵ A . P + ϵ^2 A . Q

• (+1) from me. Carl, do you know why Distribute does not work nicely even with an assumption on ε? The only reason I am asking is because TensorExpand[A.(P + A)] gives as output A.P + MatrixPower[A, 2] whilst Distribute[A.(P + A)] returns the more natural A.A + A.P.
– bmf
Commented Apr 26, 2022 at 0:38