선형대수학의 응용

By | November 21, 2017

개 요 (수학적 Modelling의 예)

    선형대수학의 지식은 자연과학과 공학, 사회과학의 여러 분야에서 활용되고 있다.  행렬식은 1693년에 LEIBNIZ에 의해 1차 연립방정식의 해를 구하는데 처음 이용한 행렬의 개념은 1812년에야 비로소 행렬의 개념을 이용하였다.  이렇게 시작된 행렬이론은 현대적인 컴퓨터 발전의 바탕이 되는 이론이 되었고 여러 현상의 문제를 수식화하여 1차 연립방정식으로 바꾼 후 행렬의 성질을 이용, 문제를 논리적으로 해결할 수 있게 되었다.

 

  여기에서는 행렬의 응용되는 문제들 중 몇 개의 예로 인구분석, 암호이론, CURVE FITTING들에 대해서 알아보기로 한다.

1 장.  수학적 모델

 

Goal : 일반적인 주위의 현상을 수식화하여 문제를 해결할 수 있다.

 

● 수학적 모델링이란 현실 세계의 문제를 표현하는 수학적 공식이다. 이러한 모델링의 예를 몇 가지 들어본다면 다음과 같다.

 

【예제 1】  자유 낙하하는 물체의 모델

 

 를 건물의 높이라 하고 를 물체가 자유낙하하는 동안의 경과시간이라 할 때, 높이가   인 건물옥상에서 떨어뜨린 어떤 물체의 높이를 식으로 나타내면

                                                 

로 표현된다고 하자. 이 경우 예를 들어 건물의 높이가 100미터일 때 2초후의 이 물체의 현재 높이는 미터이다. 또, 이 물체가 지면에 떨어질 때까지의 시간을 알아보려면  을 대입하면 된다.   즉,   으로 부터 초이다.

 

【예제 2】 관계를 이용한 나이 문제의 모델

소영이의 나이는 현재 여동생의 나이의 3배이며,  6년후에는 2배가 된다. 소영이는 현재 몇살 인가?

 

【예제 3】  나이 문제의 두 번째 모델

영수의 나이는 현재 동생 영철이의 나이의 2배이다. 그리고 두 형제의 현재 나이의 합에 2배를 하면 4년전의 두 형제의 나이의 곱과 같다. 영철이는 현재 몇살 인가?

 

【예제 4】 나룻배의 속도 모델

종철이가 나룻배를 저어 강을 거슬러 올라갈 때의 시속은 3km 이고 강을 따라 내려갈 때는 시속 11km이다.  잔잔한 호수에서 이 나룻배의 속도는 얼마일까?

 

예제 2와 4는 1차이기 때문에 선형 모델이라 할 수 있는 것이다.

 

 2장. 행렬을 이용한 암호문 작성

 

 GOAL : 행렬 A가 행렬 B의 역행렬일 때, 행렬 A를 이용하여 암호문을 만들고 B를 이용하여 그것을 해독하는 방법을 안다.

 

   (1) 영문을 암호화하는 경우

  알파벳을 숫자화한 것은 다음 표와 같다.

     

 A

 B

 C

 D

 E

 F

 G

 H

 I

 J

 K

 L

 M

 N

 1

 2

 3

 4

 5

 6

 7

 8

 9

 10

 11

 12

 13

 14

 O

 P

 Q

 R

 S

 T

 U

 V

 W

 X

 Y

 Z

 *

 

 15

 16

 17

 18

 19

 20

 21

 22

 23

 24

 25

 26

 27

 

        * 는 단어 사이를 띄는 기호로 사용한다.

        이 표를 이용하여 암호를 만든다.

      

        예를 들면

   

                    FOR YOUR EYES ONLY

  

        이 문장을 숫자화하면

 

   F  O  R   *  Y   O  U   R  *  E   Y  E  S  *   O   N  L  Y

   6  15  18  27  25  15  21  18  27  5  25  5  19  27  15  14  12  25  

         

