PolynomialLifter#

class PolynomialLifter(orders: tuple)[source]#

Polynomial lifting map \(q \to (q, q^2, q^3, ...)\).

Parameters:
orderstuple

Polynomial orders in the learning variables. For example, orders=(1, 2, 4) means the lifting transformation is given by \(q \to (q, q^2, q^4)\). The orders need not be positive integers, e.g., orders=(-1, 0.5) indicates \(q \to (1/q, \sqrt{q})\).

Properties:
num_variables#

Number of learning variables.

orders#

Polynomial orders in the learning variables. For example, orders=(1, 2, 4) means the lifting transformation is given by \(q \to (q, q^2, q^4)\). The orders need not be positive integers, e.g., orders=(-1, 0.5) indicates \(q \to (1/q, \sqrt{q})\).

Methods:

lift

Apply the lifting map \(q \to (q, q^2, ...)\).

lift_ddts

Get the time derivatives of the lifted variables, \((q_t, 2qq_t, ...)\).

unlift

Apply the reverse lifting map \((q, q^2, ...) \to q\).

verify

Verify that lift() and unlift() are consistent and that lift_ddts(), if implemented, gives valid time derivatives.