Main Content

lyap

連続リアプノフ方程式の解

構文

lyap
X = lyap(A,Q)
X = lyap(A,B,C)
X = lyap(A,Q,[],E)

説明

lyap は、特別な、または一般的なリアプノフ方程式を解きます。リアプノフ方程式は、システムの RMS 動作の安定性理論や調査など、さまざまな制御領域で使用されます。

X = lyap(A,Q) はリアプノフ方程式を解きます。

AX+XAT+Q=0

ここで A と Q は同じサイズの正方行列を表します。Q が対称行列の場合、解 X も対称行列になります。

X = lyap(A,B,C) は Sylvester 方程式を解きます。

AX+XB+C=0

行列 ABC の次元は互換性がなければなりませんが、正方行列である必要はありません。

X = lyap(A,Q,[],E) は、一般化されたリアプノフ方程式を解きます。

AXET+EXAT+Q=0

ここで、Q は対称行列です。この関数には空の大かっこ [] を使用しなければなりません。かっこの中に値を入れると、エラーが発生します。

制限

A の固有値 α1,α2,...,αn および B の固有値 β1,β2,...,βn が次の条件を満たす場合、連続リアプノフ方程式には一意の解があります。

αi+βj0forallpairs(i,j)

この条件に違反が生じると、lyap はエラー メッセージを生成します。

Solution does not exist or is not unique.

例 1

リアプノフ方程式を解く

リアプノフ方程式

AX+XAT+Q=0

を解きます。ここで、

A=[1234]Q=[3111]

行列 A は安定で、Q 行列は正定値です。

A = [1 2; -3 -4];  
Q = [3 1; 1 1];
X = lyap(A,Q)
これらのコマンドは、以下の X 行列を返します。
X =

    6.1667   -3.8333
   -3.8333    3.0000
固有値を計算して、その X が正定値であることを確認できます。

eig(X)

コマンドは、次の結果を返します。

ans =

    0.4359
    8.7308

例 2

Sylvester 方程式を解く

Sylvester 方程式

AX+XB+C=0

ここで

A=5B=[4343]C=[21]

A = 5;
B = [4 3; 4 3];
C = [2 1];
X = lyap(A,B,C)

これらのコマンドは、以下の X 行列を返します。

X =

   -0.2000   -0.0500

アルゴリズム

lyap はリアプノフ方程式に SLICOT ルーチン SB03MD および SG03AD を、Sylvester 方程式に SB04MD (SLICOT) と ZTRSYL (LAPACK) を使用します。

参考文献

[1] Bartels, R.H. and G.W. Stewart, "Solution of the Matrix Equation AX + XB = C," Comm. of the ACM, Vol. 15, No. 9, 1972.

[2] Barraud, A.Y., “A numerical algorithm to solve A XA - X = Q,” IEEE® Trans. Auto. Contr., AC-22, pp. 883–885, 1977.

[3] Hammarling, S.J., “Numerical solution of the stable, non-negative definite Lyapunov equation,” IMA J. Num. Anal., Vol. 2, pp. 303–325, 1982.

[4] Penzl, T., ”Numerical solution of generalized Lyapunov equations,” Advances in Comp. Math., Vol. 8, pp. 33–48, 1998.

[5] Golub, G.H., Nash, S. and Van Loan, C.F., “A Hessenberg-Schur method for the problem AX + XB = C,” IEEE Trans. Auto. Contr., AC-24, pp. 909–913, 1979.

バージョン履歴

R2006a より前に導入

参考

|