pyFDN.complete_orthogonal#

pyFDN.complete_orthogonal(A, num_io)[source]#

Solve the orthogonal completion problem for feedback matrix A.

Finds b, c, d such that V = [[A, b], [c, d]] is orthogonal, where d is (num_io, num_io). The num_io smallest singular values of A must be strictly less than 1.

The construction uses the SVD of A: for the num_io smallest singular values σ, with left/right singular vectors U_s and V_s

b = U_s * diag(sqrt(1 - σ²))
c = diag(sqrt(1 - σ²)) * V_s^T
d = -diag(σ)
Parameters:
  • A (ndarray) – Feedback matrix of shape (N, N).

  • num_io (int) – Number of input/output channels.

Return type:

tuple[ndarray, ndarray, ndarray, ndarray]

Returns:

(b, c, d, V) with shapes (N, num_io), (num_io, N), (num_io, num_io), and (N + num_io, N + num_io) respectively.