Main Content

sqrtm

설명

예제

X = sqrtm(A)는 행렬 A의 주제곱근 즉, X*X = A를 반환합니다.

X는 모든 고유값에 음수가 아닌 실수부가 있는 고유한 제곱근입니다. A에 음수 실수부가 있는 고유값이 있는 경우 복소수 결과가 생성됩니다. A가 특이 행렬인 경우 A에는 제곱근이 없을 수 있습니다. 정확한 특이성이 감지되는 경우 경고가 출력됩니다.

또한 [X,residual] = sqrtm(A)는 잔차 residual = norm(A-X^2,1)/norm(A,1)을 반환합니다. 정확한 특이성이 감지되는 경우 이 구문은 경고를 출력하지 않습니다.

[X,alpha,condx] = sqrtm(A)는 안정성 인자 alpha와, X의 행렬 제곱근 조건수의 추측값을 1-노름 condx에 반환합니다. 잔차 norm(A-X^2,1)/norm(A,1)은 대략 n*alpha*eps로 제한되고 X의 1-노름 상대 오차는 대략 n*alpha*condx*eps로 제한됩니다. 여기서 n = max(size(A))입니다.

예제

모두 축소

네 번째 차분 연산자, A의 행렬 표현을 만듭니다. 이 행렬은 양의 정부호 대칭 행렬입니다.

A = [5 -4 1 0 0; -4 6 -4 1 0; 1 -4 6 -4 1; 0 1 -4 6 -4; 0 0 1 -4 6]
A = 5×5

     5    -4     1     0     0
    -4     6    -4     1     0
     1    -4     6    -4     1
     0     1    -4     6    -4
     0     0     1    -4     6

sqrtm을 사용하여 A의 양의 정부호 고유 제곱근을 계산합니다. X는 두 번째 차분 연산자의 행렬 표현입니다.

X = round(sqrtm(A))
X = 5×5

     2    -1     0     0     0
    -1     2    -1     0     0
     0    -1     2    -1     0
     0     0    -1     2    -1
     0     0     0    -1     2

4개의 제곱근이 있는 행렬 A가 있다고 가정합니다.

A=[7101522]

Y1Y2라는 A의 제곱근 2개가 주어집니다.

Y1=[1.56671.74082.61124.1779]

Y2=[1234]

Y1Y2가 행렬 A의 제곱근임을 확인합니다.

A = [7 10; 15 22];
Y1 = [1.5667 1.7408; 2.6112 4.1779];
A - Y1*Y1
ans = 2×2
10-3 ×

   -0.1258   -0.1997
   -0.2995   -0.4254

Y2 = [1 2; 3 4];
A - Y2*Y2
ans = 2×2

     0     0
     0     0

A의 나머지 두 제곱근은 -Y1-Y2입니다. 이들 제곱근 4개 모두 A의 고유값과 고유벡터에서 구할 수 있습니다. [V,D] = eig(A)인 경우, 제곱근의 형식은 일반 형식 Y = V*S/V입니다. 여기서, D = S*S이고 S에서의 네 가지 부호 선택에 따라 Y의 네 가지 다른 값이 생성됩니다.

S=[±0.372300±5.3723]

sqrtm을 사용하여 A의 제곱근을 계산합니다. sqrtm 함수는 양의 제곱근을 선택하고 Y2가 더 자연스러운 결과인 듯 보여도, Y1을 생성합니다.

Y = sqrtm(A)
Y = 2×2

    1.5667    1.7408
    2.6112    4.1779

입력 인수

모두 축소

입력 행렬로, 정사각 행렬로 지정됩니다.

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

  • A = [0 1; 0 0]과 같은 일부 행렬에는 실수든 복소수이든 제곱근이 없고 sqrtm이 제곱근을 생성할 것이라고 예상할 수 없습니다.

알고리즘

sqrtm에 사용되는 알고리즘은 [3]에 설명되어 있습니다.

참고 문헌

[1] N.J. Higham, “Computing real square roots of a real matrix,” Linear Algebra and Appl., 88/89, pp. 405–430, 1987

[2] Bjorck, A. and S. Hammerling, “A Schur method for the square root of a matrix,” Linear Algebra and Appl., 52/53, pp. 127–140, 1983

[3] Deadman, E., Higham, N. J. and R. Ralha, “Blocked Schur algorithms for computing the matrix square root,” Lecture Notes in Comput. Sci., 7782, Springer-Verlag, pp. 171–182, 2013

확장 기능

버전 내역

R2006a 이전에 개발됨

참고 항목

| |