![Page 1: 10장 LU - Pusan National Universitybml.pusan.ac.kr/resources/2015_Numerical_Analysis/10_LU... · 2015-03-23 · Applied Numerical Methods 10장LU 분해법 10.2 LU 분해법으로서의Gauss](https://reader030.vdocuments.mx/reader030/viewer/2022040108/5e28fd89cc4a6b12871c2f20/html5/thumbnails/1.jpg)
10장 LU 분해법
10.1 LU 분해법의 개요
10.2 LU 분해법으로서의Gauss 소거법
10.3 CHOLESKY 분해법
10.4 MATLAB 왼쪽 나눗셈
![Page 2: 10장 LU - Pusan National Universitybml.pusan.ac.kr/resources/2015_Numerical_Analysis/10_LU... · 2015-03-23 · Applied Numerical Methods 10장LU 분해법 10.2 LU 분해법으로서의Gauss](https://reader030.vdocuments.mx/reader030/viewer/2022040108/5e28fd89cc4a6b12871c2f20/html5/thumbnails/2.jpg)
Applied Numerical Methods 10장 LU 분해법
10장 LU 분해법
Gauss 소거법은 선형대수 방정식을 푸는데사용되는 좋은 방법이다.
비효율성동일한 계수 행렬 [A]를 갖고 우변 상수 {b}만 다를 경우
Recall : 소거법의 전진소거 단계 많은 계산 노력을 요구
}{}]{[ bxA
LU 분해법은 시간이 소요되는 행렬 [A] 의 소거와우변 {b}의 조작을 분리시킨다.
일단 [A]가 "분해" 되면 우변 벡터의 여러 가지경우에 대해서 효율적으로 해를 구할 수 있다.
![Page 3: 10장 LU - Pusan National Universitybml.pusan.ac.kr/resources/2015_Numerical_Analysis/10_LU... · 2015-03-23 · Applied Numerical Methods 10장LU 분해법 10.2 LU 분해법으로서의Gauss](https://reader030.vdocuments.mx/reader030/viewer/2022040108/5e28fd89cc4a6b12871c2f20/html5/thumbnails/3.jpg)
Applied Numerical Methods 10장 LU 분해법
10.1 LU 분해법의 개요 (1/3)
방정식을 상삼각
시스템으로 바꾼다면
위 식을 정리하여 행렬 형태로 표시하면
}{}]{[ bxA
0}{}]{[ bxA
3
2
1
3
2
1
33
2322
131211
d
d
d
x
x
x
u
uu
uuu
0}{}]{[ dxU
![Page 4: 10장 LU - Pusan National Universitybml.pusan.ac.kr/resources/2015_Numerical_Analysis/10_LU... · 2015-03-23 · Applied Numerical Methods 10장LU 분해법 10.2 LU 분해법으로서의Gauss](https://reader030.vdocuments.mx/reader030/viewer/2022040108/5e28fd89cc4a6b12871c2f20/html5/thumbnails/4.jpg)
Applied Numerical Methods 10장 LU 분해법
10.1 LU 분해법의 개요 (2/3)
대각선상의 원소가 모두1인 하삼각 행렬을 가정
다음의 관계를 만족한다면
결과적으로 성립해야 할 관계식은 다음과 같다.
과
1
1
1
][
3231
21
ll
lL
}{}]{[}}{}]{]{[[ bxAdxUL
][]][[ AUL }{}]{[ bdL
![Page 5: 10장 LU - Pusan National Universitybml.pusan.ac.kr/resources/2015_Numerical_Analysis/10_LU... · 2015-03-23 · Applied Numerical Methods 10장LU 분해법 10.2 LU 분해법으로서의Gauss](https://reader030.vdocuments.mx/reader030/viewer/2022040108/5e28fd89cc4a6b12871c2f20/html5/thumbnails/5.jpg)
Applied Numerical Methods 10장 LU 분해법
10.1 LU 분해법의 개요 (3/3)
요약
(1) LU 분해 단계: [A] [L][U]
(2) 대입 단계: 전진대입 [L]{d}={b} {d}
( i = 1, 2, , n)
후진대입 {x}
( i = n-1, n-2, , 1)
1
1
i
j
jijii blbd
}{}]{[ dxU
nnnn adx /
ij
n
ij
jiji
iu
xud
x
1
![Page 6: 10장 LU - Pusan National Universitybml.pusan.ac.kr/resources/2015_Numerical_Analysis/10_LU... · 2015-03-23 · Applied Numerical Methods 10장LU 분해법 10.2 LU 분해법으로서의Gauss](https://reader030.vdocuments.mx/reader030/viewer/2022040108/5e28fd89cc4a6b12871c2f20/html5/thumbnails/6.jpg)
Applied Numerical Methods 10장 LU 분해법
10.2 LU 분해법으로서의 Gauss 소거법 (1/2)
Gauss 소거법은 [L]과 [U]로 분해하는데 유용하게 사용된다.
세 개의 방정식으로 구성된 시스템을 고려하자.
첫 번째 행에 을 곱한 결과를 두 번째 행에서 뺀다.
첫 번째 행에 을 곱한 결과를 세 번째 행에서 뺀다.
수정된 두 번째 행에 를 곱한 결과를 세 번째 행에서 뺀다.
이러한 조작이 행렬 [A]에 행해졌다면동시에 벡터 {b}에도 행해져야 한다.
인자 f 를 저장하고, 추후에 {b}를 조작한다.
3
2
1
3
2
1
333231
232221
131211
b
b
b
x
x
x
aaa
aaa
aaa
11
2121
a
af
11
3131
a
af
'
22
'
3232
a
af
![Page 7: 10장 LU - Pusan National Universitybml.pusan.ac.kr/resources/2015_Numerical_Analysis/10_LU... · 2015-03-23 · Applied Numerical Methods 10장LU 분해법 10.2 LU 분해법으로서의Gauss](https://reader030.vdocuments.mx/reader030/viewer/2022040108/5e28fd89cc4a6b12871c2f20/html5/thumbnails/7.jpg)
Applied Numerical Methods 10장 LU 분해법
ULA
10.2 LU 분해법으로서의 Gauss 소거법 (2/2)
어디에 f를 저장할까??
f21 a21에, f31 a31에, 그리고 f32 a32에 저장
"
333231
'
23
'
2221
131211
aff
aaf
aaa
"
33
'
23
'
22
131211
3231
21
"
333231
'
23
'
2221
131211
333231
232221
131211
1
1
1
a
aa
aaa
ff
f
aff
aaf
aaa
aaa
aaa
aaa
[MATLAB 함수]
>> [L,U] = lu(X)
![Page 8: 10장 LU - Pusan National Universitybml.pusan.ac.kr/resources/2015_Numerical_Analysis/10_LU... · 2015-03-23 · Applied Numerical Methods 10장LU 분해법 10.2 LU 분해법으로서의Gauss](https://reader030.vdocuments.mx/reader030/viewer/2022040108/5e28fd89cc4a6b12871c2f20/html5/thumbnails/8.jpg)
Applied Numerical Methods 10장 LU 분해법
예제 10.1+10.2 (1/4)
Q. 다음의 방정식을LU 분해법으로 풀어라.
풀이)
전진소거:
참고:
4.71 10 .203.0
3.193.07 1.0
85.7 0.21.03
321
321
321
xxx
xxx
xxx
4.71
3.19
85.7
102.03.0
3.071.0
2.01.03
3
2
1
x
x
x
0120.1000
293333.000333.70
2.01.03
][U
0843.70
5617.19
85.7
0120.1000
293333.000333.70
2.01.03
3
2
1
x
x
x
![Page 9: 10장 LU - Pusan National Universitybml.pusan.ac.kr/resources/2015_Numerical_Analysis/10_LU... · 2015-03-23 · Applied Numerical Methods 10장LU 분해법 10.2 LU 분해법으로서의Gauss](https://reader030.vdocuments.mx/reader030/viewer/2022040108/5e28fd89cc4a6b12871c2f20/html5/thumbnails/9.jpg)
Applied Numerical Methods 10장 LU 분해법
예제 10.1+10.2 (2/4)
확인:
0333333.03
1.021 f 1000000.0
3
3.031 f
0271300.000333.7
19.032
f
0120.1000
293333.000333.70
2.01.03
10271300.0100000.0
10333333.0
1
]][[][ ULA
][
99996.92.03.0
3.070999999.0
2.01.03
]][[ AUL
![Page 10: 10장 LU - Pusan National Universitybml.pusan.ac.kr/resources/2015_Numerical_Analysis/10_LU... · 2015-03-23 · Applied Numerical Methods 10장LU 분해법 10.2 LU 분해법으로서의Gauss](https://reader030.vdocuments.mx/reader030/viewer/2022040108/5e28fd89cc4a6b12871c2f20/html5/thumbnails/10.jpg)
Applied Numerical Methods 10장 LU 분해법
예제 10.1+10.2 (3/4)
전진대입 단계:
또는
4.71
3.19
85.7
10271300.0100000.0
010333333.0
001
3
2
1
d
d
d
4.71 .0273000 100000.0
3.19 0333333.0
85.7
321
21
1
ddd
dd
d
5617.19)85.7(0333333.03.192 d
0843.70)5617.19(02713.0)85.7(1.04.713 d
![Page 11: 10장 LU - Pusan National Universitybml.pusan.ac.kr/resources/2015_Numerical_Analysis/10_LU... · 2015-03-23 · Applied Numerical Methods 10장LU 분해법 10.2 LU 분해법으로서의Gauss](https://reader030.vdocuments.mx/reader030/viewer/2022040108/5e28fd89cc4a6b12871c2f20/html5/thumbnails/11.jpg)
Applied Numerical Methods 10장 LU 분해법
예제 10.1+10.2 (4/4)
따라서
대입하면
그러므로 후진대입하여
최종 해를 얻으면 다음과 같다.
0843.70
5617.19
85.7
d
0843.70
5617.19
85.7
0120.1000
293333.000333.70
2.01.03
3
2
1
x
x
x
00003.7
5.2
3
x
• Gauss 소거법과 같은 총 연산횟수를 갖는다.
• 분해단계에서 연산이 우변에 적용되지 않기 때문에조금이나마 계산량이 줄어든다.
![Page 12: 10장 LU - Pusan National Universitybml.pusan.ac.kr/resources/2015_Numerical_Analysis/10_LU... · 2015-03-23 · Applied Numerical Methods 10장LU 분해법 10.2 LU 분해법으로서의Gauss](https://reader030.vdocuments.mx/reader030/viewer/2022040108/5e28fd89cc4a6b12871c2f20/html5/thumbnails/12.jpg)
Applied Numerical Methods 10장 LU 분해법
예제 10.3 (MATLAB을 사용한 LU 분해법) (1/2)
Q. MATLAB을 사용하여 LU 분해법으로
계수 행렬을 분해하고, 방정식의 해를 구하라.
4.71
3.19
85.7
102.03.0
3.071.0
2.01.03
3
2
1
x
x
x
>> A=[3 -.1 -.2; .1 7 -.3; .3 -.2 10]; % 행렬 A
>> b=[7.85; -19.3; 71.4]; % 우변 벡터
>> [L, U] = lu(A) % LU 분해
L =
1.0000 0 0
0.0333 1.0000 0
0.1000 -0.0271 1.0000
U =
3.0000 -0.1000 -0.2000
0 7.0033 -0.2933
0 0 10.0120
![Page 13: 10장 LU - Pusan National Universitybml.pusan.ac.kr/resources/2015_Numerical_Analysis/10_LU... · 2015-03-23 · Applied Numerical Methods 10장LU 분해법 10.2 LU 분해법으로서의Gauss](https://reader030.vdocuments.mx/reader030/viewer/2022040108/5e28fd89cc4a6b12871c2f20/html5/thumbnails/13.jpg)
Applied Numerical Methods 10장 LU 분해법
예제 10.3 (MATLAB을 사용한 LU 분해법) (2/2)
>> L*U % 분해결과 확인
ans =
3.0000 -0.1000 -0.2000
0.1000 7.0000 -0.3000
0.3000 -0.2000 10.0000
>> d=L\b % 전진대입
d =
7.8500
-19.5617
70.0843
>> x=U\d % 후진대입
x =
3.0000
-2.5000
7.0000
![Page 14: 10장 LU - Pusan National Universitybml.pusan.ac.kr/resources/2015_Numerical_Analysis/10_LU... · 2015-03-23 · Applied Numerical Methods 10장LU 분해법 10.2 LU 분해법으로서의Gauss](https://reader030.vdocuments.mx/reader030/viewer/2022040108/5e28fd89cc4a6b12871c2f20/html5/thumbnails/14.jpg)
Applied Numerical Methods 10장 LU 분해법
10.3 Cholesky 분해법 (1/2)
대칭행렬 ( aij = aji 또는 [A] = [A]T의 관계가 성립)
수학이나 공학 문제에 종종 발생
Cholesky 분해법과 같은 특별한 해법들이 사용 가능
계산상 이점을 제공 절반의 저장공간만 필요
절반의 계산시간 요구
![Page 15: 10장 LU - Pusan National Universitybml.pusan.ac.kr/resources/2015_Numerical_Analysis/10_LU... · 2015-03-23 · Applied Numerical Methods 10장LU 분해법 10.2 LU 분해법으로서의Gauss](https://reader030.vdocuments.mx/reader030/viewer/2022040108/5e28fd89cc4a6b12871c2f20/html5/thumbnails/15.jpg)
Applied Numerical Methods 10장 LU 분해법
10.3 Cholesky 분해법 (2/2)
핵심 알고리즘
분해단계: i 번째 행에 대해
( j = i+1, , n)
전진대입 단계: {d}
후진대입 단계: {x}
][][][ UUA T
1
1
2i
k
kiiiii uau
ii
i
k
kjkiij
iju
uua
u
1
1
}{}{][ bdU T
}{}]{[ dxU
[MATLAB 함수]
>> U = chol(X)
![Page 16: 10장 LU - Pusan National Universitybml.pusan.ac.kr/resources/2015_Numerical_Analysis/10_LU... · 2015-03-23 · Applied Numerical Methods 10장LU 분해법 10.2 LU 분해법으로서의Gauss](https://reader030.vdocuments.mx/reader030/viewer/2022040108/5e28fd89cc4a6b12871c2f20/html5/thumbnails/16.jpg)
Applied Numerical Methods 10장 LU 분해법
예제 10.4 (Cholesky 분해법) (1/2)
Q. 다음의 대칭행렬에 대해 Cholesky 분해를 실시하라.
풀이)
첫 번째 행에 대해서
97922555
2255515
55156
][A
44949.261111 au
123724.644949.2
15
11
1212
u
au
45366.2244949.2
55
11
1313
u
au
![Page 17: 10장 LU - Pusan National Universitybml.pusan.ac.kr/resources/2015_Numerical_Analysis/10_LU... · 2015-03-23 · Applied Numerical Methods 10장LU 분해법 10.2 LU 분해법으로서의Gauss](https://reader030.vdocuments.mx/reader030/viewer/2022040108/5e28fd89cc4a6b12871c2f20/html5/thumbnails/17.jpg)
Applied Numerical Methods 10장 LU 분해법
예제 10.4 (Cholesky 분해법) (2/2)
두 번째 행에 대해서
세 번째 행에 대해서
따라서
1833.4)123724.6(55 22
122222 uau
9165.201833.4
)45366.22(123724.6225
22
13122323
u
uuau
110101.6)9165.20()45366.22(979 222
23
2
133333 uuau
110101.6
9165.201833.4
45366.22123724.644949.2
][U
![Page 18: 10장 LU - Pusan National Universitybml.pusan.ac.kr/resources/2015_Numerical_Analysis/10_LU... · 2015-03-23 · Applied Numerical Methods 10장LU 분해법 10.2 LU 분해법으로서의Gauss](https://reader030.vdocuments.mx/reader030/viewer/2022040108/5e28fd89cc4a6b12871c2f20/html5/thumbnails/18.jpg)
Applied Numerical Methods 10장 LU 분해법
예제 10.5 (MATLAB을 사용한 Cholesky 분해법) (1/3)
Q. MATLAB을 사용하여 다음의 대칭행렬에 대해
Cholesky 분해를 실시하고, 각 행의 합이 우변 벡터인
경우의 해를 구하라. (해는 요소가 1인 벡터이다.)
97922555
2255515
55156
][A
![Page 19: 10장 LU - Pusan National Universitybml.pusan.ac.kr/resources/2015_Numerical_Analysis/10_LU... · 2015-03-23 · Applied Numerical Methods 10장LU 분해법 10.2 LU 분해법으로서의Gauss](https://reader030.vdocuments.mx/reader030/viewer/2022040108/5e28fd89cc4a6b12871c2f20/html5/thumbnails/19.jpg)
Applied Numerical Methods 10장 LU 분해법
예제 10.5 (MATLAB을 사용한 Cholesky 분해법) (2/3)
>> A=[6 15 55; 15 55 225; 55 225 979]; % 대칭행렬 A
>> b=[sum(A(1,:)); sum(A(2,:)); sum(A(3,:))] %우변 벡터의 생성
b =
76
295
1259
>> U=chol(A) % Cholesky 분해
U =
2.4495 6.1237 22.4537
0 4.1833 20.9165
0 0 6.1101
![Page 20: 10장 LU - Pusan National Universitybml.pusan.ac.kr/resources/2015_Numerical_Analysis/10_LU... · 2015-03-23 · Applied Numerical Methods 10장LU 분해법 10.2 LU 분해법으로서의Gauss](https://reader030.vdocuments.mx/reader030/viewer/2022040108/5e28fd89cc4a6b12871c2f20/html5/thumbnails/20.jpg)
Applied Numerical Methods 10장 LU 분해법
예제 10.5 (MATLAB을 사용한 Cholesky 분해법) (3/3)
>> U'*U % 분해결과 확인
ans =
6.0000 15.0000 55.0000
15.0000 55.0000 225.0000
55.0000 225.0000 979.0000
>> d=U'\b % 전진대입
d =
31.0269
25.0998
6.1101
>> x=U\d % 후진대입
x =
1.0000
1.0000
1.0000
![Page 21: 10장 LU - Pusan National Universitybml.pusan.ac.kr/resources/2015_Numerical_Analysis/10_LU... · 2015-03-23 · Applied Numerical Methods 10장LU 분해법 10.2 LU 분해법으로서의Gauss](https://reader030.vdocuments.mx/reader030/viewer/2022040108/5e28fd89cc4a6b12871c2f20/html5/thumbnails/21.jpg)
Applied Numerical Methods 10장 LU 분해법
10.4 MATLAB 왼쪽 나눗셈 (1/2)
계수행렬 [A]의 구조를 먼저 조사한 후에
그에 맞는 가장 적절한 방법으로 해를 구한다.
(a) 원소 중에 0이 많이 있는 띠행렬
(b) 삼각행렬이나 삼각 형태로 쉽게 변형이 가능한 행렬
(c) 대칭행렬
해법:
1) banded solver, back and forward substitution,
Cholesky 분해법
2) 부분피봇팅을 포함하는 Gauss 소거법, QR 분해법
![Page 22: 10장 LU - Pusan National Universitybml.pusan.ac.kr/resources/2015_Numerical_Analysis/10_LU... · 2015-03-23 · Applied Numerical Methods 10장LU 분해법 10.2 LU 분해법으로서의Gauss](https://reader030.vdocuments.mx/reader030/viewer/2022040108/5e28fd89cc4a6b12871c2f20/html5/thumbnails/22.jpg)
Applied Numerical Methods 10장 LU 분해법
10.4 MATLAB 왼쪽 나눗셈 (2/2)
>> A=[3 -.1 -.2; .1 7 -.3; .3 -.2 10] % 행렬 A
A =
3.0000 -0.1000 -0.2000
0.1000 7.0000 -0.3000
0.3000 -0.2000 10.0000
>> b=[7.85; -19.3; 71.4]; % 우변 벡터
>> y=A\b % 왼쪽 나눗셈
y =
3.0000
-2.5000
7.0000