345])ch11. matrix inverse and condition 행렬[a]가정방행렬이고, [a]의역행렬인[a]-1 ......

21
수치해석 수치해석 Numerical Analysis Numerical Analysis 161009 161009 Ch11. Matrix Inverse and Ch11. Matrix Inverse and Condition Condition

Upload: others

Post on 07-Feb-2021

2 views

Category:

Documents


0 download

TRANSCRIPT

  • 수치해석수치해석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