lyap
連続リアプノフ方程式の解
構文
lyap
X = lyap(A,Q)
X = lyap(A,B,C)
X = lyap(A,Q,[],E)
説明
lyap
は、特別な、または一般的なリアプノフ方程式を解きます。リアプノフ方程式は、システムの RMS 動作の安定性理論や調査など、さまざまな制御領域で使用されます。
X = lyap(A,Q)
はリアプノフ方程式を解きます。
ここで A と Q は同じサイズの正方行列を表します。Q が対称行列の場合、解 X
も対称行列になります。
X = lyap(A,B,C)
は Sylvester 方程式を解きます。
行列 A
、B
、C
の次元は互換性がなければなりませんが、正方行列である必要はありません。
X = lyap(A,Q,[],E)
は、一般化されたリアプノフ方程式を解きます。
ここで、Q は対称行列です。この関数には空の大かっこ []
を使用しなければなりません。かっこの中に値を入れると、エラーが発生します。
制限
A の固有値 および B の固有値 が次の条件を満たす場合、連続リアプノフ方程式には一意の解があります。
この条件に違反が生じると、lyap
はエラー メッセージを生成します。
Solution does not exist or is not unique.
例
例 1
リアプノフ方程式を解く
リアプノフ方程式
を解きます。ここで、
行列 A は安定で、Q 行列は正定値です。
A = [1 2; -3 -4]; Q = [3 1; 1 1]; X = lyap(A,Q)
X = 6.1667 -3.8333 -3.8333 3.0000
eig(X)
コマンドは、次の結果を返します。
ans = 0.4359 8.7308
例 2
Sylvester 方程式を解く
Sylvester 方程式
ここで
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 より前に導入