datablock()

datablock()#

abstract static OpInfOperator.datablock(states: ndarray, inputs=None) ndarray[source]#

Construct the data matrix block corresponding to the operator.

For a nonparametric operator \(\Ophat_{\ell}(\qhat,\u) = \Ohat_{\ell}\d_{\ell}(\qhat, \u)\), the data matrix block corresponding to the data pairs \(\{(\qhat_j,\u_j)\}_{j=0}^{k-1}\) is the matrix

\[\begin{split}\D\trp = \left[\begin{array}{c|c|c|c} & & & \\ \d_{\ell}(\qhat_0,\u_0) & \d_{\ell}(\qhat_1,\u_1) & \cdots & \\d_{\ell}(\qhat_{k-1},\u_{k-1}) \\ & & & \end{array}\right] \in \RR^{d \times k}.\end{split}\]

Here, states is the snapshot matrix \([~\qhat_0~~\cdots~~\qhat_{k-1}~]\) and inputs is the (optional) input matrix \([~\u_0~~\cdots~~\u_{k-1}~]\).

Child classes should decorate this method with @staticmethod.

Parameters:
states(r, k) or (k,) ndarray

State vectors. Each column is a single state vector. If one dimensional, it is assumed that \(r = 1\).

inputs(m, k) or (k,) ndarray or None

Input vectors. Each column is a single input vector. If one dimensional, it is assumed that \(m = 1\).

Returns:
block(d, k) or (d,) ndarray

Data matrix block. Here, \(d\) is entries.shape[1].