Moltiplica  a3·x2+b·a2+b·x  e  a+x
(1)   come polinomi in a,
(2)   come polinomi in x.

(1)   (a3·x2+b·a2+b·x)·(a+x)  →  a4·x2+b·a3+b·x·a+a3·x3+b·a2·x+b·x2
→   x2·a4 + (b+x3)·a3 + b·x·a2 + b·x·a + b·x2

(2)   (a3·x2+b·a2+b·x)·(a+x)  →  a4·x2+b·a3+b·x·a+a3·x3+b·a2·x+b·x2
→   a3·x3 + (a4+b)·x2 + (a2·b+a·b)·x + a3·b

Con WolframAlpha posso raccogliere rispetto ad a o ad x ed ottenere:
Collect[(a^3*x^2+b*a^2+b*x)*(a+x),a]
    a^4 x^2 + a^3 (b+x^3) + a^2 bx + a bx + bx^2
Collect[(a^3*x^2+b*a^2+b*x)*(a+x),x]
    x^2 (a^4+b) + a^3b + a^3 x^3 + x (a^2b+ab)
(che poi posso ordinare).

  Per altri commenti: funzioni polinomiali neGli Oggetti Matematici.