Main Content

invhilb

힐베르트 행렬(Hilbert Matrix)의 역행렬

설명

예제

H = invhilb(n)은 약 15보다 작은 n에 대해 엄밀한(Exact) 힐베르트 행렬의 엄밀한(Exact) 역행렬을 생성합니다. n이 이보다 더 크면 invhilb 함수는 힐베르트 행렬의 역행렬에 대한 근삿값을 생성합니다.

H = invhilb(n,classname)은 클래스 classname의 행렬을 반환하며, 이 클래스 값은 'single' 또는 'double'일 수 있습니다.

예제

모두 축소

4차 힐베르트 행렬의 역행렬을 계산합니다.

invhilb(4)
ans = 4×4

          16        -120         240        -140
        -120        1200       -2700        1680
         240       -2700        6480       -4200
        -140        1680       -4200        2800

입력 인수

모두 축소

행렬 차수로, 음이 아닌 정수 스칼라로 지정됩니다.

예: invhilb(10)

데이터형: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical

행렬 클래스로, 'double' 또는 'single'로 지정됩니다.

예: invhilb(10,'single')

데이터형: char

제한 사항

엄밀한 힐베르트 행렬의 엄밀한 역행렬은 큰 정수가 요소로 구성됩니다. 행렬의 차수 n이 15보다 작으면 이 정수들은 반올림 오차 없이 부동소수점 수로 표현될 수 있습니다.

invhilb(n)inv(hilb(n))과 비교할 때는 다음과 같은 반올림 오차 두 개 또는 세 개가 영향을 미칩니다.

  • hilb(n)을 표현할 때 발생하는 오류

  • 행렬의 역을 구하는 과정에서의 오류

  • invhilb(n)을 표현하는 데 수반되는 오류(있을 경우)

위의 반올림 오차 중 첫 번째 경우는 1/3, 1/5과 같은 분수를 부동소수점으로 표현하면서 생기는 것으로 가장 큰 오차입니다.

참고 문헌

[1] Forsythe, G. E. and C. B. Moler. Computer Solution of Linear Algebraic Systems. Englewood Cliffs, NJ: Prentice-Hall, 1967.

확장 기능

C/C++ 코드 생성
MATLAB® Coder™를 사용하여 C 코드나 C++ 코드를 생성할 수 있습니다.

버전 내역

R2006a 이전에 개발됨

참고 항목