dlyap
Solve discrete-time Lyapunov or Sylvester equations.
Syntax
X = dlyap(A, B) % Lyapunov Equation
X = dlyap(A, B, C) % Sylvester Equation
X = dlyap(A, B, [], E) % Generalized Lyapunov Equation
Inputs
- A
- Real square matrix.
- B
- Real matrix.
- C
- Real matrix.
- E
- Real matrix.
Outputs
- X
- Returns the solution to the discrete Lyapunov Equation. X is a real matrix.
Examples
Example based on the Sylvester equation:
A = [1.0 2.0 3.0;
6.0 7.0 8.0 ;
9.0 2.0 3.0];
B = [7.0 2.0 3.0;
2.0 1.0 2.0;
3.0 4.0 1.0];
C = [271.0 135.0 147.0;
923.0 494.0 482.0;
578.0 383.0 287.0];
X = dlyap (A, B, C)
X = [Matrix] 3 x 3
-1.90185 -2.33312 -6.71763
-10.50330 10.91915 1.49666
0.04138 -18.39193 -3.43305
Example based on the Lyapunov equation:
A = [3.0 1.0 1.0;
1.0 3.0 0.0;
0.0 0.0 3.0];
B = [25.0 24.0 15.0;
24.0 32.0 8.0;
15.0 8.0 40.0];
X = dlyap (A, B)
X = [Matrix] 3 x 3
-1.60000 -0.70303 0.43636
-0.70303 -3.27273 -1.16364
0.43636 -1.16364 -5.00000
Example based on a generalized Lyapunov equation:
A = [1.0 2.0 3.0;
6.0 7.0 8.0 ;
9.0 2.0 3.0];
B = [1.0 7.0 3.0;
7.0 4.0 -5.0;
3.0 -5 6];
E = [271.0 135.0 147.0;
923.0 494.0 482.0;
578.0 383.0 287.0];
X = dlyap(A, B, [], E)
X = [Matrix] 3 x 3
-0.06977 0.01503 0.11655
0.01503 -0.00147 -0.02679
0.11655 -0.02679 -0.19308
Comments
X = dlyap(A, B) solves the equation A * X * A' - X = -B (Lyapunov equation).
X = dlyap(A, B, C) solves A * B' - X = -C (Sylvester equation).
X = dlyap(A, B, [], E) solves AXA' - EXE' = -B (Generalized discrete-time Lyapunov equation)
Based on the SLICOT library functions SB03MD, SB04QD and SG03AD.