ml_care_nwt_fac

Continuous-time Riccati equation solver.

Contents

Syntax

[Z, info] = ml_care_nwt_fac(A, B, C)
[Z, info] = ml_care_nwt_fac(A, B, C, [])
[Z, info] = ml_care_nwt_fac(A, B, C, [], opts)
[Z, info] = ml_care_nwt_fac(A, B, C, E)
[Z, info] = ml_care_nwt_fac(A, B, C, E, opts)

Description

Computes the full-rank solutions of the standard algebraic Riccati
equation
    A'X + XA - XBB'X + C'C = 0,                                     (1)
or of the generalized Riccati equation
    A'XE + E'XA - E'XBB'XE + C'C = 0,                               (2)
with X = Z'*Z, using the Newton-Kleinman iteration. It is assumed that
the eigenvalues of A (or s*E - A) lie in the open left half-plane,
otherwise a stabilizing initial feedback K0 is given as parameter.

Input

A    - matrix with dimensions n x n in (1) or (2)
B    - matrix with dimensions n x m in (1) or (2)
C    - matrix with dimensions p x n in (1) or (2)
E    - matrix with dimensions n x n in (2), 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
Info
{0, 1}, used to disable/enable display of verbose status information during iteration steps
default: 0
K0
matrix with dimensions m x n, used to stabilize the spectrum of s*E - A, such that s*E - (A - BK0) has only stable eigenvalues
lyapopts
structure, containing the optional parameters for Lyapunov equation solver, see ml_lyap_sgn_fac
default: struct()
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

Z    - full-rank solution factor of (1) or (2), such that X = Z'*Z
info - structure, containing the following information:

Entry
Meaning
AbsErr
vector, containing the absolute error of the solution matrix in each iteration step
infoLYAP
array of structs, containing information about the used Lyapunov equations solver for every iteration step, see ml_lyap_sgn_fac
IterationSteps
number of performed iteration steps
RelErr
vector, containing the relative error of the solution matrix in each iteration step

Reference

P. Benner, J. Saak, Numerical solution of large and sparse continuous time algebraic matrix Riccati and Lyapunov equations: a state of the art survey, GAMM Mitteilungen 36 (1) (2013) 32--52. https://doi.org/10.1002/gamm.201310003

See Also

ml_icare_ric_fac | ml_pcare_nwt_fac