math.ewha.ac.krmath.ewha.ac.kr/~jylee/finite/textbook-2017/chap02.pdf · 6 78$9 :6 1 2 3 4 5 6 7 8...

30
열삭제 행삭제

Upload: others

Post on 28-Dec-2019

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: math.ewha.ac.krmath.ewha.ac.kr/~jylee/Finite/TextBook-2017/Chap02.pdf · 6 78$9 :6 1 2 3 4 5 6 7 8 0 2 5 8 >> b = [366 804 351 514]' % a new r.h.s. vector b = 366 804 351

2.1 행렬식과 선형연립방정식 35

2. 행렬의 응용

원래 MATLAB은 선형 대수적 계산을 간단히 하기 위해 쓰여 졌다. 가장 일

반적인 선형 대수 문제 중 하나는 연립 선형방정식의 해를 구하는 것이다. 예를 들어

다음과 같은 연립 방정식을 생각해보자.

1 2 34 5 67 8 0

x1

x2

x3

=

366804351

혹은 Aㆍx = b

위 방정식의 근의 존재 유무는 선형대수의 기본 문제(fundamental problem in linear

algebra)라 불린다. 이 문제에 대한 해답을 얻기 위해서는 행렬 A의 행렬식 |A|의 값을

구하여, 그 값이 0이 아니면 해가 존재함을 알 수 있다. 만약 근이 존재할 경우, 근을

찾기 위한 수치적 접근으로서 가우스 소거법(Gaussian elimination)과 LU factorization

등이 존재한다. 2.1절에서는 MATLAB을 이용해서 위와 같은 문제를 어떻게 해결하는

지를 알아볼 것이다.

이러한 선행대수 문제는 공학과 경제학, 산업공학 등과 같은 수많은 분야에서

활용되어진다. 2.2절에서는 경제학에의 응용인 투입-생산 분석법에 대해 공부한다. 투

입-생산 분석은 주어진 소비(consumption)와 수출 요구(export demands)를 만족시키기

위해 얼마나 많은 생산물(output)이 각각의 경제 구획에서 생산되어야만 하는지 결정하

는데 사용된다.

2.3절과 2.4절에서는 마코프 체인(Markov Chain)에 대해 공부한다. n개의 상태

{Ei, i=1,...,n}에 있을 확률이 각각 {pi, i=1,...,n}인 시스템이 있다고 하자. Ei의 상태에서

Ej의 상태로 바뀔 확률이 pij인 경우, 이 시스템이 시간이 지남에 따라 어떻게 변화하는

가에 대하여 연구하기 위한 방법의 하나가 마코프 체인이다. 2.5절에서는 마코프 체인

을 유전학에 응용한 경우에 대해 살펴볼 것이다.

2.1 행렬식과 선형연립방정식

n×n 행렬 A에서 i행과 j열을 지워버리면 (n-1)×(n-1)행렬을 얻는다. 이것을

Aij로 나타내고 원소 aij의 소행렬이라고 한다. 즉, Aij는 다음과 같은 모양이다.

A ij =

j열삭제i행삭제

a 11 … | … a 1n

- - a ij - -a n1 … | … a nn

1×1 행렬의 행렬식은 자기 자신이라고 정의하자. 즉, D([a]) = a이다. 그리고

수학적 귀납법에 의하여 이미 (n-1)×(n-1) 행렬에 대한 행렬식이 정의되어 있다고 가

정하고, n×n 행렬식을 다음과 같이 정의하자. 1≤i≤n인 임의의 정수 i에 대하여, A의

Page 2: math.ewha.ac.krmath.ewha.ac.kr/~jylee/Finite/TextBook-2017/Chap02.pdf · 6 78$9 :6 1 2 3 4 5 6 7 8 0 2 5 8 >> b = [366 804 351 514]' % a new r.h.s. vector b = 366 804 351

36 2. 행렬의 응용

행렬식 det(A)=|A|=D(A)은

D(A) = (-1)i+1ai1D(Ai1) + … +(-1)i+nainD(Ain)

와 같이 정의한다.

A1,…,An을 각각 n×n 행렬 A의 1, ... , n-번째 열을 표시하는 n차원 열벡터라 할 때,

D(A) = D(A1,…,An) 라 표시하기도 한다. 2×2 행렬 A= ( )a bc d

의 행렬식을 i=1행에 대

하여 전개하면

D([ ]a bc d )=(-1) 1+ 1a⋅D( [d])+(-1) 1+ 2b⋅D( [c])=ad-bc

와 같이 정의된다. 3×3 행렬

A= (a ij )=

a 11 a 12 a 13

a 21 a 22 a 23

a 31 a 32 a 33

의 행렬식을 제 1 행의 원소에 관해서 전개된다.

D(A) = a 11 | a 22 a 23

a 32 a 33|-a 12 | a 21 a 23

a 31 a 33|+a 13| a 21 a 22

a 31 a 32|

= a 11(a 22a 33-a 23a 32)-a 12(a 21a 33-a 23a 31)+a 13(a 21a 32-a 22a 31)

이를 일반화하면 n×n 행렬 A의 행렬식 |A|는 n!개의 항을 가지고 각 항은 임의의 행

과 임의의 열에서 한 번씩 추출된 성분의 곱으로 표시된다. 즉,

σ=(σ(1),σ(2),⋯,σ(n))을 1부터 n까지의 숫자를 나열한 모든 가능한 순열을 표시한

다고 할 때,

D(A)=∑σ

ε(σ) a σ ( 1),1 a σ ( 2), 2⋯a σ( n ), n

와 같이 표시된다. 여기서, ε(σ)는 순열 σ를 순열 ⋯으로 부터 두 숫자를 짝수

번 호환하여 만들 수 있으면 +1, 홀수번 호환하여 만들 수 있으면 -1의 값을 가진다.

예제 1.1 (행렬식의 계산)a = [2 1 0; 1 1 4; -3 2 5]a = 2 1 0 1 1 4 -3 2 5

>> a(1,1)*det(a(2:3,2:3)) - a(1,2)*det(a(2:3,[1 3])) + a(1,3)*det(a(2:3,1:2))ans = -23

>> det(a)ans = -23

Page 3: math.ewha.ac.krmath.ewha.ac.kr/~jylee/Finite/TextBook-2017/Chap02.pdf · 6 78$9 :6 1 2 3 4 5 6 7 8 0 2 5 8 >> b = [366 804 351 514]' % a new r.h.s. vector b = 366 804 351

2.1 행렬식과 선형연립방정식 37

이러한 행렬식을 이용하면 연립 1차 방정식을 푸는 방법을 유도할 수 있다.

정리 1.2(Cramer의 공식) n개의 n차 열벡터 A1,…,An으로 만들어진 n×n 행렬 A = (A1,…,An)의 행렬식이 0이 아닐 때, 즉

D(A) = D(A1,…,An)≠0

이라고 하자. 이때 n차 열벡터 B에 대하여 x1,…,xn가

Ax = A1x1 + … + Anxn = B

를 만족하면

x j=D(A 1,…,B,…A n )

D(A 1,…,A n ),j= 1,2,…,n

이다. 단, 분자에 들어있는 열벡터 B는 j 번째의 열 Aj 대신에 바꿔 놓은 것이다. 즉,

x j=

a 11 … b 1 … a 1n

⋮ ⋮ ⋮a n1 … b n … a nn

a 11 … a 1j … a 1n

⋮ ⋮ ⋮a n1 … a nj … a nn

이 정리에 의하면 D(A)가 0이 아닐 경우, A1,…,An에 관한 B의 해 xi를 구할

수 있다. 또, 다른 말로 표현하면 B를 A1,…,An의 1차 결합으로 나타내는 방법을 알 수

있다. 또, 이것은 연립방정식

a11x1 + … +a1nxn = b1

⋮ ⋮

an1x1 + … +annxn = bn

을 푸는 방법을 말해 주고 있다. 이를 이용하면 A의 역행렬 A-1을 쉽게 구할 수 있다.

Ej를 j번째의 성분만 1이고 나머지는 0인 j번째 n차 기본벡터라 할 때,

(A-1) ij=D(A 1,⋯,A i- 1,E j,⋯,A n)

D(A)=

(-1) i+ jD(A ij)

D(A)

이다. 즉, D(A)가 0이 아니면 그 역행렬을 구할 수 있다.

반대로 역행렬이 존재하면 D(A)가 0이 아닌가 라는 질문에 답하기 위해서는

D(AB) = D(A) D(B)라는 간단한 정리를 이용하면 된다. B를 A의 역행렬이라 하면, 좌

변은 D(I)=1이므로 좌변의 D(A)는 0일 수 없다. 따라서, “D(A)가 0이 아니다”와 “A의

역행렬이 존재한다”와 “Ax=b가 유일한 해를 가진다”는 서로 동치인 명제들이다.

