ml_caredl_sgn_fac
Continuous-time dual Riccati equation solver.
Contents
Syntax
[R, L, info] = ml_caredl_sgn_fac(A, B, C) [R, L, info] = ml_caredl_sgn_fac(A, B, C, []) [R, L, info] = ml_caredl_sgn_fac(A, B, C, [], alpha) [R, L, info] = ml_caredl_sgn_fac(A, B, C, [], alpha, opts)
[R, L, info] = ml_caredl_sgn_fac(A, B, C, E, []) [R, L, info] = ml_caredl_sgn_fac(A, B, C, E, alpha) [R, L, info] = ml_caredl_sgn_fac(A, B, C, E, alpha, opts)
Description
Computes the solution matrix of the standard dual continuous-time algebraic Riccati equations
A'*X + X*A + alpha * X*B*B'*X + C'*C = 0, (1) A*Y + Y*A' + alpha * Y*C'*C*Y + B*B' = 0, (2)
or of the generalized dual Riccati equations
A'*X*E + E'*X*A + alpha * E'*X*B*B'*X*E + C'*C = 0, (3) A*Y*E' + E*Y*A' + alpha * E*Y*C'*C*Y*E' + B*B' = 0, (4)
using the factored sign function iteration, such that X = R*R' and Y = L*L'. It is assumed that A (and E) is invertible.
Input
- A - matrix with dimensions n x n in (1), (2) or (3), (4)
- B - matrix with dimensions n x m in (1), (2) or (3), (4)
- C - matrix with dimensions p x n in (1), (2) or (3), (4)
- E - matrix with dimensions n x n in (3), (4), if empty the standard equations (1), (2) are solved
- alpha - real scalar, scaling of the quadratic term, if empty alpha is set to -1
- opts - structure, containing the following optional entries:
Parameter | Meaning |
AbsTol | nonnegative scalar, tolerance for the absolute error in the last iteration step default: 0 |
CompTol | nonnegative scalar, tolerance for the row and column compression during the iteration default: 1.0e-02*sqrt(n*eps) |
EqnType | character array, switch for only computing the solution of one type of the above equations
|
Info | {0, 1}, used to disable/enable display of verbose status information during iteration steps default: 0 |
MaxIter | positive integer, maximum number of iteration steps default: 100 |
RelTol | nonnegative scalar, tolerance for the relative error in the last iteration step default: 1.0e+02*n*eps |
Output
- R - full-rank solution factor of (1) or (3), s.t. X = R*R'
- L - full-rank solution factor of (2) or (4), s.t. Y = L*L'
- info - structure, containing the following information:
Entry | Meaning |
AbsErr | vector, containing the absolute change of the iteration matrix in each iteration step |
IterationSteps | number of performed iteration steps |
RelErr | vector, containing the relative change of the iteration matrix in each iteration step |
Reference
P. Benner, P. Ezzatti, E. S. Quintana-Orti, A. Remon, A factored variant of the Newton iteration for the solution of algebraic Riccati equations via the matrix sign function, Numer. Algorithms 66 (2) (2014) 363--377. https://doi.org/10.1007/s11075-013-9739-2
See Also