ml_caredl_sgn

Continuous-time Riccati equation solver.

Contents

Syntax

[X, Y, info] = ml_caredl_sgn(A, B, C)
[X, Y, info] = ml_caredl_sgn(A, B, C, [])
[X, Y, info] = ml_caredl_sgn(A, B, C, [], opts)
[X, Y, info] = ml_caredl_sgn(A, B, C, E)
[X, Y, info] = ml_caredl_sgn(A, B, C, E, opts)

Description

Computes the solution matrix of the standard dual algebraic Riccati
equations
    A'X + XA  - XBB'X + C'C = 0,                                    (1)
    AY  + YA' - YC'CY + BB' = 0,                                    (2)
or of the generalized dual Riccati equations
    A'XE + E'XA - E'XBB'XE + C'C = 0,                               (3)
    AYE' + EYA' - EYC'CYE' + BB' = 0,                               (4)
using the factored sign function iteration. 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
       equation (1) is solved
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
  • 'primal' - equation (1) or (3) is solved
  • 'dual' - equation (2) or (4) is solved
  • 'both' - both equations are solved
default: 'both'
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+01*n*eps

Output

X    - solution matrix of (1) or (2)
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

ml_care_nwt_fac | ml_abe_sgn_fac