주요 콘텐츠

schur

슈어 분해(Schur Decomposition)

    설명

    T = schur(A)A의 슈어 행렬을 반환합니다.

    예제

    A가 실수 행렬인 경우 T = schur(A,mode)mode"real"이면 실수 준삼각 슈어 행렬을 반환하고, mode"complex"이면 복소수 삼각 슈어 행렬을 반환합니다. A가 복소수 행렬인 경우 schurmode의 값에 관계없이 복소수 슈어 형식을 반환합니다.

    예제

    [U,T] = schur(___)A = U*T*U'를 충족하는 유니타리 행렬 U도 반환합니다.

    예제

    예제

    모두 축소

    3×3 행렬을 만들고 그 슈어 형식을 계산합니다. 결과는 대각선상에 A의 고유값(즉, 1, 2, 3)이 있는 행렬입니다.

    A = [-149 -50 -154; 537 180 546; -27 -9 -25];
    T = schur(A)
    T = 3×3
    
        1.0000   -7.1119  815.8706
             0    2.0000   55.0236
             0         0    3.0000
    
    

    큰 비대각선 요소는 이 행렬이 조건이 나쁜 고유값을 가진다는 것을 나타내며, 이는 condeig 함수를 사용하여 조건수를 구하는 방식으로 확인할 수 있습니다.

    condeig(A)
    ans = 3×1
    
      603.6390
      395.2366
      219.2920
    
    

    복소수 고유값을 가지는 3×3 행렬을 만듭니다.

    A = [3 1 1; 0 2 0; -2 1 1]
    A = 3×3
    
         3     1     1
         0     2     0
        -2     1     1
    
    

    A의 실수 슈어 형식을 계산합니다. 대각선상의 2×2 블록 행렬은 한 쌍의 켤레 복소수 고유값을 나타냅니다.

    T1 = schur(A)
    T1 = 3×3
    
        2.0000    0.3820    1.3764
       -2.6180    2.0000    0.3249
             0         0    2.0000
    
    

    ordeig 함수를 사용하여 실수 슈어 형식의 고유값을 구합니다.

    ordeig(T1)
    ans = 3×1 complex
    
       2.0000 + 1.0000i
       2.0000 - 1.0000i
       2.0000 + 0.0000i
    
    

    mode"complex"로 지정하여 A의 복소수 슈어 형식을 계산합니다. T2의 대각선 요소의 값은 A의 슈어 형식의 고유값이며, ordeig의 출력값과 동일합니다.

    T2 = schur(A,"complex")
    T2 = 3×3 complex
    
       2.0000 + 1.0000i   2.2361 + 0.0000i  -0.3035 - 0.4911i
       0.0000 + 0.0000i   2.0000 - 1.0000i   1.2858 + 0.1159i
       0.0000 + 0.0000i   0.0000 + 0.0000i   2.0000 + 0.0000i
    
    

    3×3 마방진 행렬을 만들고 그 슈어 분해 인자를 계산합니다.

    A = magic(3);
    [U,T] = schur(A)
    U = 3×3
    
       -0.5774   -0.8131   -0.0749
       -0.5774    0.4714   -0.6667
       -0.5774    0.3416    0.7416
    
    
    T = 3×3
    
       15.0000    0.0000   -0.0000
             0    4.8990   -3.4641
             0         0   -4.8990
    
    

    기계 정밀도 내에서 A-U*T*U'U'*U - eye(size(U))의 노름이 0인지 확인합니다.

    norm(A-U*T*U')
    ans = 
    6.7711e-15
    
    norm(U'*U - eye(size(U)))
    ans = 
    5.0471e-16
    

    입력 인수

    모두 축소

    입력 행렬로, 실수 또는 복소수 정사각 행렬로 지정됩니다. A는 조밀 행렬이어야 합니다.

    데이터형: single | double
    복소수 지원 여부:

    슈어 형식 시스템으로, "real" 또는 "complex"로 지정됩니다.

    • A가 실수인 경우 mode"real" 또는 "complex"일 수 있습니다. mode"real"인 경우 schur는 실수 준삼각 행렬 T를 반환합니다. mode"complex"인 경우 schur는 복소수 삼각 행렬 T를 반환합니다.

    • A가 복소수인 경우 schurmode를 무시하고 대각선상에 A의 고유값이 있는 상부 삼각 행렬인 복소수 슈어 형식을 반환합니다.

    출력 인수

    모두 축소

    슈어 벡터로, A = U*T*U'를 충족하는 유니타리 행렬로 반환됩니다. U의 열은 각각 슈어 벡터에 대응됩니다. 슈어 행렬 T가 삼각 행렬인 경우 U의 첫 번째 열은 T의 첫 번째 요소에 대응하는 A의 고유벡터입니다.

    슈어 행렬로, 실수 또는 복소수 정사각 행렬로 반환됩니다. mode"complex"이면 T는 삼각 행렬입니다. mode"real"이면 T는 준삼각 행렬입니다.

    세부 정보

    모두 축소

    • rsf2csf 함수를 사용하여 행렬의 실수 슈어 형식을 복소수 슈어 형식으로 변환할 수 있습니다. [U,T] = rsf2csf(A)[U,T] = schur(A,"complex")와 동일한 출력값을 반환합니다.

    확장 기능

    모두 확장

    버전 내역

    R2006a 이전에 개발됨

    참고 항목

    | | | | |