숫자 형식
솔루션 의견
설명 없음(답변만)
a
b
c
d
x
y
z
clear
i
Randomize
3131313131351515151515≈83137
Householder 변환으로 QR 분해를 계산하는 방법
열 단위로 변환자를 구성하여 대각선 아래 항목들을 0으로 만듭니다. 각 변환자는 축약되는 열 벡터로부터 결정됩니다. 변환자들의 곱이 Q(직교행렬)이고 변환된 행렬이 R(상삼각)입니다.
Householder 변환 — 계산 예시 (2×2)
초기 행렬
A
을 작성합니다.
A
=
3
4
1
2
QR
분해는 행렬
A
을 다음과 같은 형태로 표현한 것입니다:
A
=
Q
*
R
;
행렬
Q
은 정규직교 행렬입니다.
행렬
R
은 상 삼각 행렬입니다.
QR
분해를 집주인의 생각 방법을 사용하여 수행하려면 다음을 수행해야 합니다.
1)
행렬 A의 각 열 a에 대해 가장 반사 벡터 v을 계산합니다.2)
행렬 A의 각 열 a에 대해 가장 행렬 H을 계산합니다.3)
행렬 A의 모든 열에 가장 변환을 적용하면 결과 변환된 행렬 A'는 상 삼각 행렬 R이 됩니다.4)
직교 행렬 Q은 모든 가장 행렬 H을 곱하여 얻습니다.QR
분해를 집주인의 생각 방법을 사용하여 수행하려면 행렬
A
의 각 열
a
에 대해 다음을 수행해야 합니다.
1)
열 a의 norm ‖a‖을 계산합니다.2)
열 a의 sign(s)을 정의합니다.s
= -
sgn
(
a
[
i
])
;
// 여기서
sgn(a)
= 1 if a[i] ≥ 0, 그렇지 않으면 -1입니다.a[i]
은 열 a의 i 번째 요소입니다.i
은 열 번호입니다.3)
가장 반사 벡터 를 계산합니다.v
=
a
-
s
*
a
*
e
0
i
;
// 여기서
eᵢ
은 i 번째 요소가 1이고 다른 모든 요소는 0인 표준 기저 벡터입니다.i
은 열 번호입니다.4)
가장 반사 벡터 을 정규화합니다.v_norm
=
v
v
;
5)
가장 행렬 을 계산합니다.H
0
i
=
I
- 2 *
v_norm
*
v_norm
T
0
;
6)
행렬 에 가장 변환을 적용합니다.A'
0
i
=
H
0
i
*
A'
0
i - 1
;
7)
행렬 을 계산합니다.Q
0
i
=
Q
0
i - 1
*
H
0
i
;
2
반복 1첫 번째 반복에서 행렬
A'
0
0
은 원래 행렬
A
과 같습니다.
A'
0
0
=
3
4
1
2
항등 행렬과 같은 초기 행렬
Q
0
0
을 작성합니다.
Q
0
0
=
1
0
0
1
벡터
a
은 행렬
A'
0
0
의
1
번째 열과 같습니다.
a
=
3
4
열
a
:
의 norm
a
을 계산합니다.
a
=
5
;
열
a
:
의 sign(
s
)을 정의합니다.
s
= -
sgn
(
a
[
1
])
= -
sgn
-(
3
) = -(
1
) =
-1
;
1
번째 표준 기저 벡터를 작성합니다.
e
0
1
=
1
0
가장 반사 벡터
:
를 계산합니다.
v
=
a
-
s
*
a
*
e
0
1
=
3
4
-
-1
*
5
*
1
0
=
3
4
-
-5
0
=
8
4
;
가장 반사 벡터
:
을 정규화합니다.
v_norm
=
v
v
=
89
100
9
20
가장 반사 벡터
:
를 계산합니다.
H
0
1
=
I
- 2 *
v_norm
*
v_norm
T
0
=
1
0
0
1
- 2 *
89
100
9
20
*
89
100
9
20
=
=
89
100
9
20
·
89
100
9
20
=
4
5
2
5
2
5
1
5
=
1
0
0
1
- 2 *
4
5
2
5
2
5
1
5
=
=
4
5
2
5
2
5
1
5
·
2
=
4
5
*
2
2
5
*
2
2
5
*
2
1
5
*
2
=
1
3
5
4
5
4
5
2
5
=
1
0
0
1
−
1
3
5
4
5
4
5
2
5
=
1
-
1
3
5
0
-
4
5
0
-
4
5
1
-
2
5
=
-
3
5
-
4
5
-
4
5
3
5
행렬
A'
0
1
:
에 가장 변환을 적용합니다.
A'
0
1
=
H
0
1
·
A'
0
0
=
-
3
5
-
4
5
-
4
5
3
5
·
3
4
1
2
=
-5
0
-2
1
5
2
5
행렬
Q
0
1
:
을 계산합니다.
Q
0
1
=
Q
0
0
·
H
0
1
=
1
0
0
1
·
-
3
5
-
4
5
-
4
5
3
5
=
-
3
5
-
4
5
-
4
5
3
5
3
반복 2벡터
a
은 행렬
A'
0
1
의
2
번째 열과 같습니다.
a
=
0
2
5
열
a
:
의 norm
a
을 계산합니다.
a
=
2
5
;
열
a
:
의 sign(
s
)을 정의합니다.
s
= -
sgn
(
a
[
2
])
= -
sgn
-(
2
5
) = -(
1
) =
-1
;
2
번째 표준 기저 벡터를 작성합니다.
e
0
2
=
0
1
가장 반사 벡터
:
를 계산합니다.
v
=
a
-
s
*
a
*
e
0
2
=
0
2
5
-
-1
*
2
5
*
0
1
=
0
2
5
-
0
-
2
5
=
0
4
5
;
가장 반사 벡터
:
을 정규화합니다.
v_norm
=
v
v
=
0
1
가장 반사 벡터
:
를 계산합니다.
H
0
2
=
I
- 2 *
v_norm
*
v_norm
T
0
=
1
0
0
1
- 2 *
0
1
*
0
1
=
=
0
1
·
0
1
=
0
0
0
1
=
1
0
0
1
- 2 *
0
0
0
1
=
=
0
0
0
1
·
2
=
0
*
2
0
*
2
0
*
2
1
*
2
=
0
0
0
2
=
1
0
0
1
−
0
0
0
2
=
1
-
0
0
-
0
0
-
0
1
-
2
=
1
0
0
-1
행렬
A'
0
2
:
에 가장 변환을 적용합니다.
A'
0
2
=
H
0
2
·
A'
0
1
=
1
0
0
-1
·
-5
0
-2
1
5
2
5
=
-5
0
-2
1
5
-
2
5
행렬
Q
0
2
:
을 계산합니다.
Q
0
2
=
Q
0
1
·
H
0
2
=
-
3
5
-
4
5
-
4
5
3
5
·
1
0
0
-1
=
-
3
5
-
4
5
4
5
-
3
5
4
행렬 Q, RQ
=
Q
0
2
=
-
3
5
-
4
5
4
5
-
3
5
R
=
A'
0
2
=
-5
0
-2
1
5
-
2
5
Answer
A = Q · RQ
=
-
3
5
-
4
5
4
5
-
3
5
R
=
-5
0
-2
1
5
-
2
5
크기2×2방법하우스홀더 반사