이다. 이를 암호화하기 위해 행렬이 필요한데,

       라는 A행렬을 만든다. A가 2×2행렬 이므로 이것을 다음과 같은 두 행을 가지는 행렬 M으로 만든다.

 

                  

이때, 숫자의 개수가 홀수이면 마지막에 *에 해당되는 숫자 27을 첨가한다. 이것을 암호화하기 위하여 M의 왼쪽에 A를 곱하여 N을 만든다.

         

암호문은 N의 각 원을 다음과 같이 나열한 것이다.

        23,70,59,100,102,60,77,66,106,17,55,41,73,77,45,56,48,79

이제 이 암호문을 해독하기 위해 A의 역행렬인 B를 이용한다.

 이므로  이다.

 따라서 암호문을 두 행을 가지는 행렬로 만들고, 이것의 왼쪽에 를 곱하면 해독할 수 있다.

         

이므로 다음 문장을 얻는다.

 6  15  18   27  25  15   21   18  27  5  25  5  19   27  15   14   12  25  

 F  O  R    *  Y   O   U    R  *   E  Y  E  S   *   O    N   L  Y

 

  (2) 한글을 암호화하는 경우

   두 행렬 

      

  이라 하고, 한글도 영문과 마찬가지로 다음과 같이 숫자화할 수 있다.

    

  ㄱ

  ㄴ

  ㄷ

  ㄹ

  ㅁ

  ㅂ

  ㅅ

  ㅇ

  ㅈ

  ㅊ

  1

  2

  3

  4

  5

  6

  7

  8

  9

  10

  ㅋ

  ㅌ

  ㅍ

  ㅎ

  ㅏ

  ㅑ

  ㅓ

  ㅕ

  ㅗ

  ㅛ

  11

  12

  13

  14

  15

  16

  17

  18

  19

  20

  ㅜ

  ㅠ

  ㅡ

  ㅣ

  ㅐ

  ㅒ

  ㅔ

  ㅖ

  *

  ?

  21

  22

  23

  24

  25

  26

  27

  28

  29

  30

    예를 들면 “내일 그곳에서 만나자”를 숫자화하면

 ㄴ ㅐ  ㅇ ㅣ   ㄹ  *  ㄱ  ㅡ   ㄱ  ㅗ  ㅅ  ㅇ ㅔ  ㅅ ㅓ   *  ㅁ ㅏ  ㄴ  ㄴ ㅏ  ㅈ ㅏ

 2  25   8  24   4  29  1  23   1   19   7   8  27  7  17  29  5  15  2   2  15  9  15

  이다. A의 행이 3행이므로  위를 3개의 행을 갖는 행렬 M으로 만든다. 개수가 3의 배수가 아니면 계속 *에 해당하는 29를 첨가한다.

                   

앞에서와 같은 방법으로 숫자화된 암호문을 만들 수 있다.

 암호문은 다음과 같다.

       17,124,35,84,69,132,50,156,0,54,21,54,20,46,4,46,22,139,37,86,84,121,65,185

이를 해독하려면 아래와 같이 BN을 구하면 된다.

          

3장. 행렬을 이용한 인구분석

Goal : 행렬을 이용하여 인구를 분석 할 수 있다.

 

다음은 대각화 가능한 행렬의 거듭제곱을 이용하여 쉽게 구하는 방법을 알아본다.  차의 정사각행렬  가 대각화 가능한 행렬이라면 임의의 정수 에 대하여    을 쉽게 구할 수 있다. 정리 6.1로부터  가 고유값 에 대응하는  일차독립인 고유벡터을 갖는다면 고유벡터을 열벡 터로 갖는 가역행렬 와 대각행렬 에 대하여

                

이므로 임의의 양의 정수 에 대하여

                

이다. 여기서 이므로 을 쉽게 구할 수 있다. 음의 정  수에 대하여도 마찬가지이다.

  

