■ 개념
하우스 홀더 행렬(Householder Matrix)은 어떤 행렬을 다른 형태로 변환할 때 사용하는 행렬 중 하나이다.
정사각행렬(n*n)이며 모든열이 정규 직교한다고 한다. 정규 직교는 나중에 배울 예정
■ 공식
위 공식을 따른다.
H는 하우스 홀더를 뜻하고 V는 벡터이다. T 수식은 전치이다.
vvT는 벡터의 외적이고 vTv는 벡터의 내적이다. I는 앞서 배운 단위 행렬(주대각원소가 1이고 나머지 0)이다.
1 0 2 3으로 구성된 벡터를 예로 계산해봤다. 먼저 벡터의 내적과 외적을 먼저 구해주고
앞서 구한 것들을 이용해 '단위행렬 - [(2 * 외적) / 내적]' 을 계산 해보면 아래 값이 나왔다.
■ 파이썬
위 순서대로 계산기를 돌려보면 수치가 같다는 것을 확인했다.
(다른 예제)
임의의 숫자를 가진 다른 벡터로 먼저 손으로 계산 해보고 파이썬으로 증명해봤다.
V = 2, 0, 4, 6으로 계산해봤다
아 잠만 그냥 맘 가는대로 2 0 4 6 한거였는데 1, 0, 2, 3의 2를 곱한거다;; 그래서 결과값은 똑같았다.
(다른 예제)
2 2 4 6의 벡터로 계산해봤다.
▼ 13/15
▼ -2/15
▼ -4/15
▼ -6/15
▼ 2/15
▼ -12/15
▼ -3/15 (or -1/5)
위 값들을 보면 정확한 수치가 나온 것을 확인할 수 있다.
■ 넘파이
넘파이에선 내적, 외적을 구해주지만 하우스홀더를 바로 구해주는 함수가 따로 없어서 계산해줘야한다
▼ 2,2,4,6 벡터로 한 결과
'개발 (AI) > 선형대수' 카테고리의 다른 글
[행렬] 이중대각행렬 (0) | 2023.05.29 |
---|---|
[행렬] 토플리츠행렬 (0) | 2023.05.28 |
[행렬] 삼각행렬 (0) | 2023.05.28 |
[행렬] 영 행렬 (0) | 2023.05.07 |
[행렬] 단위 행렬 (0) | 2023.05.07 |