ml_pcare_nwt_fac

Positive continuous-time Riccati equation solver.

Contents

Syntax

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

Description

Computes the full-rank solutions of the standard positive Riccati
equation
    A'X + XA + XBB'X +  C'C = 0,                                    (1)
or of the generalized positive Riccati equation
    A'XE + E'XA + E'XBB'XE + C'C = 0,                               (2)
with X = Z'*Z, using the low-rank Newton iteration. It is assumed that
the eigenvalues of A (or s*E - A) lie in the open left half-plane and
that the equation (1) (or (2)) has a solution.

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
CompTol
nonnegative scalar, tolerance for the row compression during the iteration
default: 1.0e-02*sqrt(n*eps)
Info
{0, 1}, used to disable/enable display of verbose status information during iteration steps
default: 0
lyapopts
structure, containing the optional parameters for the Lyapunov equation solver used in every iteration step, 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    - low-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

A. Varga, On computing high accuracy solutions of a class of Riccati equations, Control-Theory and Advanced Technology 10 (4) (1995) 2005--2016.

See Also

ml_care_nwt_fac | ml_icare_ric_fac