예를 들어 현재 도시와 시골에 거주하고 있는 우리나라의 인구를 각각라 하고 를 각각 년 후의 도시와 시골의 인구라고 하자. 매년 시골에서 도시로의 인구가 이주하고, 도시에서 시골로 의 인구가 이주한다고 하면 오랜 기간 후 우리나라의 도시와 시골의 인구분포는 어떻게 되는지 행렬을 이용해서 분석해 보면  년 후의 도시와 시골의 인구는 각각 다음과 같다.

                           

여기서

                         

라 하면 위의 식으로 부터을 얻는다. 따라서

                                 

이므로 을 계산하면 년 후의 인구분포를 알 수 있다. 그런데 행렬 의 고유값이 이고 이에 대응하는 일차독립인 의 고유벡터로

                           

를 얻을 수 있으므로 는 대각화 가능하다. 따라서

                 

이고, 가 충분히 크면 는 무시할 수 있으므로

                   

                       

                     

 이다.

 

따라서

                     

그러므로 초기 인구분포에는 상관없이 오랜 기간 후에는 전 인구의 는 도시에은 시골에 거주하게 된다.

 

4장. 선형방정식과 Curve Fitting (근사곡선 구하기)

 

Goal : 좌표가 주어지면 다항식을 이용하여 근사곡선을 구할 수 있다.                          

주어진 데이터의 점,,……,은 연속함수 의 몇 점들의 형태로 나타내어진다. 이러한 점들을 통과하는 그래프를 아래 그림과 같이 그릴 수 있다.

 

차수 n의 다항식은 다음과 같은 형태이다.

 

         =                   (1)

 

각  에 대하여 주어진 개의 데이터의 점를 지나는  곡선 는 를 만족하므로 다음과 같은 개의 선형방정식을 얻는다.  

 

                                  (2)

 이것은 미지수로  을 갖는 연립일차방정식이다. 이때,

 은 서로 다르므로 식 (2)의 계수 행렬       

                                            

의 행렬식은 0이 아니다 (Vandermonde 행렬식)

 

5장. 최소제곱법의 Curve Fitting

Goal : 실험 또는 관찰에 의해 나온 자료로 곡선이나 최적 값을 구하는 문제를 최소 제곱법으로 구하고 근사 곡선을 구할 수 있다.

                           y = a + bx                       (1)

 주어진 데이터에 가장 근사한 직선 (1)의 계수 ,를 구하는 방법을 알아보자. 주어진 데이터의 점을 식 (1)에 대입하면, 2개의 미지수  를 갖는 연립 일차방정식

 

                                                 (2)

 

을 얻는다. (이 연립방정식은 해를 갖지 않을 수도 있다.)  이 식은

                                                      (3)

의 형태로 쓸 수 있다. 여기서, 는 각각 다음과 같다.

                    

                         

 

식 (3)의 양변에 를 곱한

                                               (4)

를 식 (3)에 관한 정규시스템(normal system)이라 하며, 이 정규시스템의 해를 연립방정식 (2)의 최소제곱해(least square solution)라고 한다.

 식 (4)를 다시 쓰면

  

 

 이고, 행렬의 곱을 계산하면 주어진 개의 데이터의 점에 가장 근사한 직선  를 구할 수 있는 다음 정규 시스템을 얻을 수 있다.  

 

                                       (5)

 

 식 (5)의 해   가 연립방정식 (2)의 최소제곱해이다. 번째 방정식에서의 오차는 그림 3에서 표시된 축 거리 이다.  이것은 방정식 에 를 대입해 보면 알 수 있듯이, 값과 값 사이의 차이이다.  최소제곱법의 해인는 이 오차들의 제곱의 합인

                                            

을 최소화시키는 직선  를 결정한다.  이것은 최소제곱법을 이용하여 주어진 데이터로부터 가장 근사한 직선을 찾았다는 의미이다.

 

  주어진 데이터의 값 에  오차가 가장 작은 직선   를 찾기 위해서는

                                      (6)                              

의 최소제곱해(least square solution)   를 찾으면 된다.