예제 1.3 (Cramer's Rule) 다음 선형 연립 방정식을 풀어라.

3x + 2y + 4z = 12x - y + z = 0

Page 4: math.ewha.ac.krmath.ewha.ac.kr/~jylee/Finite/TextBook-2017/Chap02.pdf · 6 78$9 :6 1 2 3 4 5 6 7 8 0 2 5 8 >> b = [366 804 351 514]' % a new r.h.s. vector b = 366 804 351

38 2. 행렬의 응용

x + 2y + 3z = 1

>> A = [3 2 4; 2 -1 1; 1 2 3], b=[1 0 1]'A = 3 2 4 2 -1 1 1 2 3b = 1 0 1

>> x = det([b A(:,2) A(:,3)]) / det(A)x = -0.2000>> y = det([A(:,1) b A(:,3)]) / det(A)y = 0>> z = det([A(:,1) A(:,2) b]) / det(A)z = 0.4000

Cramer's Rule은 수학적으로 매우 매력적인 방법이지만 실용적이지는 못하다.

Cramer's rule을 이용하여 n차 연립 방정식의 해를 구하기 위해서는, n+1개의 n×n 행

렬식을 계산하여야 하고, 각각의 행렬식을 계산하는 가장 단순한 방법은 n!개의 항을

계산하여야 함으로 전체적으로는 O((n+1)!)번의 계산을 하여야 한다. 2!=2, 3!=6, 4!=24,

5!=120, 6!=720과 같이 계승의 값은 급속히 증가하여 10!=3628800, 15!=1.3 1012과 같이

매우 큰 수가 되어 아무리 빠른 컴퓨터로도 쉽게 계산할 수 없게 된다. 그러므로 n이

큰 경우 연립방정식을 풀기 위해서는 다른 방법을 이용해야 한다. 그 중 가장 대표적인

방법이 가우스 소거법(Gauss elimination)이라 불리는 방법이다. 선형연립방정식

1 2 34 5 67 8 0

x1

x2

x3

=

366804351

을 예로 하여, 가우스 소거법을 이용하는 방법을 생각해 보자. 구체적인 설명을 원하면

MATLAB 명령어 rref나 rrefmovie를 참조하거나 수치해석학 시간에 더욱 자세한 방법

에 대해 학습하도록 한다.

예제 1.4 (reduded row echlon 행렬과 가우스 소거법)>> A = [ 1 2 3; 4 5 6; 7 8 0], b=[366; 804; 351]A = 1 2 3 4 5 6 7 8 0

Page 5: math.ewha.ac.krmath.ewha.ac.kr/~jylee/Finite/TextBook-2017/Chap02.pdf · 6 78$9 :6 1 2 3 4 5 6 7 8 0 2 5 8 >> b = [366 804 351 514]' % a new r.h.s. vector b = 366 804 351

2.1 행렬식과 선형연립방정식 39

b = 366 804 351

>> R = [A b] % Augmented matrix R = 1 2 3 366 4 5 6 804 7 8 0 351

>> R(2,:) = R(2,:) - R(2,1)/R(1,1) * R(1,:)R = 1 2 3 366 0 -3 -6 -660 7 8 0 351 >> R(3,:) = R(3,:) - R(3,1)/R(1,1) * R(1,:)R = 1 2 3 366 0 -3 -6 -660 0 -6 -21 -2211

>> R(3,:) = R(3,:) - R(3,2)/R(2,2) * R(2,:) % Row Echlon Form R = 1 2 3 366 0 -3 -6 -660 0 0 -9 -891

>> z = R(3,4) / R(3,3) % Back substitutionz = 99 >> y = (R(2,4)-R(2,3)*z) / R(2,2)y = 22 >> x = (R(1,4)-R(1,3)*z-R(1,2)*y) / R(1,1)x = 25

선형 대수학(Linear Algebra)의 기본정리를 바탕으로 생각해보면, 이 연립방정

식에서 A의 determinant det(A)는 27≠0이므로 근은 유일하다. 이렇게 연립방정식의

근이 존재할 경우 MATLAB으로 근을 구하는 방법에는, x=A-1․b를 계산하는 경우와

x=A\b를 계산해내는 경우가 있다. x=A-1․b로 계산하는 경우는 inv 함수를 사용해서

A-1를 계산한다. 수학적으로는 역행렬을 가지는 행렬의 경우 두 연산이 동일한 의미를

지닌다. 그러나 계산에 있어서는, inv 함수를 이용한 전자의 경우보다 left division

operator를 사용하는 후자의 경우가 많은 이점을 가지고 있다. 우선 훨씬 더 적은 수의

Page 6: math.ewha.ac.krmath.ewha.ac.kr/~jylee/Finite/TextBook-2017/Chap02.pdf · 6 78$9 :6 1 2 3 4 5 6 7 8 0 2 5 8 >> b = [366 804 351 514]' % a new r.h.s. vector b = 366 804 351

40 2. 행렬의 응용

곱셈과 나눗셈을 사용하므로 속도가 더 빠르다. 뿐만 아니라 정확도(accuracy) 역시 더

높은데, 문제가 복잡할수록 더욱더 정확하다는 것을 알 수 있다. 그러나 이때도

MATLAB이 근을 찾을 수 없거나 정확히 찾을 수 없다면 에러 메시지를 출력한다.

예제 1.5 (inv(A)와 가우스 소거법)>> A=[1 2 3; 4 5 6; 7 8 0]; b=[366; 804; 351];>> x=inv(A)*b % inv(A)를 이용한 해법 x = 25.0000 22.0000 99.0000>> x=A\b % 가우스 소거법(LU factorization)을 사용한 해법 x = 25.0000 22.0000 99.0000

>> A=rand(10,10); b=rand(10,1); % 계산속도의 비교, 11!=39916800>> flops(0); x=inv(A)*b; flops % flops 명령은 일부 버전만 제공됨ans = 2645 >> flops(0); x=A\b; flopsans = 1350

>> A=[1 2 3; 4 5 6; 7 8 9]; b=[366; 804; 351]; % 계산 불능인 경우>> A\bWarning: Matrix is close to singular or badly scaled. Results may be inaccurate. RCOND = 2.937385e-018ans =-2808620808215176000 5617241616430352000 -2808620808215176000

일반적으로 방정식의 개수와 변수의 개수가 다르면 하나의 유일한 근이 존재

하지 않는다. 그러나 조건들을 추가함으로써 실제적인 근을 구할 수 있다. MATLAB에

서는 변수보다 방정식의 개수가 더 많은 경우 나눗셈 연산자 /와 \를 사용해서 자동적

으로 Aㆍx-b의 자승 오차가 최소화되는 근을 찾아준다. 이때의 근은 매우 실제적인

값이고, 이 근을 최소자승해 (least squares solution)이라고 부른다. 그럼 다음 예제에

서 살펴보자.

예제 1.6 (최소자승법의 의한 해)>> A = [1 2 3; 4 5 6; 7 8 0; 2 5 8] % 4 equations in 3 unknownsA =

Page 7: math.ewha.ac.krmath.ewha.ac.kr/~jylee/Finite/TextBook-2017/Chap02.pdf · 6 78$9 :6 1 2 3 4 5 6 7 8 0 2 5 8 >> b = [366 804 351 514]' % a new r.h.s. vector b = 366 804 351

2.1 행렬식과 선형연립방정식 41

1 2 3 4 5 6 7 8 0 2 5 8>> b = [366 804 351 514]' % a new r.h.s. vectorb = 366 804 351 514

>> x = A\b % compute the least squares solutionx = 247.9818 -173.1091 114.9273

>> res=A*x-b % this residual has the smallest norm.res = -119.4545 11.9455 0.0000 35.8364

반면에 변수의 개수보다 방정식의 개수가 더 적을 경우 무한히 많은 수의 근

이 존재할 수 있다. 이런 경우에 MATLAB은 두 가지 방법을 동시에 이용해서 근을

구해낸다. 즉 x의 원소 안에 0의 개수가 가장 많은 근을 주는 division operator를 사용

하고, 동시에 x=pinv(A)*b를 계산한 것은 x의 길이(length)나 norm이 모든 가능한 다

른 근들보다 더 작은 근을 준다. 근사역행렬(pseudoinverse)에 근거한 이 근은 또한 매

우 실제적인 값이고 최소 길이 해(minimum norm solution)으로 불린다.

예제 1.7 (최대 영원소 해와 최소 노름 해)>> A = A' % create 3 equations in 4 unknownsA = 1 4 7 2 2 5 8 5 3 6 0 8>> b = b(1:3) % new r.h.s. vectorb = 366 804 351

>> x = A\b % solution with maximun zero elementsx =

Page 8: math.ewha.ac.krmath.ewha.ac.kr/~jylee/Finite/TextBook-2017/Chap02.pdf · 6 78$9 :6 1 2 3 4 5 6 7 8 0 2 5 8 >> b = [366 804 351 514]' % a new r.h.s. vector b = 366 804 351

42 2. 행렬의 응용

0 -165.90000 99.0000 168.0000>> xn=pinv(A)*b % find minimum norm solutionxn = 30.8182 -168.9818 99.0000 159.0545

>> norm(x) % Euclidean norm with zero elementsans = 256.2200>> norm(xn) % minimum norm solution has smaller norm!ans = 254.1731

MATLAB에서는 수치 선형 대수(numerical linear algebra) 문제들을 풀기 위

한 유용한 많은 행렬 함수를 제공한다. 그럼 아래 표로 간단히 정리해보겠다.

행렬 함수들

balance(A) Scale to improve eigenvalue accuracy

cdf2rdf(A) Complex diagonal form to real block diagonal form

chol(A) Cholesky factorization

cond(A) Matrix condition number

condest(A) 1-norm matrix condition number estimate

d=eig(A), [V,D]=eig(A) Eigenvalues and eigenvector

det(A) Determinant

expm(A) Matrix exponential

exam1(A) M-file implementation of expm

exam2(A) Matrix exponential using Taylor series

exam3(A) Matrix exponential using eigenvalues and eigenvectors

funm(A,`fun') Compute general matrix function

hess(A) Hessenberg form

inv(A) Matrix inverse

logm(A) Matrix logarithm

lsconv(A,b,V) Least squares with known covariance

lu(A) Factors from Gaussian elimination

Page 9: math.ewha.ac.krmath.ewha.ac.kr/~jylee/Finite/TextBook-2017/Chap02.pdf · 6 78$9 :6 1 2 3 4 5 6 7 8 0 2 5 8 >> b = [366 804 351 514]' % a new r.h.s. vector b = 366 804 351

2.2 투입-생산 분석 43

.

행렬 함수들

nnls(A,b) Nonnegative least squares

norm(A) Matrix and vector norms:

norm(A,1) 1-norm,

norm(A,2) 2-norm(Euclidean),

norm(A,inf) infinity,

norm(A,p) P-norm(vectors only),

norm(A,`fro') F-norm

null(A) Null space

orth(A) Orthogonalization

pinv(A) pseudoinverse

poly(A) Characteristic polynomial

polyvalm(A) Evaluate matrix polynomial

qr(A) Othogonal-triangular decomposition

qrderete(Q,R,j) Delete column from qr factorization

qrinsert(Q,R,j,x) Insert column in qr factorization

qz(A,B) Generalized eigenvalues

rank(A) Number of linearly independent rows or columns

rcond(A) Reciprocal condition estimator

rref(A) Reduced row echelon form

rsf2csf(U,T) Real Schur form to complex Schur form

schur(A) Schur decomposition

sqrtm(A) Matrix square root

svd(A) Sinular value decomposition

trace(A) Sum of diagonal elements

2.2 투입-생산 분석

행렬 연산(matrix arithmetic)은 최근 경제학에서 역할이 증가하고 있는데, 특

히 투입-생산 분석(input-output analysis)이라 불리는 경제학의 분야에서 더욱 그렇다.

하버드(Harvard)의 경제학자 Vassily Leontief에 의해 연구되어지기 시작한 투입-생산

분석은, 주어진 소비(consumption)와 수출 수요(export demands)를 충족시키기 위해

얼마나 많은 생산물(output)이 각각의 경제 영역에서 생산되어야만 하는가를 결정하는

데 사용된다. 그러한 분석은 행렬 계산과 특히 행렬의 역행렬 계산이 매우 중요하다.

Page 10: math.ewha.ac.krmath.ewha.ac.kr/~jylee/Finite/TextBook-2017/Chap02.pdf · 6 78$9 :6 1 2 3 4 5 6 7 8 0 2 5 8 >> b = [366 804 351 514]' % a new r.h.s. vector b = 366 804 351

44 2. 행렬의 응용

투입-생산 분석은 경제 현상을 이해하는데 매우 중요해서, 1973년 Leontief는 이에 관

한 기초 작업을 한 공로를 인정받아 노벨경제상을 받았다.

경제를 운송, 농업, 철강 등의 많은 수의 산업으로 나눈다고 가정하자. 각각의

산업은 원재료(raw material) 또는 투입(input)을 사용해서 어떤 생산물(output)을 만들

어 낸다. 각각의 산업의 투입물(input)은 다른 산업들의 생산물(output)에 의해 일부분

연결된다. 예를 들어 음식을 생산하기 위해서 농업은 투입물로서 운송(트렉터와 트럭)

과 기름(가솔린과 비료)와 같은 다른 산업들의 생산물을 사용한다. 경제 산업 중 이러

한 상호 의존(interdependence)은 투입-생산 행렬(input-output matrix)이라고 불리는

행렬로 요약될 수 있다. 또한 각각의 산업의 투입 요구(input requirements)에 대한 한

개의 열(one column)이 존재한다. 전형적인 투입-생산 행렬은 다음과 같다. 이때, 화폐

를 단위로 하여 이 행렬의 원소를 표현하는 것이 가장 편리하다. 즉, 각각의 열은 일정

한 가치의 생산물을 생산하기 위해 산업에 필요한 다양한 투입물의 값을 나타낸다.

Input requirements of :

Industry 1 Industry 2 Industry 3 ……

Industry 1

From : Industry 2

Industry 3

……

이런 산업들의 생산물을 원하는 곳은 생산물을 만들어 내는 산업 자체 수요와

다른 소비자들에 의한 수요 두 가지가 존재한다. 소비자들이 요구하는 상품의 양은 경

제학에서 최종 수요량(final demand)이라고 불린다. 최종 수요량은, 그 산업으로부터

요구되는 생산물의 양을 원소로 가진 열 행렬에 의해 표현될 수 있다:

[Final demand] =

amount from industry 1

amount from industry 2

최종 수요량을 충족시키기 위해서 각각의 산업은 최종 수요량 보다 더 많은

생산을 하여야 한다. 왜냐하면, 이러한 생산물을 얻기 위해서 각 산업은 생산에 비례하

는 여러 투입물을 요구하기 때문이다. 따라서 얼마나 많은 생산물이 각각의 산업에 의

해 생산되어야 하는지를 결정하기 위해서는 생산물에서 생산에 투입된 양을 제외하고

남은 양이 최종 수요량과 같게 되도록 하여야 한다.

생산물의 적당한 레벨(level)이 어떻게 결정되는가를 다음 예제를 통해 살펴보

자. 우리가 다루려고 하는 경제는 단지 세 가지 산업, 석탄, 철강, 전기로 이루어졌다고

Page 11: math.ewha.ac.krmath.ewha.ac.kr/~jylee/Finite/TextBook-2017/Chap02.pdf · 6 78$9 :6 1 2 3 4 5 6 7 8 0 2 5 8 >> b = [366 804 351 514]' % a new r.h.s. vector b = 366 804 351

2.2 투입-생산 분석 45

가정하자. 이 산업들의 각각은 원료의 일부를 다른 산업에 의존한다. 석탄 1백만원 어

치를 생산하기 위해 석탄은 전혀 필요 없지만 철강 2만원과 전기 1만원이 쓰인다고 가

정하자. 또 철강 1백만원 어치를 만드는데 15만원의 석탄과 3만원의 철강과 8만원의 전

기가 쓰이고, 1백만원 어치의 전기를 만드는데 43만원의 석탄과 20만원의 철강과 5만원

의 전기가 필요하다고 하자. 이를 투입-생산 행렬(input-output matrix) A를 이용하여

표시하면 다음과 같다.

Coal Steel Electricity

Coal 0 .15 .43A= Steel .02 .03 .20

Electricity .01 .08 .05

여기서 20억원의 석탄, 10억원의 철강, 30억원의 전기를 최종 소비할 수 있게 만들려고

한다. D는 최종 수요량 행렬(final-demand matrix)를 표시하고 D 안의 숫자들은 10억

원 단위를 나타낸다고 한다면,

D=

213

이다. 그렇다면, 이러한 최종 수요량 D를 얻기 위해 각각의 산업에서는 얼마나 많은 생

산을 하여야 하는가? 우리의 문제는 생산 과정으로부터 남겨진 이상적인 양을 생산하

는 X=

xyz를 결정하는 것이다. 여기서 x는 석탄 산업, y는 철강 산업, z는 전기 산업

의 생산물을 10억원 단위로 표시한 것이다. 이때,

소비될 수 있는 석탄의 양 = x - [ 생산에 사용되는 석탄의 양 ]

이 된다. 생산에 사용되는 석탄의 양을 결정하기 위해, 투입-생산 행렬을 사용하자. 석

탄을 x 생산하려면 0원의 석탄과 .15y의 철강과 .43z 의 전기가 생산되어야 한다. 그러

므로,

[ 생산을 위해 사용되는 석탄의 양 ] = 0․x + .15y + .43z .

이 양은 행렬 곱셈의 첫 번째 원소가 된다. 즉,

CoalSteel

Electr icity used in producti on

=

0 .15 .43.02 .03 .20.01 .08 .05

xyz

=AX .

그러나 생산을 제외한 소비 목적의 각각의 생산물의 양은 X - AX이다. 즉, 행렬 방정

식으로 나타내면:

X - AX = (I - A)X = D.

이 방정식을 X에 대해 풀면,

X = (I - A)-1D.

Page 12: math.ewha.ac.krmath.ewha.ac.kr/~jylee/Finite/TextBook-2017/Chap02.pdf · 6 78$9 :6 1 2 3 4 5 6 7 8 0 2 5 8 >> b = [366 804 351 514]' % a new r.h.s. vector b = 366 804 351

46 2. 행렬의 응용

예제 2.1 (투입-생산 행렬과 최종 수요)>> A = [0 .15 .43; .02 .03 .2; .01 .08 .05], D=[2; 1; 3]A = 0 0.1500 0.4300 0.0200 0.0300 0.2000 0.0100 0.0800 0.0500D = 2 1 3

>> eye(3)-Aans = 1.0000 -0.1500 -0.4300 -0.0200 0.9700 -0.2000 -0.0100 -0.0800 0.9500>> inv(eye(3,3)-A)ans = 1.0089 0.1971 0.4982 0.0234 1.0537 0.2324 0.0126 0.0908 1.0774>> inv(eye(3,3)-A) * Dans = 3.7095 1.7978 3.3483

>> ans - A * ansans = 2.0000 1.0000 3.0000

투입-생산 분석(input-output analysis)은 대개 수백 개의 산업을 가진 국가의

내부 경제에 적용된다. 결과 행렬 방정식 (I - A)X = D는 가우스 소거법(Gaussian

elimination method)에 의해 직접 풀 수 있었다. 그러나 앞서의 예제에서처럼 I - A의

역행렬을 계산하고, X를 푸는 것이 때로는 가장 좋은 방법이 된다. 그 이유는 많은 경

우, D가 바뀐다 하더라도 A는 거의 바뀌지 않기 때문이다. 그러므로 새로운 수요량 D

를 만족하는 적당한 생산물의 양은 이미 계산해 둔 (I - A)-1을 사용해서 결정할 수 있

다.

예제 2.2 (생산과 최종수요)한 복합 기업(conglomerate)은 세 부분으로 이루어져 있는데 컴퓨터와 반도체를 생산하는 곳과 사무팀으로 나누어져 있다. 각각 $1의 생산물을 얻기 위해서는, 컴퓨터 분야는 $.02어치의 컴퓨터와 $0.20어치의 반도체와 0.10어치의 사무력이

Page 13: math.ewha.ac.krmath.ewha.ac.kr/~jylee/Finite/TextBook-2017/Chap02.pdf · 6 78$9 :6 1 2 3 4 5 6 7 8 0 2 5 8 >> b = [366 804 351 514]' % a new r.h.s. vector b = 366 804 351

2.2 투입-생산 분석 47

필요하고, 반도체 분야는 $.02어치의 컴퓨터, $.01의 반도체, $.02의 사무력이 필요하며, 사무팀은 $.10의 컴퓨터, $.01의 사무력이 필요하다. 이 복합 기업의 판매 견적서에서 컴퓨터 분야에 $300,000,000, 반도체 분야에 $100,000,000, 그리고 사무팀에 $200,000,000을 생산하도록 요구했다면, 이 요구를 만족시키기 위해 각각의 부서들은 얼만큼을 생산해야 할까?

>> A = [.02 .02 .10; .20 .01 0; .01 .02 .01 ], D=[3e8; 1e8; 2e8]A = 0.0200 0.0200 0.1000 0.2000 0.0100 0 0.0100 0.0200 0.0100D = 300000000 100000000 200000000

>> (eye(3,3)-A)\Dans = 1.0e+008 * 3.3085 1.6785 2.0875

앞서 말한 경제에 대한 묘사는 대개 Leontief open model이라고 불리는데

이유는 수출을 그 경제와 다른 나라가 교역하는 행위로서 보는 관점 때문이다. 그러나

수출을 그 경제 안의 다른 산업과의 행위로서 생각하는 것도 가능하다. 수요량 열

(demand column)인 D에 의해 묘사된 수출량 대신에 투입-생산 행렬(input-output

matrix) 안의 한 열(a column)에 의해 묘사한다. 즉, 수출량에 대한 열은 다양한 산업

중에서 각각의 수출량의 값을 나누는 방법을 묘사한다. 지금 수출을 또 다른 산업으로

간주하고 있기 때문에, 원래의 열들의 각각은 어떤 원소가 더해지는데, 즉, 상품을 $1

생산하는데 사용되는 수출 산업(export industry)으로부터의 생산물의 양이 더해지는

것이다. 만약 A가 확장된 투입-생산 행렬을 표시하고 X가 이전의 생산 행렬

(production matrix as before)을 표시한다면 AX는 각각의 산업들에 의해 얻었던 총

수요량(total demand)을 묘사한 행렬이 된다. 경제에 대한 효과적인 기능을 위해서, 다

양한 산업들에 의해 요구되는 총량(total amount)은 생산된 양과 같아야 한다. 즉, 생산

행렬(production matrix)은 다음 방정식을 만족해야만 한다.

AX = X.

이 방정식의 근을 연구하는 것에 의해 그 경제의 안정된 상태를 결정하는 것이 가능하

다. 즉, 생산되는 양이 정확히 다양한 산업들에 필요로 하는 양과 같은 생산 행렬 X를

결정할 수 있다는 것이다. 이런 모델을 Leontief closed model이라고 부른다.

Page 14: math.ewha.ac.krmath.ewha.ac.kr/~jylee/Finite/TextBook-2017/Chap02.pdf · 6 78$9 :6 1 2 3 4 5 6 7 8 0 2 5 8 >> b = [366 804 351 514]' % a new r.h.s. vector b = 366 804 351

48 2. 행렬의 응용

2.3 마코프 체인(Markov chains)

임의의 시간에서 시스템의 상태가 Ei일 확률이 ai라고 가정하자. 그러면 확률

벡터 A = [a1, a2,…, an]에 의해 이러한 확률들을 표현할 수 있는데, 확률 벡터 A =

{a1, a2, a3, a4}의 각 성분들은 음수가 아니며(nonnegative) 합이 1이 된다. 확률 벡터 A

를 이용하면 한 시스템이 어느 순간 각각의 상태에 있을 확률을 표시할 수 있기 때문

에, A를 어느 시간의 시스템 확률 분포(the probability distribution of the system at

that time)라고 부른다.

A(0) = [a1(0), a2

(0),…, an(0)]는 초기 확률 분포(initial probability distribution; the

distribution when the process begins)를 표시하고 A(k) = [a1(k), a2

(k),…, an(k)]는 처음에

서 k 번째 단계 이후의 확률 분포를 표시한다고 하자. 정방 행렬(square matrix) P =

[pij]의 각 행들이 확률 벡터이면 P를 변환 행렬(transition matrix)라고 부른다.

예를 들어, 네 가지의 다른 상황 E1, E2, E3, E4가 존재하는 시스템에서, Ei의

상황에서 Ej의 상황으로 시스템이 바뀔 확률이

E1 E2 E3 E4

(1) p=

E 1

E 2

E 3

E 4

p 11 p 12 p 13 p 14

p 21 p 22 p 23 p 24

p 31 p 32 p 33 p 34

p 41 p 42 p 43 p 44

와 같이 주어지는 시스템을 Markov chain이라 부른다.

정리 3.1 만약 P가 Markov chain process의 변환 행렬이면, A(k) = A(0)Pk 이다.

((증명)) 간단하게 2 가지 상태의 Markov chain에 대해 정리 3.1을 증명하겠다. n 가지

상태의 Markov chain에 대한 증명은 이와 유사하다. 먼저 E1과 E2를 Markov chain의 두

가지 상태라고 하고 Markov chain의 변환 행렬을 다음과 같다고 하자.

E1 E2

(2) P=E 1

E 2[ ]p 11 p 12

p 21 p 22

k 번째 단계에서의 결과로서 보여 지는 변환을 보여주는 tree는 다음 [그림2-1]

과 같다.

E1

p11E1

p12E2

Page 15: math.ewha.ac.krmath.ewha.ac.kr/~jylee/Finite/TextBook-2017/Chap02.pdf · 6 78$9 :6 1 2 3 4 5 6 7 8 0 2 5 8 >> b = [366 804 351 514]' % a new r.h.s. vector b = 366 804 351

2.3 마코프 체인(Markov chains) 49

E2

p21E1

p22E2

state after state after

(k-1)th step kth step

[그림2-1 Markov Chain Process에 의한 상태 변화]

A(k-1) = [a1(k-1), a2

(k-1)]와 A(k) = [a1(k), a2

(k)]를 각각 (k-1) 번째 단계와 k 번째 단계

이후의 확률 분포라고 가정하자. 그러면 k 번째 단계 이후에 E1 상태에서의 확률이

(3) a k1=a ( k- 1)

1 p 11+a k- 12 p 21

이라는 것은 tree diagram을 통해서 명확하게 알 수 있다. 유사하게 E2에 대해서는

(4) a k2=a ( k- 1)

1 p 12+a k- 12 p 22 .

matrix multiplication의 정의에 의해 식 (3)과 (4)는 다음과 같은 형태로 표현할 수 있다.

(5) A ( k)=A ( k- 1)P.

(5)에서 k = 1, 2,…, 로 두면

A ( 1)=A ( 0)PA ( 2)=A ( 1)P

(6) ⋮ ⋮

A ( k)=A ( k- 1)P.

따라서,

(7) A ( k)=A ( k- 1)P=A ( k- 2)P 2=…=A ( 0)P k. ▨

만약 시스템이 Ei인 상태에서 시작한다면, pij(k)는 시스템이 k 단계 후에 Ej의

상태가 될 확률을 표시한다. 이런 수들을 다음과 같이 표시되는 행렬로 정렬할 수 있는

데 이 경우의 행렬을 k-단계 변환 행렬(k-step transition matrix)라고 부른다.

(8) p ( k)=

p ( k)11 p ( k)

12 … p ( k)1n

p ( k)21 p ( k)

22 … p ( k)2n

⋮ ⋮ ⋮p ( k)

n1 p ( k)n2 … p ( k)

nn

P가 Markov chain process의 변환 행렬이라고 하면 k-단계 변환 행렬은 P의 k승과 같

다. 즉, P(k) = Pk가 된다.

예제 3.2 (간단한 Markov 모델) 한 남자는 Chevrolet, Dodge, Mercury를 한 대씩을 가지고 있다. 그는 매일 차를 가지고 사무실에 출근한다. 그의 운전 습관은 이틀 연속으로 같은 차를 타지 않는 것이다. 만약 어느 날 그가 Chevrolet으로 출근했다면 다음날 Dodge나 Mercury를 탈

Page 16: math.ewha.ac.krmath.ewha.ac.kr/~jylee/Finite/TextBook-2017/Chap02.pdf · 6 78$9 :6 1 2 3 4 5 6 7 8 0 2 5 8 >> b = [366 804 351 514]' % a new r.h.s. vector b = 366 804 351

50 2. 행렬의 응용

확률은 똑같다. 만약 Dodge로 출근했다면 다음날 Chevrolet을 몰 확률은 0.7이고, 만약 Mercury로 출근했다면 다음날 Chevrolet으로 출근할 확률은 0.4이다. 그렇다면, 만약 그가 월요일에 Dodge로 출근했다면 이틀 후 수요일에 Mercury를 몰고 나갈 확률은 얼마인가?

>> P = [0 .5 .5; .7 0 .3; .4 .6 0]P = 0 0.5000 0.5000 0.7000 0 0.3000 0.4000 0.6000 0

>> [0 1 0] * P^2ans = 0.1200 0.5300 0.3500

즉, 수요일 Mercury로 출근할 확률은 35%이다.

영이 아닌 행벡터 A = [a1, a2,…, an]가 만약 AB = A를 만족하면, A를 정방

행렬(square matrix) B의 고정 벡터(fixed vector) 또는 고정점(fixed point)이라고

부른다. 유사하게. 만약 BC = C 이면, 열벡터 C를 B의 고정 벡터 또는 고정점이라고

부른다. 그러나 0 벡터의 경우는 항상 0B = B0 = 0을 만족시키기 때문에 행렬의 고정

점의 정의에 포함시키지 않는다.

만약 A가 B의 고정점이면, 임의의 실수 a≠0에 대해, 벡터 aA는 항상 B의 고

정점이다. 왜냐하면, a≠0인 실수에 대하여 aA는 0벡터가 아니고, (aA)B = a(AB) =

aA이기 때문이다. 따라서, aA는 B의 고정점이고, 모든 고정점은 그에 대응되는 확률

벡터를 가진다.

예제 3.3 (고정점과 확률벡터)

[8, 9]가 P=

14

34

23

13

의 고정점임을 보이고, P의 고정점인 확률 벡터를 찾아라.

>> format rat % format 명령은 일부 버전에만 제공됨>> P = [1/4 3/4; 2/3 1/3], A = [8 9]P = 1/4 3/4 2/3 1/3 A = 8 9

>> A*Pans =

Page 17: math.ewha.ac.krmath.ewha.ac.kr/~jylee/Finite/TextBook-2017/Chap02.pdf · 6 78$9 :6 1 2 3 4 5 6 7 8 0 2 5 8 >> b = [366 804 351 514]' % a new r.h.s. vector b = 366 804 351

2.3 마코프 체인(Markov chains) 51

8 9>> A / sum(A)ans = 8/17 9/17

변환 행렬 P는, 만약 어떤 양의 정수 m에 대하여 Pm의 모든 원소들이 양

(positive)이면, 정규(regular) 변환 행렬이라고 부른다.

예제 3.4 (정규변환행렬)

변환 행렬 P=

0 114

34

는 regular임을 보이고, 행렬 P= [ ]1 00 1

는 regular가

아님을 보여라.

>> P = [0 1; 1/4 3/4]P = 0 1 1/4 3/4 >> P*Pans = 1/4 3/4 3/16 13/16

>> P = [1 0; 0 1]P = 1 0 0 1 >> P*Pans = 1 0 0 1

다음의 정리는 정규 변환 행렬과 그것의 고정점과의 관계를 보여주는 중요한

정리이다.

정리 3.5 정규변환행렬 P는 (1) 유일한 고정점 확률벡터 A를 가지고 그 벡터의 모든

성분은 양수이다. (2) 고정점 확률벡터 A를 행으로 하여 만들어진 행렬을 T라 할 때,

limk→∞

Pk=T이다. (3) 임의의 확률 벡터 X에 대하여, limk→∞

XPk=A가 된다.

정리의 증명은 생략하고 행렬 P= [ ]0.4 0.60.2 0.8

에 대한 계산으로써 그 설명을

대신한다. AP = A인 확률 벡터 A=[x, y]를 찾으려한다. A가 확률 벡터이기 때문에

Page 18: math.ewha.ac.krmath.ewha.ac.kr/~jylee/Finite/TextBook-2017/Chap02.pdf · 6 78$9 :6 1 2 3 4 5 6 7 8 0 2 5 8 >> b = [366 804 351 514]' % a new r.h.s. vector b = 366 804 351

52 2. 행렬의 응용

x+y = 1이여야 하고, 따라서 y = 1-x이다. 그러므로 [x,1-x][ ]0.4 0.60.2 0.8

= [x,1-x]

인 x를 찾으면 된다. 연립 방정식 0.2x+0.2 = x와 -0.2x+0.6 = 1-x 으로부터 x = 0.25

일 때, A = [0.25, 0.75]가 P의 유일한 고정 확률 벡터임을 알 수 있다.

P, P2, P3, …이 정말로 행렬 T=[ ]0.25 0.750.25 0.75

에 가까이 가는지 알아보기 위

해 몇 가지의 P의 제곱승들을 계산해보면,

P 2= [ ]0.28 0.720.24 0.76

,P 3= [ ]0.256 0.7440.248 0.752

,P4= [ ]0.2512 0.74880.2496 0.7504

,P 5= [ ]0.2502 0.74980.2499 0.7501

와 같이 T에 접근함을 알 수 있다.

예제 3.6 (정규 변환 행렬과 고정점)Asma Corporation(A), Bronkial Brothers(B), Coufmore Company(C)는 각각의 회사가 시장의 1/3씩을 점유했을 때, 동시에 새로운 담배를 선보이기로 결심했다. 그러자 그 해 동안 다음과 같은 경우가 발생했다:(1) A는 소비자의 40 퍼센트를 얻고 B에 30 퍼센트를, C에 30 퍼센트를 잃었다.(2) B는 소비자의 30 퍼센트를 얻고 A에 60 퍼센트를, C에 10 퍼센트를 잃었다.(3) C는 소비자의 30 퍼센트를 얻고 A에 60 퍼센트를, B에 10 퍼센트를 잃었다.각각의 회사는 2년 말에 시장에서 얼마의 몫을 차지하고 있겠는가? 또, 이 제품을 계속 생산한다고 가정하면, 이 세 회사의 시장점유율은 얼마에서 안정되겠는가?

>> format rat>> P = [.4 .3 .3; .6 .3 .1; .6 .1 .3], X=[1/3, 1/3, 1/3]P = 2/5 3/10 3/10 3/5 3/10 1/10 3/5 1/10 3/10 X = 1/3 1/3 1/3

>> X*P^2 % 2년 후의 시장 점유율ans = 37/75 19/75 19/75>> format>> P^2ans = 0.5200 0.2400 0.2400 0.4800 0.2800 0.2400 0.4800 0.2400 0.2800>> P^4 % 4년 후의 시장 점유율ans = 0.5008 0.2496 0.2496 0.4992 0.2512 0.2496 0.4992 0.2496 0.2512

Page 19: math.ewha.ac.krmath.ewha.ac.kr/~jylee/Finite/TextBook-2017/Chap02.pdf · 6 78$9 :6 1 2 3 4 5 6 7 8 0 2 5 8 >> b = [366 804 351 514]' % a new r.h.s. vector b = 366 804 351

2.4 흡수 마코프 체인 53

>> P^6 % 6년 후의 시장 점유율ans = 0.5000 0.2500 0.2500 0.5000 0.2500 0.2500 0.5000 0.2500 0.2500

오랜 시간 후에는 Asma Corporation이 시장의 약 50%를 장악하고 Bronkial Brothers와 Coufmore Company는 각각 대략 시장의 25%를 얻을 것이다.

2.4 흡수 마코프 체인

Markov chain의 상태 Ei는, 만약 process가 이 상태에 넣었을 때 그대로라면

흡수상태(absorbing state)라고 불린다. 이 정의로부터 Ei가 흡수상태라는 것과 변환

행렬 P의 i 번째 행이 main diagonal에서는 1을 갖고 나머지에서는 0을 갖는다는 것이

필요충분조건임을 쉽게 알 수 있다. 만약 적어도 하나가 흡수 상태(absorbing state)이

고 모든 비흡수(nonabsorbing) 상태에서 흡수 상태로 가는 것이 가능하다면, 그 때의

Markov chain을 흡수 마코프 체인(absorbing markov chain)이라고 한다.

예를 들어, 강길동은 $2를 가지고 부유한 홍교수와 내기를 하고 있다고 하자.

강길동은 경기마다 $1를 건다. 그의 경기에서 이길 확률은 2/5이고 , 그는 총 $4를 가

지거나 가진 돈을 모두 잃을 때까지 경기를 하기로 결심했다. 이 absorbing Markov

chain에 대한 변환 행렬을 생각해 보자. 이 Markov chain의 상태는 $0, $1, $2, $3, $4

이다. Absorbing인 경우는 $0과 $4이고, 나머지가 nonabsorbing임은 명확하다. 따라서

변환 행렬은

0 1 2 3 4

P =

0

1

2

3

4

1 0 0 0 0

35

025

0 0

035

025

0

0 035

025

0 0 0 0 1

와 같다. 지금부터 E0와 E4는 absorbing이고 E1, E2, E3은 nonabsorbing인 일반적인 5가

지 상태의 Markov chain을 생각해보자. 이 과정(process)의 변환 행렬이 다음과 같다

고 가정하자.

Page 20: math.ewha.ac.krmath.ewha.ac.kr/~jylee/Finite/TextBook-2017/Chap02.pdf · 6 78$9 :6 1 2 3 4 5 6 7 8 0 2 5 8 >> b = [366 804 351 514]' % a new r.h.s. vector b = 366 804 351

54 2. 행렬의 응용

E 0 E 1 E 2 E 3 E 4

P=

E 0

E 1

E 2

E 3

E 4

1 0 0 0 0p 10 p 11 p 12 p 13 p 14

p 20 p 21 p 22 p 23 p 24

p 30 p 31 p 32 p 33 p 34

0 0 0 0 1

여기서 absorbing 상태인 E0와 E4가 제일 앞에 오도록 행과 열을 바꾸면,

E 0 E 4 E 1 E 2 E 3

P=

E 0

E 4

E 1

E 2

E 3

1 0 0 0 00 1 0 0 0

p 10 p 14 p11 p 12 p 13

p 20 p 24 p21 p 22 p 23

p 30 p 34 p31 p 32 p 33

=

I | 0- -R | S

와 같다. 이 때 I는 2×2 항등 행렬(identity matrix)이고 0은 2×3 영 행렬(zero

matrix), R은 3×2 행렬, S는 3×3 정방 행렬(square matrix)이다. 만약 k개의

absorbing한 상태를 가지는 n×n 변환 행렬이 있다면, 적당한 행과 열의 재배열에 의

해 다음과 같은 형태로 표현할 수 있다.

P=

I | 0- -R | S

.

이 때 I는 k×k 항등 행렬, 0은 k×(n-k) 영 행렬, R은 (n-k)×k 행렬, S는 order가

n-k인 행렬이고, 이와 같은 형태를 canonical(standard) form이라고 부른다.

absorbing Markov chain에 대해 다음과 같은 세 가지 중요한 질문을 할 수

있는데: (I) 비흡수 상태인 Ei에서 시작했을때, 이 과정(process)이 비흡수 상태인 Ej에

도달할 기대횟수(expected mean or average number)는 얼마일까? (II) 비흡수 상태Ei

로부터 시작할 때, 흡수 상태에 도달하기까지의 기대횟수는 얼마일까? (III) 비흡수 상

태인 Ei에서 시작한다면 이 과정(process)이 특별한 absorbing한 Ej에서 흡수될 확률

은 얼마인가?

우선 (I)에 대한 답은 다음의 정리로 알 수 있다.

정리 4.1 k개의 absorbing한 상태를 가지는 absorbing Markov chain에 대하여 canonical

form이 canonical 꼴로 주어진다고 하자. 그러면 N = [I - S]-1의 원소들은 process가 각

각 가능한 비흡수 상태에서 시작하는 것에 대해서 비흡수 상태가 되는 것의 횟수에 대

한 기대회수를 준다. 이 때, I는 order가 n-k인 항등 행렬이다.

((증명)) 2개의 absorbing한 상태를 가진 다섯 가지 상태를 가진 Markov chain에 대해 증

명할 것이다. 일반적인 경우의 증명은 이와 유사하다. {E0, E1, E2, E3, E4}를, E0와 E4는

absorbing 상태를 가지는 것이고 E1, E2, E3은 비흡수 상태를 가지는 5가지 상태의

absorbing Markov chain이라고 하자. 이 chain의 변환 행렬에 대한 canonical form

Page 21: math.ewha.ac.krmath.ewha.ac.kr/~jylee/Finite/TextBook-2017/Chap02.pdf · 6 78$9 :6 1 2 3 4 5 6 7 8 0 2 5 8 >> b = [366 804 351 514]' % a new r.h.s. vector b = 366 804 351

2.4 흡수 마코프 체인 55

P=

I | 0- -R | S

꼴로 주어진다고 하자. 만약 과정(process)이 비흡수 상태인 Ei에서 시작

한다면 nij를 비흡수 상태인 Ej가 되는 횟수의 기대값이라고 표시하자. process가 E1에서

시작한다고 가정하면 숫자

x= p 11n 11+p 12n 21+p 13n 31

는 process가 E1의 상태에서 시작된 후에 E1으로 되돌아오는 횟수에 대한 expected

number이다. 그러나 processs는 이미 E1의 상태이기 때문에

1+x= 1+ p 11n 11+p 12n 21+p 13n 31

이 process가 E1 상태가 되는 횟수의 총 기대횟수이다. 따라서,

n 11=1+ p 11n 11+p 12n 21+p 13n 31 .

유사하게,

n 12=p 11n 12+p 12n 22+p 13n 32 .

i = 1, 2, 3과 j = 1, 2, 3에 대해 일반적으로 적어보면,

n ij=e ij+p i1n 1j+p i2n 2j+p i3n 3j

여기서 만약 i = j이면 eij = 1이고, i≠j이면 eij = 0. 이 방정식은 다음과 같은 행렬의 형

태로 쓸 수 있다.

N = I + SN,

이고 만약 [I - S]의 역행렬이 존재한다고 가정하면,

N = [I - S]-1. ▨

[I - S]는 nonsingular임이 증명될 수 있으므로 이것의 역행렬은 항상 존재한

다. 특히, N = [I - S]-1은 absorbing chain에 대한 기본행렬(fundamental matrix)이

라고 불린다. 다음으로 N의 특별한 행의 원소들의 합이 질문 (II)의 답을 제공함을 알

아볼 것이다. 예를 들어, n21 + n22 + n23은 만약 process가 E2 상태에서 시작한다면

absorption전의 단계의 expected number를 준다. 일반적으로 만약 process가 Ei에서 시

작한다면, [I - S]-1의 i 번째 행의 원소들의 합

ni,1 + ni,2 + … + ni,n-k

은 absorption 이전의 단계의 expected number이다.

예제 4.2 (흡수 체인의 기본행렬)앞의 게임의 예에 대한 absorbing Markov chain의 fundamental matrix를 계산하고 결과를 설명하라.

>> format rat

>> P=[1 0 0 0 0; 3/5 0 2/5 0 0; 0 3/5 0 2/5 0; 0 0 3/5 0 2/5; 0 0 0 0 1]

P =

1 0 0 0 0

Page 22: math.ewha.ac.krmath.ewha.ac.kr/~jylee/Finite/TextBook-2017/Chap02.pdf · 6 78$9 :6 1 2 3 4 5 6 7 8 0 2 5 8 >> b = [366 804 351 514]' % a new r.h.s. vector b = 366 804 351

56 2. 행렬의 응용

3/5 0 2/5 0 0

0 3/5 0 2/5 0

0 0 3/5 0 2/5

0 0 0 0 1

>> P = P([1 5 2 3 4], [1 5 2 3 4])

P =

1 0 0 0 0

0 1 0 0 0

3/5 0 0 2/5 0

0 0 3/5 0 2/5

0 2/5 0 3/5 0

>> S = P(3:5, 3:5)

S =

0 2/5 0

3/5 0 2/5

0 3/5 0

>> N = inv(eye(3)-S)

N =

19/13 10/13 4/13

15/13 25/13 10/13

9/13 15/13 19/13

N의 원소들은 Mr. Slipstik이 만약 $1, $2, $3을 가지고 시작한다면 absorption전에 똑같은 양을 가지는 각각의 횟수의 expected number이다. 예를 들어, 2행 1열의 15/13은 $2로 시작했을 때 $1을 가질 횟수의 expected number이다. 더욱이 만약 그가 $2로 시작했다면 N의 2번째 행의 원소들의 합인 15/13 + 25/13 + 10/13 = 50/13(3에서 4회 사이)은 absorption 전의 경기의 expected number를 말해 준다.

질문 (III)에 대한 답은 다음 정리로 알 수 있다.

정리 4.3 k개의 흡수 상태를 가진 흡수 Markov chain의 canonical form이 P=[I O; R S]

와 같이 주어졌다고 하자. 그러면 행렬 C = NR, N = [I -S]-1의 원소 cij는, 만약 process

가 비흡수 상태인 Ei에서 시작한다면 흡수 상태인 Ej에 흡수될 확률을 준다.

((증명)) 정리 4.1의 경우처럼 5가지 상태의 흡수 Markov chain에 대해 증명하도록 하겠

다. 일반적인 경우는 이와 유사하다. Ei는 비흡수 상태이고 Ej는 흡수 상태라고 하자.

process가 E1 상태에 있다고 가정하고, process가 상태 E4에 흡수되는 확률 c14를 계산

하고자 한다. process는 확률 p14로 E4에 직접적으로 가거나, 비흡수상태 Ek로 가서 결

국에는 E4에 도달한다.

Page 23: math.ewha.ac.krmath.ewha.ac.kr/~jylee/Finite/TextBook-2017/Chap02.pdf · 6 78$9 :6 1 2 3 4 5 6 7 8 0 2 5 8 >> b = [366 804 351 514]' % a new r.h.s. vector b = 366 804 351

2.4 흡수 마코프 체인 57

p14

p11

p12

p13

E4

E1 E1 c14 E4

E2 c24 E4

E3 c34 E4

[그림 2-2 상태 E1에서 시작하여 상태 E4에 흡수되는 경우의 수]

[그림 2-2]의 tree diagram으로부터

c 14= p 14+p 11c 14+p 12c 24+p 13c 34 .

일반적으로 i = 1, 2, 3과 j = 0, 4에 대해서

c ij=p ij+p i1c 1j+p i2c 2j+p i3c 3j.

이 방정식들을 행렬의 형태로 쓰면,

c 10 c 14

c 20 c 24

c 30 c 34

=

p 10 p 14

p 20 p 24

p 30 p 34

+

p 11 p 12 p 13

p 21 p 22 p 23

p 31 p 32 p 33

c 10 c 14

c 20 c 24

c 30 c 34

처럼 된다. 즉, C = R + SC 또는 C - SC = [I - S]C = R,

따라서

C = [I - S]-1R = N R. ▨

예제 4.4 (흡수 상태로의 확률)예제 4.2에서, (a) Mr. Slipstik이 돈을 모두 잃을 확률과 (b) Mr. Slipstik이 총 $4를 가지게 될 확률을 구하라.

>> R = P(3:5, 1:2)R = 3/5 0 0 0 0 2/5>> C = inv(eye(3)-S)*Rans = 57/65 8/65 9/13 4/13 27/65 38/65

따라서, $2로 시작할 때 MR. Slipstik이 돈을 모두 잃을 확률은 행렬 C의 두 번째 행과 첫 번째 열의 원소로 주어진다. 즉, 45/65=9/13. C의 두 번째 행과 두 번째 열의 원소로부터 그가 총 $4를 가질 확률은 20/65=4/13이다.

Page 24: math.ewha.ac.krmath.ewha.ac.kr/~jylee/Finite/TextBook-2017/Chap02.pdf · 6 78$9 :6 1 2 3 4 5 6 7 8 0 2 5 8 >> b = [366 804 351 514]' % a new r.h.s. vector b = 366 804 351

58 2. 행렬의 응용

2.5 유전학

개인의 많은 특성들은 유전자라 불리는 보인자(carrier) 쌍에 의해 결정되어 진

다. 가장 간단한 경우, 각각의 유전자는 대립 유전 형질(alleles)로 불리고 편의상 각각

A와 a로 표시되는 두 가지 형태로 가정할 수 있다. 각각의 유전적 특성에 대하여 유전

자 쌍은 세 가지의 다른 형태인 AA, Aa, aa로 발생할 수 있고, 한 개인의 유전형질은

이 세 유전자형 중 하나에 속한다. 어떤 경우에 유전적 특성은 유전자형이 쉽게 결정되

도록 한다는 것이다. 예를 들어 배에서 유전자형 AA, Aa, aa는 각각 빨강, 분홍, 흰색

의 꽃을 가진다. 그러나, 오른손잡이나 눈의 색깔과 같은 경우에는 단지 두 가지 경우

만이 발현되어진다. 이 경우 유전자형 AA와 Aa는 똑같은 특성을 나타낸다. 이러한 이

유로 A는 우성 인자(Dominant gene)라고 불리고 a는 열성(Recessive) 인자라고 불린

다. 만약 개인이 AA 유전인자를 가졌다면 그는 그 특성에 대해 우성(D)이라고 불리고,

aa를 가지면 열성(R), Aa를 가지면 잡종(Hybrid)이라고 불린다.

멘델의 이론의 기본 가정은 각각의 자손은 부모로부터 각각 하나씩 두 개의

유전자를 물려받는다는 것과 그 유전자는 각각의 부모로부터 무작위로 선택된다는 것

이다. 그러므로 만약 한쪽 부모가 AA이면, 자손의 적어도 하나의 유전자는 A임에 틀

림없다. 만약 부모 중 한쪽이 Aa이면 A를 물려줄 확률은 1/2이고 또한 a를 물려줄 확

률 역시 1/2이다.

유전형질이 시간이 지남에 따라 변할 수 있는지를 간단한 실험을 통하여 알아

보자. 이 실험에서는 임의의 개체를 잡종(hybrid) 유전자형을 가진 것과 교배시킨다. 그

리고 자손을 선택하고 잡종을 가진 자손과 교배시킨다. 이 때 자손이 잡종과 교배하는

각각의 단계를 Markov process에 대해서 변환 행렬 P를 생각해 보자. 이 시스템에는

세 가지 가능한 상태가 존재한다. 즉, 우성, 잡종, 열성의 세 상태가 가능하고, 이때 pk

를 k 번째 자손이 우성일 확률이라고 두자. 마찬가지로 qk를 k 번째 자손이 잡종일 확

률이라고 하고 rk는 k 번째 자손이 열성일 확률이라고 하자.

이 process에 대한 변환 확률을 찾기 위해 미지의 부모(unknown parent)의 유

전자형에 대한 각각의 가능성을 생각한다. 만약 미지의 부모가 우성(AA)이고 잡종(Aa)

과 교배되었다면 유전자형 AA, Aa, aa에 대한 확률은 행벡터 [1/2, 1/2, 0] 일 것이다.

만약 미지의 부모가 잡종(Aa)이고 또 다른 잡종(Aa)과 교배했다면 확률 벡터는 [1/4,

1/2, 1/4]가 될 것이다. 마지막으로 미지의 부모가 열성(aa)이라면, 벡터는 [0, 1/2, 1/2]

가 될 것이다. [p0. q0, r0]를 미지의 부모의 유전자형에 대한 확률 벡터라고 가정하고

[p1, q1, r1]을 첫 번째 자손의 유전자형에 대한 확률 벡터라고 하자. 위에서 얻어진 세

개의 벡터를 이용하여, 다음을 얻을 수 있다.

Page 25: math.ewha.ac.krmath.ewha.ac.kr/~jylee/Finite/TextBook-2017/Chap02.pdf · 6 78$9 :6 1 2 3 4 5 6 7 8 0 2 5 8 >> b = [366 804 351 514]' % a new r.h.s. vector b = 366 804 351

2.5 유전학(Genetics) 59

(26) [ p 1,q 1,r 1]=[p 0,q 0,r 0]

12

12

0

14

12

14

012

12

.

이 행렬은 정리 3.4에서 정의된 정규변환 행렬이므로, k→∞일 때, Pk는 극한값을 가진

다. 그 극한값을 구하기 위해 정규변환 행렬 P의 고정점을 계산해 보면, 이 limit을 찾

기 위해서 우리는 벡터 방정식 [x 1,x 2,x 3]= [x 1,x 2,x 3]P를 푼다. 이것으로 다음의

세 개의 방정식을 얻을 수 있다.

x 1=12x 1+

14x 2, x 2=

12x 1+

12x 2+

12x 3, x 3=

14x 2+

12x 3 ..

만약 조건 x 1+x 2+x 3=1을 포함하면, 네 개의 방정식으로부터 유일한 근 x1=1/4,

x2=1/2, x3=1/4를 구할 수 있다. 따라서 정리 3.4에 의해,

limk→∞

P k=

14

12

14

14

12

14

14

12

14

.

예제 5.1 (정규변환 행렬의 극한)>> P = [1/2 1/2 0; 1/4 1/2 1/4; 0 1/2 1/2]P = 0.5000 0.5000 0 0.2500 0.5000 0.2500 0 0.5000 0.5000>> P*P % P^2의 모든 성분이 양수이므로 P는 정규변환행렬이다.ans = 0.3750 0.5000 0.1250 0.2500 0.5000 0.2500 0.1250 0.5000 0.3750>> P^4ans = 0.2812 0.5000 0.2188 0.2500 0.5000 0.2500 0.2188 0.5000 0.2812>> P^6ans = 0.2578 0.5000 0.2422 0.2500 0.5000 0.2500 0.2422 0.5000 0.2578>> P^8 % 시간이 지남에 대라 P^k의 각 행은 [1/4 1/2 1/4]로 수렴한다.ans =

Page 26: math.ewha.ac.krmath.ewha.ac.kr/~jylee/Finite/TextBook-2017/Chap02.pdf · 6 78$9 :6 1 2 3 4 5 6 7 8 0 2 5 8 >> b = [366 804 351 514]' % a new r.h.s. vector b = 366 804 351

60 2. 행렬의 응용

0.2520 0.5000 0.2480 0.2500 0.5000 0.2500 0.2480 0.5000 0.2520

이 실험으로부터 만약 잡종과 반복해서 교배하면, 시작하는 유전자형이 무엇인

지에 상관없이 k 번째 자손의 유전자형에 대한 확률은 k가 충분히 클 때, pk≈1/4, qk

≈1/2, rk≈1/4가 됨을 알 수 있다. 그러나 위의 예제에서와 같이, 한쪽 부모의 유전자

형을 잡종으로 철저히 통제하는 것은 다소 비현실적 가정이다. 만약 큰 개체군(large

population)에서 무작위로 교배한다면 어떤 상황이 생길까? 우선 문제가 매우 복잡해져

서 조절하는 것이 불가능해졌고 이전에 세워진 이론들은 이 문제와는 맞지 않았다. 때

문에, 멘델 이론의 반대파들은 멘델의 이론이 옳다면 큰 개체군 안에서 열성 유전자는

적당한 때에 사라져야만 하고, 결과적으로 열성인 개체들의 계속적인 출연은 이 이론이

변경되어야 됨을 명백히 보여준다고 논쟁을 했다. 그러나 매우 놀라운 결과를 가지고

1908년 이 어려움을 푼 사람은 G. H. Hardy였다. 여기서는 그 결과만 간단히 소개한

다.

정리 5.2 (a) 수컷과 암컷 각각의 유전자형의 비율이 같고 (b)자손의 절반은 수컷이고

(c) 교배는 완전히 무작위로 일어나는 많은 개체군 안에서, 유전자형의 분배는 한 세대

이후에 확률적으로 안정적(stable)이다.

Handy는 다음과 같이 말했다. “우성 인자(dominant character)는 전체의 개체

군으로 뻗어나가려는 경향을 보이고 열성 인자는 사라져버리려는 경향이 있다는 아이

디어에 대한 최소한의 근거도 없다. 물론 완전히 무작위인 교배 이외의 가정들은 다른

결과들을 줄 것이다. 예를 들어, 만약 인자가 성에 독립적이지 않고 번식력에 영향을

끼친다면 전체적인 질문은 훨씬 더 복잡해질 것이다.” 즉, 평균적으로 AA 부모들이

Aa 부모나 aa 부모보다 더욱더 많은 아이들을 가지는 경향이 있다고 한다면, 정리 5.2

는 더 이상 옳지 않고 우리는 보다 복잡한 계산을 하여야 할 것이다.

2.6 연습문제

#1. 가우스소거법에서 첨가행렬 [ A | b ] (augmented matrix) 의 계산 방법을 MATLAB

명령어들을 사용하여 다음 선형 연립방정식의 해를 구하여라.

(a) 3x + 9y = 6, 2x + 8y = 6

(b) x + y + 4z = 3, 4x + y - 2z = -6, -3x + 2z = 1

(c) x - 3y + 2z = 10, -x +3y -z = -6, -x + 3y + 2z = 6

Page 27: math.ewha.ac.krmath.ewha.ac.kr/~jylee/Finite/TextBook-2017/Chap02.pdf · 6 78$9 :6 1 2 3 4 5 6 7 8 0 2 5 8 >> b = [366 804 351 514]' % a new r.h.s. vector b = 366 804 351

2.6 연습문제 61

#2. 다음의 선형 연립 방정식의 해를 구하여라.

(a) x + 2y = 5, 3x - y =1, -x + 2y = 5

(b) x - 2y + 3z = 4, 2x + y - 3z = 5, -x + 2y + 2z = 6, 3x - 3y + 2z = 7

#3. A2 = [-2 -1; 2 -1] 와 A3 = [-2 1; -2 -3]이라고 할 때, A를 구하여라.

#4. 다음 행렬들의 역행렬을 가우스-조르단 방법(Gauss-Jordan method)으로 구하세요.

(Hint: 가우스-조르단(Gauss-Jordan method)은 [A | I] 의 형태의 첨가행렬

(augmented matrix)를 사용하여 가우스 소거법을 수행한다.)

(a) ( )3 57 13

(b)

2 0 -1-1 3 -31 -1 3

.

#5. A=[1 1/2 1/3; 1/2 1/3 1/4; 1/3 1/4 1/5]는 3차 hilbert 행렬이다. b=[1 0 0]'에 대하여,

방정식 Ax=b의 해 x를 구하여라. x와 b를 조금 변화시킨 c=b+1e-10*rand(3,1)에

대한 방정식 Ay=c의 해 y의 차를 크기 ||y-x|| 2를 norm(y-x)을 이용하여 구하여

라.

#6. #5번과 같은 실험을 4차, 5차, ... , n차 hilbert 행렬 hilb(n)에 대하여 수행하여

norm(y-x)을 구하여라. 이 값들을 cond(hilb(n))의 값들과 비교하여, 이 두 값들 사이

에 어떤 관계에 있는지를 추론하여 보아라.

#7. 예제 2.2에서 컴퓨터, 반도체의 최종생산을 각각 50%, 100% 증가시키고, 사무팀의

최종생산을 50% 감소시키려면, 각 부문은 얼마의 생산을 하여야 하는지 구하여라.

#8. 한중일 삼국에 기반을 둔 다국적 기업의 각 지사들은 생산을 위해 여러 지사로부

터 일부의 생산물을 공급받아야한다. 아래 표는 각 지사의 생산에 소요되는 여러 지

사의 생산물의 비율을 나타낸 표이다.

Page 28: math.ewha.ac.krmath.ewha.ac.kr/~jylee/Finite/TextBook-2017/Chap02.pdf · 6 78$9 :6 1 2 3 4 5 6 7 8 0 2 5 8 >> b = [366 804 351 514]' % a new r.h.s. vector b = 366 804 351

62 2. 행렬의 응용

수요지사

한 중 일

공급지사 : 중

0.02 0.00 0.02

0.01 0.03 0.01

0.03 0.00 0.01

한중일 각 지사가 8억, 3억, 5억원의 최종생산물을 얻기 위해서 필요한 생산액을 구

하여라.

#9. 플라스틱 부문과 장비 부문으로 나누어진 기업에서, 플라스틱 100만원의 생산을 위

해서는 플라스틱 2만원과 장비 10만원이 필요하고, 장비 100만원의 생산에는 플라스

틱 1만원과 장비 5만원이 소요된다. 플라스틱 930만원과 장비 465만원을 최종생산하

기 위해 필요한 생산량을 구하여라.

#10. 18,000명이 사는 마을에 유행성 감기가 퍼지고 있다. x와 y를 정해진 한 주 동안에

감기에 걸린 사람의 수와 그렇지 않은 사람의 수라고 가정하자. 그리고 s와 w를 각

각 다음 주에 감기에 걸린 사람의 수와 그렇지 않은 사람의 수라고 가정하면

1/3 x + 1/4 y = s, 2/3 x + 3/4 y = w

와 같이 나타낼 수 있다. 주어진 한 주 동안 감기에 걸린 사람이 13,000 명이라고

가정하면 이 이전 주에는 얼마나 많은 사람이 감기에 걸렸을까?

#11. X = [x1, x2, x3] 이고 행렬 A=

013

23

12

12

0

13

13

13

라면

방정식 XA = X의 모든 해를 구하여라.

#12. 다음 중 정규변환행렬(regular transition matrices)은 어느 것인가를 찾아라.

(a)

1 012

12

(b)

0 112

12

(c) ( )1 23 1

(d)

14

34

12

13

Page 29: math.ewha.ac.krmath.ewha.ac.kr/~jylee/Finite/TextBook-2017/Chap02.pdf · 6 78$9 :6 1 2 3 4 5 6 7 8 0 2 5 8 >> b = [366 804 351 514]' % a new r.h.s. vector b = 366 804 351

2.6 연습문제 63

(e)

0 1 00 0 113

23

0

(f)

0 0 114

34

0

012

12

(g)

012

12

14

12

14

13

13

13

(h)

012

12

13

12

13

13

34

0

#13. 12번 문제의 정규 변환 행렬 중에서 고정 확률 벡터를 구하여라.

#14. 강길동은 클럽에서 2만원을 가지고, 부유한 홍교수와 돈을 걸고 게임을 하고 있었

다. 길동이는 한 게임당 1만원을 걸었다. 게임에서 그가 이길 확률은 2/5이고 그는

그가 4만원이 되거나 그의 모든 돈을 잃을 때까지 게임을 하기로 결정했다. 길동이

가 홍교수와 평등한 게임을 한다고 가정하자. 다시 말해 그가 승률은 1/2이다. 그가

그의 모든 돈을 잃을 확률을 구하여라. 그리고, 게임의 기대 횟수를 구하여라.

#15. 공화당원 자녀의 80%가 공화당을 지지하고, 나머지는 민주당을 지지한다고 가정

하자. 민주당원 자녀의 60%는 민주당에, 20%는 공화당을, 20%는 사회당을 지지한

다고 가정하자. 또 사회당 자녀의 50%는 사회당을, 40%는 민주당을, 10%는 공화당

을 지지한다고 가정하자.

(a) 민주당원의 손자가 사회당을 지지할 확률은 얼마인가?

(b) 각 정당에서 기대하는 인구의 긴 경선간 지구 비율은 얼마인가?

#16. 다음의 행렬 중에서 어느 것이 흡수 마코프 체인에 대한 행렬인지 서술하세요. 각

각의 흡수 체인에 대해서 흡수 상태의 개수를 구하여라.

(a)

0 112

12

(b)

1 0 013

13

12

0 0 1

(c)

14

034

0

0 1 0 00 0 1 012

0 012

(d)

23

13

0 0

0 0 1 014

14

14

14

0 0 0 1

(e)

012

014

14

0 1 0 0 00 0 1 0 023

013

0 0

0 012

12

0

(f)

1 0 0 0 015

15

15

15

15

0 0 1 0 0

012

012

0

0 0 0 0 1

Page 30: math.ewha.ac.krmath.ewha.ac.kr/~jylee/Finite/TextBook-2017/Chap02.pdf · 6 78$9 :6 1 2 3 4 5 6 7 8 0 2 5 8 >> b = [366 804 351 514]' % a new r.h.s. vector b = 366 804 351

64 2. 행렬의 응용

#17. 16번 문제의 흡수 행렬에 대해서 N과 C를 계산하여라.

#18. 금발의 아버지가 금발의 아들을 가질 확률을 0.6, 갈색머리의 아들은 0.2, 붉은 머

리의 아들을 가질 확률은 0.2라고 가정하자. 갈색머리의 아버지가 금발의 아들을 가

질 확률은 0.1, 갈색머리의 아들은 0.7, 붉은 머리의 아들을 가질 확률은 0.2라 가정

하자. 또한 붉은 머리의 아버지가 금발의 아들을 가질 확률은 0.4, 갈색머리의 아들

은 0.2, 붉은 머리의 아들을 가질 확룰을 0.4라 가정하자. 금발 머리의 남자가 갈색

머리 아이의 증조부가 될 확률은 무엇일까요? 현재 남자 인구의 50%가 갈색 머리

이고, 40%가 금발이며 나머지가 붉은 머리를 가졌다고 가정했을 때, 남자의 선천적

인 머리색 분포는 어떻게 될까?

(a) 3세대가 지난 후 남자 인구의 선천적인 머리 색 분포는 어떻게 될까?

(b) 많은 세대가 지난 후 남자 인구의 선천적인 머리 색 분포는 어떻게 될까?

#19. 개나 고양이와 같은 어떤 특별한 종에서, 같은 부모가 낳은 두 마리 새끼를 짝짓

기를 시켰다. 우리는 임의로 두 부모를 선택하여 반대 성의 새끼 중 둘을 짝짓기를

했다. DD, RR, HH, DR, DH, 나 RH를 서술한 것처럼 이 과정을 써서 변환 행렬을

구하여라.