How to express cubic (and higher) forms in matrix-vector notation?

163 Views Asked by At

In linear algebra we often learn about linear functions $$f_1(x) = Ax+b$$ And Quadratic forms ; $$f_2(x) = x^tAx + Bx + c$$ However we could easily imagine arbitrary high level polynomials:

$$\sum c_{i} x_{d_{i1}}^{e_{i1}}x_{d_{i2}}^{e_{i2}}$$ For some lists (vectors) of indexes d and exponents e.

How can we systematically expand to allow for higher order terms ?

I will show own work on a cubic term below. Let us first recursively define $$\cases{X_k = \text{vec}(x^t X_{k-1})\\\\ X_0 = 1}$$

This way we can rewrite the two first like so: $$f_1(x) = A X_1 + bX_0$$ $$f_2(x) = AX_2 + BX_1 + cX_0$$ Now following this pattern we can write $$f_3(x) = AX_3 + BX_2 + CX_1 + dX_0$$ or a general case more compactly:

$$f_n(x) = a^t[X_n,X_{n-1},\cdots,X_0]$$

One really long scalar product.

Is this walking over the bridge for water?

if we instead define

$$\cases{X_k = \text{vec}([x;1]^t X_{k-1})\\\\ X_0 = 1}$$

Suddenly we don't even have to use more than one term. But maybe it gives us other drawbacks?

Are there any widely used conventions for how to write this ?