11장역행렬과조건bml.pusan.ac.kr/LectureFrame/Lecture/Undergraduates/Num... · 2016-03-15 ·...
Transcript of 11장역행렬과조건bml.pusan.ac.kr/LectureFrame/Lecture/Undergraduates/Num... · 2016-03-15 ·...
11장 역행렬과 조건
11.1 역행렬
11.2 오차 분석과 시스템 조건
Applied Numerical Methods 장 역행렬과 조건
11장 역행렬과 조건
행렬 [A]가 정방행렬이면 [A]의 역행렬이라고 불리는
[A]-1 가 있으며 다음의 관계가 성립한다.
수치적으로 역행렬을 어떻게 구할 수 있을까?
공학해석에 역행렬이 어떻게 사용될 수 있는가?
][][][]][[ 11 IAAAA == −−
11
Applied Numerical Methods 장 역행렬과 조건
11.1 역행렬 (1/3)
역행렬의 계산우변에 단위벡터들을 놓고 각각에 대한 해를구함으로써 열 단위로 계산할 수 있다.
예> → 역행렬의 첫 번째 열을 구하기 위한 단위벡터
→ 역행렬의 두 번째 열을 구하기 위한 단위벡터, …
최적의 방법은 LU 분해법을 이용하는 것→ 여러 개의 우변 벡터에 대해 해를 매우 효율적으로 구함
=
001
}{b
=
010
}{b
11
Applied Numerical Methods 장 역행렬과 조건
예제 11.1 (1/3)
Q. 주어진 시스템에 대한 역행렬을 LU 분해법으로 구하라.
분해를 통해 얻은 L과 U:
−−−−
=102.03.0
3.071.02.01.03
][A
−
−−=
0120.1000293333.000333.70
2.01.03][U
−=
10271300.0100000.0010333333.0001
][L
11
Applied Numerical Methods 장 역행렬과 조건
예제 11.1 (2/3)
풀이)
역행렬의 첫 번째 열을 구하기 위해서
→
→
∴ 역행렬의 첫 번째 열은
=
− 001
10271300.0100000.0010333333.0001
3
2
1
ddd
−−=
1009.003333.01
}{d
−−=
−
−−
1009.003333.01
0120.1000293333.000333.70
2.01.03
3
2
1
xxx
−−=−
0001008.00000518.00033249.0
][ 1A
11
Applied Numerical Methods 장 역행렬과 조건
예제 11.1 (3/3)
역행렬의 두 번째 열을 구하기 위해서
→
역행렬의 세 번째 열을 구하기 위한 후에 역행렬을 완성시키면
=
− 010
10271300.0100000.0010333333.0001
3
2
1
ddd
−−=−
0002710.001008.00142903.000518.00004944.033249.0
][ 1A
−−=−
099880.0002710.001008.0004183.0142903.000518.0006798.0004944.033249.0
][ 1A
11
Applied Numerical Methods 장 역행렬과 조건
11.1 역행렬 (2/3)
자극-응답 계산
공학과 과학에서 접하는 많은 선형연립방정식은 보존법칙으로 유도된다.
시스템의 각 부분에 대해서 하나의 평형방정식으로 기술된다.
방정식들이 모여 전체 시스템의 거동이 정의된다.
방정식들은 서로 연관되어 있어 다른 방정식에서 사용되는 하나 이상의
변수를 포함한다.
선형 시스템
{x} → 구하고자 하는 시스템의 상태 또는 응답을 나타냄
{b} → 시스템을 구동하는 힘 함수 또는 외부 자극을 나타냄
[A] → 시스템의 부분들의 상호작용을 나타냄
∴ [상호작용]{응답} = {자극}
}{}]{[ bxA =
11
Applied Numerical Methods 장 역행렬과 조건
11.1 역행렬 (3/3)
공식적인 해: 또는
역행렬의 성질
- 해를 제공함
- 각각의 원소는 시스템의 다른 부분에서의 단위 자극에 대한 해당 부분의 응답
중첩성: 응답{자극1 + 자극2} = 응답{자극1} + 응답{자극2}
비례성: 응답{a×자극} = a×응답{자극}
선형 시스템 → 중첩의 원리와 비례성이 만족됨
응답{ a×자극1 + b×자극2} = a×응답{자극1} + b×응답{자극2}
∴ 는 bj의 단위 수준에 대해 xi의 값을 제공하는 비례상수
→ 역행렬은 복잡한 시스템의 구성 원소들 사이의 연관관계를 이해하는데 유용함
1−ija
}{][}{ 1 bAx −=
31
3321
3211
313
31
2321
2211
212
31
1321
1211
111
bababax
bababax
bababax
−−−
−−−
−−−
++=
++=
++=
11
Applied Numerical Methods 장 역행렬과 조건
예제 11.2 (번지점프 문제의 해석) (1/2)
Q. 8장의 처음 부분에서 다룬 번지점프 문제를 풀어라.
매개변수는 다음과 같이 주어진다.
풀이)
⇒
사람 질량 (kg) 스프링상수 (N/m) 본래줄의길이 (m)위 (1)중간 (2)아래 (3)
607080
5010050
202020
gmxkxkgmxkxkkxkgmxkxkk
33323
23323212
122121
)(
)(
=+−=−++−=−+
=
−−−
−
8.7847.6866.588
50500501501000100150
3
2
1
xxx
11
Applied Numerical Methods 장 역행렬과 조건
예제 11.2 (번지점프 문제의 해석) (2/2)
>> K=[150 -100 0; -100 150 -50; 0 -50 50];
>> mg =[588.6; 686.7; 784.8];
>> KI =inv(K)
KI =
0.0200 0.0200 0.0200
0.0200 0.0300 0.0300
0.0200 0.0300 0.0500
>> x=KI*mg
x =
41.2020 ⇒ 20 + 41.202 = 61.202
55.9170 ⇒ 40 + 55.917 = 95.917
71.6130 ⇒ 60 + 71.613 = 131.613
11
Applied Numerical Methods 장 역행렬과 조건
11.2 오차 분석과 시스템 조건 (1/5)
역행렬은 시스템이 얼마나 불량한지를 판별하는 수단을 제공
(1) 행렬 [A]를조정하여각각의 행에서 최대 원소가 1이 되도록한다.
역행렬의 원소가 몇 백 또는 몇 천 이상이 되면
그 시스템은 불량조건에 있다.
(2) 역행렬 [A]-1 을 행렬 [A]에곱해서단위행렬 [I]에가까운지를본다.
근접하지 않으면 그 시스템은 불량조건에 있다.
(3) 역행렬 [A]-1의역행렬을구한다.
행렬 [A]에 충분히 가깝지 않으면 그 시스템은 불량조건에 있다.
불량조건을 나타낼 수 있는 하나의 수는 없을까?
11
Applied Numerical Methods 장 역행렬과 조건
11.2 오차 분석과 시스템 조건 (2/5)
벡터와 행렬의 놈
놈(Norm): 벡터나 행렬과 같이 여러 개의 원소를 갖는 수학적
실체의 크기 또는 길이
유클리디언 놈
벡터 에 대해서
n-차원 벡터
인 경우에 대해서
cbaF =
222 cbaFe
++=
nxxxX 21=
∑=
=n
iie
xX1
2
11
Applied Numerical Methods 장 역행렬과 조건
11.2 오차 분석과 시스템 조건 (3/5)
p 놈
→ (p = 1)
→ (p = 2), 2놈 = Euclidean 놈
→ (p = ∞), 최대-크기 또는 일정-벡터 놈
Frobenius 놈 (행렬 [A]에 대해)
pn
i
pip
xX/1
1
= ∑
=
∑=
=n
iixX
11
2X
inixX
≤≤∞=
1max
∑∑= =
=n
i
n
iije
aA1 1
2
11
Applied Numerical Methods 장 역행렬과 조건
11.2 오차 분석과 시스템 조건 (4/5)
Spectral 놈(크기를 가장 치밀하게 나타내는 최소 놈)
여기서 µmax = [A]T[A] 의 최대 고유값
열-합 놈
일정-행렬 또는 행-합 놈
2/1max2
)(µ=A
∑=≤≤
=n
iijnj
aA111
max
∑=≤≤∞
=n
jijni
aA11
max
11
Applied Numerical Methods 장 역행렬과 조건
11.2 오차 분석과 시스템 조건 (5/5)
행렬의 조건수
(≥ 1) 1][Cond −⋅= AAA
AA
AXX ∆
=∆
][Cond
11
Applied Numerical Methods 장 역행렬과 조건
예제 11.3 (행렬 조건수의 계산) (1/2)
Q. 지극히 불량한 조건을 지닌
다음과 같은 Hilbert 행렬에
대해 살펴보자.
행-합 놈을 3×3 Hilbert 행렬에대해 사용해 보자.
−++
+
121
21
111
11
41
31
21
131
211
nnnn
n
n
=
51
41
31
41
31
21
31
211
][A
11ijH
i j=
+ −
11
Applied Numerical Methods 장 역행렬과 조건
예제 11.3 (행렬 조건수의 계산) (2/2)
풀이)
각 행에서 최대 원소의 크기가
1이 되도록 정규화를 한다.
정규화한 행렬의 역행렬을 구하면
따라서 조건수는
35.2
167.2
833.1
5
3
4
31
4
1
3
21
3
1
2
11
][
⇒
⇒
⇒
=A
35.253
431 =++=
∞A
−−−
−=−
609030609636
10189][ 1A
1926096361 =−++−=∞
−A
2.451)192(35.2][Cond ==A
11
Applied Numerical Methods 장 역행렬과 조건
예제 11.4 (MATLAB에서 행렬 조건수의 계산) (1/3)
Q. 예제 11.3에서 다루었던 정규화한 Hilbert 행렬에 대해
MATLAB에서 놈과 조건수를 계산해 보자.
=
51
41
31
41
31
21
31
211
][A
11
Applied Numerical Methods 장 역행렬과 조건
예제 11.4 (MATLAB에서 행렬 조건수의 계산) (2/3)
>> A = [1 1/2 1/3; 1 2/3 1/2; 1 3/4 3/5]
A =
1.0000 0.5000 0.3333
1.0000 0.6667 0.5000
1.0000 0.7500 0.6000
>> norm(A,inf) % 행-합 놈
ans =
2.3500
>> cond(A,inf) % 행-합 놈으로 구한 조건수
ans =
451.2000
11
Applied Numerical Methods 장 역행렬과 조건
예제 11.4 (MATLAB에서 행렬 조건수의 계산) (3/3)
>> cond(A,'fro') % Frobenius 놈으로 구한 조건수
ans =
368.0866
>> cond(A) % Spectral 놈(p=2)으로 구한 조건수
ans =
366.3503
>> cond(A,2)
ans =
366.3503
11