-
수치해석수치해석Numerical AnalysisNumerical Analysis
161009161009
Ch11. Matrix Inverse and Ch11. Matrix Inverse and Ch11. Matrix Inverse and Ch11. Matrix Inverse and
ConditionCondition
-
� 행렬 [A]가 정방행렬이고, [A]의 역행렬인 [A]-1 가 존재
하면
� [A]의 역행렬은 항상 존재?
11.111.111.111.1 역행렬역행렬역행렬역행렬(Inverse matrix) (1/3)(Inverse matrix) (1/3)(Inverse matrix) (1/3)(Inverse matrix) (1/3)
][][][]][[ 11 IAAAA == −−
Numerical AnalysisNumerical Analysis
� [A]의 역행렬은 항상 존재?
• A square matrix has an inverse iff
• A matrix possessing an inverse is called nonsingularnonsingularnonsingularnonsingular, or
invertibleinvertibleinvertibleinvertible.
0≠A
-
11.1 11.1 11.1 11.1 역행렬역행렬역행렬역행렬 (1/3)(1/3)(1/3)(1/3)
� 역행렬의 계산
• 우변에 단위벡터들을 놓고 각각에 대한 해를 구함으로써
열 단위로 계산 가능.
A[ ] x1{ }=100
A[ ] x2{ }=
010
A[ ] x3{ }=
001
Numerical AnalysisNumerical Analysis
• 이때 최적의 방법은 LU 분해법을 이용하는 것
→ 여러 개의 우변 벡터에 대해 해를 매우 효율적으로 구함
A[ ]−1 = x1 x2 x3[ ]
-
예제 11.1 (1/3)
� Q. 다음 시스템에 대한 역행렬을 LU 분해법으로 구하라.
−
−
−−
=
102.03.0
3.071.0
2.01.03
][A
Numerical AnalysisNumerical Analysis
LU 분해를 통해 얻은 L과 U:
−
−−
=
0120.1000
293333.000333.70
2.01.03
][U
−
=
10271300.0100000.0
010333333.0
001
][L
-
예제 11.1 (2/3)
sol)
역행렬의 첫 번째 열을 구하기 위해서
→
=
− 0
0
1
10271300.0100000.0
010333333.0
001
3
2
1
d
d
d
−
−=
1009.0
03333.0
1
}{d
−− 12.01.03 x
Numerical AnalysisNumerical Analysis
→
∴ 역행렬의 첫 번째 열은
−
−=
−
−−
1009.0
03333.0
1
0120.1000
293333.000333.70
2.01.03
3
2
1
x
x
x
−
−=−
??01008.0
??00518.0
??33249.0
][ 1A
-
예제 11.1 (3/3)
역행렬의 두 번째 열을 구하기 위해서
→
=
− 0
1
0
10271300.0100000.0
010333333.0
001
3
2
1
d
d
d
−=− ?142903.000518.0
?004944.033249.0
][ 1A
Numerical AnalysisNumerical Analysis
→
역행렬의 세 번째 열에 대해 반복하여 역행렬을 완성시키면
−
−=
?002710.001008.0
?142903.000518.0][A
−
−=−
099880.0002710.001008.0
004183.0142903.000518.0
006798.0004944.033249.0
][ 1A
-
11.1 11.1 11.1 11.1 역행렬역행렬역행렬역행렬 (2/3)(2/3)(2/3)(2/3)
� 자극-응답 계산(Stimulus-Response Computations)
• 공학과 과학에서 접하는 많은 선형연립방정식은 보존법칙으로 유도된
다.
• 시스템의 각 부분에 대해서 하나의 평형방정식으로 기술된다.
• 선형 시스템
{x} → 구하고자 하는 시스템의 상태 또는 응답을 나타냄
→
}{}]{[ bxA =
Numerical AnalysisNumerical Analysis
{b} → 시스템을 구동하는 힘 함수 또는 외부 자극을 나타냄
[A] → 시스템의 부분들의 상호작용을 나타냄
∴∴∴∴ [[[[상호작용상호작용상호작용상호작용]{]{]{]{응답응답응답응답} = {} = {} = {} = {자극자극자극자극}}}}
-
11.1 11.1 11.1 11.1 역행렬역행렬역행렬역행렬 (3/3)(3/3)(3/3)(3/3)
• 공식적인 해: 또는
• 역행렬의 성질
- 각각의 원소는 시스템의 다른 부분에서의 단위 자극에 대한 해당 부분의
응답
}{][}{1bAx
−=
3
1
332
1
321
1
313
3
1
232
1
221
1
212
3
1
132
1
121
1
111
bababax
bababax
bababax
−−−
−−−
−−−
++=
++=
++=
Numerical AnalysisNumerical Analysis
• 선형 시스템 → 중첩의 원리와 비례성이 만족됨
� 중첩: 응답{자극1 + 자극2} = 응답{자극1} + 응답{자극2}
� 비례: 응답{a×자극} = a×응답{자극}
응답{ a×자극1 + b×자극2} = a×응답{자극1} + b×응답{자극2}
∴ 는 bj의 단위 수준에 대해 xi의 값을 제공하는 비례상수
→ 역행렬은 복잡한 시스템의 구성 원소들 사이의 연관관계를 이해하는데 유용함
1−ija
-
예제 11.2 (번지점프 문제의 해석) (1/2)
� Q. 8장의 처음 부분에서 다룬 번지점프 문제를 풀어라.
매개변수는 다음과 같이 주어진다.
sol)
사람사람사람사람 질량질량질량질량 (kg)(kg)(kg)(kg) 스프링상수스프링상수스프링상수스프링상수 (N/m)(N/m)(N/m)(N/m) 본래본래본래본래 줄의줄의줄의줄의 길이길이길이길이 (m)(m)(m)(m)
위 (1)중간 (2)아래 (3)
607080
5010050
202020
Numerical AnalysisNumerical Analysis
gmxkxk
gmxkxkkxk
gmxkxkk
33323
23323212
122121
)(
)(
=+−
=−++−
=−+
=
−
−−
−
8.784
7.686
6.588
50500
50150100
0100150
3
2
1
x
x
x
sol)
-
예제 11.2 (번지점프 문제의 해석) (2/2)
>> >> >> >> K=[150 K=[150 K=[150 K=[150 ----100 0; 100 0; 100 0; 100 0; ----100 150 100 150 100 150 100 150 ----50; 0 50; 0 50; 0 50; 0 ----50 50];50 50];50 50];50 50];>> >> >> >> mg =[588.6; 686.7; 784.8];mg =[588.6; 686.7; 784.8];mg =[588.6; 686.7; 784.8];mg =[588.6; 686.7; 784.8];>> >> >> >> KI =inv(K)KI =inv(K)KI =inv(K)KI =inv(K)KI =KI =KI =KI =
0.0200 0.0200 0.02000.0200 0.0200 0.02000.0200 0.0200 0.02000.0200 0.0200 0.02000.0200 0.0300 0.03000.0200 0.0300 0.03000.0200 0.0300 0.03000.0200 0.0300 0.0300
kkkkijijijij----1111은은은은 사람사람사람사람 jjjj에에에에 작용하는작용하는작용하는작용하는
단위단위단위단위 힘힘힘힘(N)(N)(N)(N)에에에에 대해대해대해대해 사사사사람람람람 iiii의의의의
Numerical AnalysisNumerical Analysis
0.0200 0.0300 0.03000.0200 0.0300 0.03000.0200 0.0300 0.03000.0200 0.0300 0.03000.0200 0.0300 0.05000.0200 0.0300 0.05000.0200 0.0300 0.05000.0200 0.0300 0.0500
>>>>>>>> x=KI*mgx=KI*mgx=KI*mgx=KI*mgx =x =x =x =
41.2020 41.2020 41.2020 41.2020 ⇒⇒⇒⇒ 20 + 41.202 = 61.20220 + 41.202 = 61.20220 + 41.202 = 61.20220 + 41.202 = 61.20255.9170 55.9170 55.9170 55.9170 ⇒⇒⇒⇒ 40 + 55.917 = 95.91740 + 55.917 = 95.91740 + 55.917 = 95.91740 + 55.917 = 95.91771.6130 71.6130 71.6130 71.6130 ⇒⇒⇒⇒ 60 + 71.613 = 131.61360 + 71.613 = 131.61360 + 71.613 = 131.61360 + 71.613 = 131.613
단위단위단위단위 힘힘힘힘(N)(N)(N)(N)에에에에 대해대해대해대해 사사사사람람람람 iiii의의의의
수직위치수직위치수직위치수직위치 변화변화변화변화(m)(m)(m)(m)
-
11.2 11.2 11.2 11.2 오차오차오차오차 분석과분석과분석과분석과 시스템시스템시스템시스템 조건조건조건조건 (1/6)(1/6)(1/6)(1/6)
� 역행렬은 시스템이 얼마나 불량한지를 판별하는 수단을
제공
• 행렬 [A]를 조정하여 각각의 행에서 최대 원소가 1이 되도록 한다.
� 그 역행렬의 원소가 몇 백 또는 몇 천 이상이 되면 그 시스템은 불량조건
에 있다.
• 역행렬 [A]-1 을 행렬 [A]에 곱해서 단위행렬 [I]에 가까운지를 본다
� 근접하지 않으면 그 시스템은 불량조건에 있다.
Numerical AnalysisNumerical Analysis
� 근접하지 않으면 그 시스템은 불량조건에 있다.
• 역행렬 [A]-1의 역행렬을 구한다.
� 행렬 [A]에 충분히 가깝지 않으면 그 시스템은 불량조건에 있다.
� 불량조건을 나타낼 수 있는 인덱스는?
-
11.2 11.2 11.2 11.2 오차오차오차오차 분석과분석과분석과분석과 시스템시스템시스템시스템 조건조건조건조건 (2/6)(2/6)(2/6)(2/6)
� 벡터와 행렬의 놈 (see the supplement)
• normnormnormnorm : a real-valued function that provides a measure of the size or “length” of multi-component
mathematical entities such as vectors and matrices.
Numerical AnalysisNumerical Analysis
-
11.2 11.2 11.2 11.2 오차오차오차오차 분석과분석과분석과분석과 시스템시스템시스템시스템 조건조건조건조건 (3/6)(3/6)(3/6)(3/6)
� Vector Norms
• Euclidean Norm
� For Euclidean Space
� For n-dim Space
cbaF =
222 cbaFe
++=
nxxxX L21=
∑n
Numerical AnalysisNumerical Analysis
• p norm
(p = 1), (Manhattan norm)
(p = 2), (Euclidean norm)
(p = ∞), 최대-크기 (Maximum norm) 또는 일정-벡터 놈
∑=
=n
i
iexX
1
2
pn
i
p
ipxX
/1
1
= ∑
=
∑=
=n
i
ixX1
1
2X
inixX
≤≤∞=
1max
-
11.2 11.2 11.2 11.2 오차오차오차오차 분석과분석과분석과분석과 시스템시스템시스템시스템 조건조건조건조건 (4/6)(4/6)(4/6)(4/6)
� Matrix Norms
Numerical AnalysisNumerical Analysis
-
11.2 11.2 11.2 11.2 오차오차오차오차 분석과분석과분석과분석과 시스템시스템시스템시스템 조건조건조건조건 (5/6)(5/6)(5/6)(5/6)
� Matrix Norms for a matrix [A]
column - sum norm A1
=1≤ j≤nmax aij
i=1
n
∑
Frobenius norm Af
= aij2
j=1
n
∑i=1
n
∑
Numerical AnalysisNumerical Analysis
• Note - µmax is the largest eigenvalue of [A]T[A].
j=1i=1
row - sum norm A∞
=1≤i≤nmax aij
j=1
n
∑
spectral norm (2 norm) A2
= µmax( )1/2
-
11.2 11.2 11.2 11.2 오차오차오차오차 분석과분석과분석과분석과 시스템시스템시스템시스템 조건조건조건조건 (6/6)(6/6)(6/6)(6/6)
� 행렬의 조건수 (Matrix Condition Number)
(≥ 1)
• 성질
1][Cond −⋅= AAA
A
AA
X
X ∆≤
∆][Cond
Numerical AnalysisNumerical Analysis
계산된 해의 상대오차는 [A]의 상대오차에 조건수를 곱한 것보다 작다
� 조건수가 크면 클수록 해가 부정확해질 수 있다.
AA
X≤ ][Cond
-
예제 11.3 (행렬 조건수의 계산) (1/2)
� Q. 지극히 불량 조건인 Hilbert 행렬에 대하여
−++
+
12
1
2
1
1
11
1
1
4
1
3
1
2
1
1
3
1
2
11
nnnn
n
n
L
MMMM
L
L1
1ijHi j
=+ −
Numerical AnalysisNumerical Analysis
행-합 norm을 3x3 Hilbert 행렬에 대해 사용해 보자.
=
5
1
4
1
3
14
1
3
1
2
13
1
2
11
][A
-
예제 11.3 (행렬 조건수의 계산) (2/2)
Sol)
각 행에서 최대 원소의 크기가
1이 되도록 정규화를 한다.
35.2
167.2
833.1
5
3
4
31
1
3
21
3
1
2
11
2][
⇒
⇒
⇒
=A
35.25
3
4
31 =++=
∞A
Numerical AnalysisNumerical Analysis
정규화한 행렬의 역행렬을 구하면
따라서, 조건수는
−
−−
−
=−
609030
609636
10189
][ 1A
1926096361 =−++−=∞
−A
2.451)192(35.2][Cond ==A
-
� Q. 정규화한 Hilbert 행렬에 대해 MATLAB에서 norm과
조건수를 계산해 보자.
예제 11.4 (MATLAB에서 행렬 조건수의 계산) (1/3)
=23
23
1
2
11
11][A
Numerical AnalysisNumerical Analysis
=
54
2333
1
1][A
-
예제 11.4 (MATLAB에서 행렬 조건수의 계산) (2/3)
>> >> >> >> A = [1 1/2 1/3; 1 2/3 1/2; 1 3/4 3/5]A = [1 1/2 1/3; 1 2/3 1/2; 1 3/4 3/5]A = [1 1/2 1/3; 1 2/3 1/2; 1 3/4 3/5]A = [1 1/2 1/3; 1 2/3 1/2; 1 3/4 3/5]
A =A =A =A =
1.0000 0.5000 0.33331.0000 0.5000 0.33331.0000 0.5000 0.33331.0000 0.5000 0.3333
1.0000 0.6667 0.50001.0000 0.6667 0.50001.0000 0.6667 0.50001.0000 0.6667 0.5000
1.0000 0.7500 0.60001.0000 0.7500 0.60001.0000 0.7500 0.60001.0000 0.7500 0.6000
>>>>>>>> norm(norm(norm(norm(A,infA,infA,infA,inf) ) ) ) % % % % 행행행행----합합합합 놈놈놈놈
Numerical AnalysisNumerical Analysis
>>>>>>>> norm(norm(norm(norm(A,infA,infA,infA,inf) ) ) ) % % % % 행행행행----합합합합 놈놈놈놈
ansansansans ====
2.35002.35002.35002.3500
>>>>>>>> condcondcondcond((((A,infA,infA,infA,inf) ) ) ) % % % % 행행행행----합합합합 놈으로놈으로놈으로놈으로 구한구한구한구한 조건수조건수조건수조건수
ansansansans ====
451.2000451.2000451.2000451.2000
-
예제 11.4 (MATLAB에서 행렬 조건수의 계산) (3/3)
>> >> >> >> condcondcondcond((((A,'froA,'froA,'froA,'fro')')')') % % % % FrobeniusFrobeniusFrobeniusFrobenius normnormnormnorm으로으로으로으로 구한구한구한구한 조건수조건수조건수조건수
ansansansans ====
368.0866368.0866368.0866368.0866
>> >> >> >> condcondcondcond(A)(A)(A)(A) % Spectral norm(p=2)% Spectral norm(p=2)% Spectral norm(p=2)% Spectral norm(p=2)으로으로으로으로 구한구한구한구한 조건수조건수조건수조건수
ansansansans ====
Numerical AnalysisNumerical Analysis
ansansansans ====
366.3503366.3503366.3503366.3503
>> >> >> >> condcondcondcond(A,2)(A,2)(A,2)(A,2)
ansansansans ====
366.3503366.3503366.3503366.3503