dymad.sako.rals¶
Functions
|
Estimate pseudospectrum over a grid. |
|
Standalone, naive implementation of resolvent analysis, mainly for sanity check and suitable for small-scale problems. |
Classes
|
Resolvent analysis for low-rank linear systems |
- class dymad.sako.rals.RALowRank(U, T, V, dt=1.0)¶
Bases:
objectResolvent analysis for low-rank linear systems
For continuous-time system,
dot{x} = Ax+Bu
Resolvent operator H(s) = (sI-A)^{-1} B
Following cases are considered:
Low-dimensional full-order systems
(1.1) Regular resolvent
argmax || H(s)u || / ||u||, H(s) = (sI-A)^{-1} B
(1.2) Constrained resolvent, where input & output are in subspace U
argmax || UH_r(s)a || / ||Ua||, H_r(s) = (sI-PAU)^{-1}
where PU=I_r. B is ignored. An alternative view for constrained resolvent is to think as
argmax || YH(s)Ua || / ||Ua|| = || Q^HH(s)Qg || / ||g||, U=QR, Ra=g
where Y=QQ^H is the projector onto U.
High-dimensional low-rank systems, where A = UTV^H, with V^H U = I_r The formulation is essentially the constrained resolvent, with subspace U,
argmax || UH_r(s)a || / ||Ua||, H_r(s) = (sI-T)^{-1} = || RH_r(s)R^{-1}g || / ||g||, U=QR, Ra=g
In mode=’disc’, discrete-time matrix will be used Ad = U exp(T*dt) V^H
- Parameters:
U (np.ndarray) – Left orthogonal factor of A
T (np.ndarray) – Eigen block of A
V (np.ndarray) – Right orthogonal factor of A
dt (float) – Time step for discrete-time systems, default is 1.0
- dymad.sako.rals.estimate_pseudospectrum(grid, estimator, return_vec=False, **kwargs)¶
Estimate pseudospectrum over a grid.
- Parameters:
grid (np.ndarray) – List of points on complex plane
estimator (Callable) – Function to evaluate gain and I/O modes at a point Args: complex point, return_vec, kwargs
verbose (bool) – Whether to print info.
return_vec (bool) – If return I/O modes
kwargs – Args for estimator
- dymad.sako.rals.resolvent_analysis(z, return_vec=False, A=None, B=None, U=None, ord=1)¶
Standalone, naive implementation of resolvent analysis, mainly for sanity check and suitable for small-scale problems. Uses SVD to compute resolvent of A at a given point z, and return the first ord modes and gains.
- Parameters:
z (np.ndarray) – Point at which to compute resolvent
return_vec (bool) – If return I/O modes
A (np.ndarray) – The linear operator
B (np.ndarray) – The input matrix, only used if U is None
U (np.ndarray) – The constraining subspace
ord (int) – Number of modes and gains to return
- Return type:
ndarray|tuple[ndarray,ndarray,ndarray]