주요 콘텐츠

lyap

연속시간 랴푸노프 방정식 풀기

설명

lyap를 사용하여 랴푸노프 방정식의 특수 형식과 일반 형식을 풉니다. 랴푸노프 방정식은 안정성 이론, 시스템의 RMS(제곱평균제곱근) 동작 연구와 같은 제어의 여러 분야에서 대두됩니다.

X = lyap(A,Q)는 랴푸노프 방정식 AX+XAT+Q=0의 해를 반환합니다. 여기서 AQ는 동일한 크기의 정사각 행렬을 나타냅니다. Q가 대칭 행렬인 경우 해 X도 대칭 행렬입니다.

예제

X = lyap(A,B,C)는 실베스터 방정식 AX+XB+C=0의 해를 반환합니다. 여기서 입력값 A는 m×m 행렬이고, 입력값 B는 n×n 행렬이며, CX는 모두 m×n 행렬입니다.

예제

X = lyap(A,Q,[],E)는 일반화된 랴푸노프 방정식 AXET+EXAT+Q=0을 풉니다. 여기서 Q는 대칭 행렬입니다. 이 구문에는 빈 대괄호 []을 사용해야 합니다. 괄호 안에 값을 넣으면 함수가 오류를 반환합니다.

예제

예제

모두 축소

이 예제에서는 랴푸노프 방정식을 푸는 방법을 보여줍니다.

AX+XAT+Q=0,

여기서

A=[12-3-4]Q=[3111]입니다.

A 행렬은 안정적이고 Q 행렬은 양의 정부호입니다.

행렬을 정의합니다.

A = [1 2; -3 -4];  
Q = [3 1; 1 1];

랴푸노프 방정식을 풀기 위해 lyap 함수를 사용합니다.

X = lyap(A,Q)
X = 2×2

    6.1667   -3.8333
   -3.8333    3.0000

이 함수는 대칭 행렬 X를 반환합니다. X가 양의 정부호 행렬인지 확인하기 위해 고유값을 계산할 수 있습니다.

eig(X)
ans = 2×1

    0.4359
    8.7308

해는 양의 정부호 행렬입니다.

이 예제에서는 실베스터 방정식을 푸는 방법을 보여줍니다.

AX+XB+C=0,

여기서 A=5, B=[4333], C=[21]입니다.

행렬을 정의합니다.

A = 5;
B = [4 3; 3 3];
C = [2 1];

lyap 함수를 사용하여 A, B, C의 이러한 값에 대한 실베스터 방정식을 풉니다.

X = lyap(A,B,C)
X = 1×2

   -0.2063   -0.0476

결과는 1×2 행렬입니다.

이 예제에서는 일반화된 랴푸노프 방정식 AXET+EXAT+Q=0을 푸는 방법을 보여줍니다.

난수 값으로 구성된 행렬 AE를 생성합니다.

rng(0)
A = rand(2)
A = 2×2

    0.8147    0.1270
    0.9058    0.9134

E = randn(2)
E = 2×2

    0.3188   -0.4336
   -1.3077    0.3426

복소수 값으로 구성된 대칭 Q 행렬을 생성합니다.

Q = complex(randn(2),randn(2));
Q = Q*Q'
Q = 2×2 complex

  15.6642 + 0.0000i   5.6211 + 4.1271i
   5.6211 - 4.1271i  16.9265 + 0.0000i

일반화된 랴푸노프 방정식을 풉니다.

X = lyap(A,Q,[],E)
X = 2×2 complex

  -2.0000 + 0.0000i  19.6841 - 3.6552i
  19.6841 + 3.6552i  20.9934 + 0.0000i

X는 2×2 대칭 행렬입니다.

입력 인수

모두 축소

입력 행렬로, 다음 크기의 행렬로 지정됩니다.

  • A, Q, Em×m 정사각 행렬

  • Bn×n 행렬

  • Cm×n 행렬

데이터형: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | fi
복소수 지원 여부:

출력 인수

모두 축소

해로, 행렬로 반환됩니다. 랴푸노프 방정식의 경우 해 Xm×m 정사각 행렬입니다. 실베스터 방정식의 경우 해 XC와 동일한 크기의 행렬입니다.

제한 사항

연속 랴푸노프 방정식은 A의 고유값 α1,α2,...,αnB의 고유값 β1,β2,...,βn이 모든 쌍 (i,j)에 대해 αi+βj0을 충족할 경우 유일한 해를 갖습니다.

이 조건을 위반하는 경우 lyap는 다음 오류 메시지를 생성합니다.

Solution does not exist or is not unique.

알고리즘

lyap는 랴푸노프 방정식의 경우 SLICOT 루틴 SB03MD 및 SG03AD를, 실베스터 방정식의 경우 SB04MD(SLICOT) 및 ZTRSYL(LAPACK)을 사용합니다.

참고 문헌

[1] Bartels, R. H., and G. W. Stewart. “Algorithm 432 [C2]: Solution of the Matrix Equation AX + XB = C [F4].” Communications of the ACM 15, no. 9 (September 1972): 820–26. https://doi.org/10.1145/361573.361582.

[2] Barraud, A. “A Numerical Algorithm to solveA^{T}XA - X = Q.” IEEE Transactions on Automatic Control 22, no. 5 (October 1977): 883–85. https://doi.org/10.1109/TAC.1977.1101604.

[3] Hammarling, S. J. “Numerical Solution of the Stable, Non-Negative Definite Lyapunov Equation Lyapunov Equation.” IMA Journal of Numerical Analysis 2, no. 3 (1982): 303–23. https://doi.org/10.1093/imanum/2.3.303.

[4] Penzl, Thilo. “Numerical Solution of Generalized Lyapunov Equations.” Advances in Computational Mathematics 8, no. 1 (January 1, 1998): 33–48. https://doi.org/10.1023/A:1018979826766.

[5] Golub, G., S. Nash, and C. Van Loan. “A Hessenberg-Schur Method for the Problem AX + XB= C.” IEEE Transactions on Automatic Control 24, no. 6 (December 1979): 909–13. https://doi.org/10.1109/TAC.1979.1102170.

버전 내역

R2006a 이전에 개발됨

참고 항목

|