set03o.gifpenset03c.gifyberset03u.gifniversity  시범강의

set04l.gifset04i.gifset04n.gifset04e.gifset04a.gifset04r.gif  set04r.gifset04r.gifset04r.gifset04r.gifset04r.gifset04r.gifset04r.gif 

with  Application

  담당교수 ; 성균관대 이 상 구 교수

강의개요 anii25.gif

  선형대수학은 다양한 분야에서 많이 이용되므로 자연계는 물론 인문사회계의 학생에게도 가장 중요한 수학과목중 하나입니다. 2차세계대전후 컴퓨터의 발전과 함께 이론적인 연구에서도 르네상스를 맞아 매우 역동적인 분야로서 현대사회의 여러 문제는 수학적으로 표현할 수 있고, 또한 수학적으로 표현된 문제는 선형화함으로써 행렬의 문제로 바꿀 수 있으며, 행렬의 성질을 이용하면 쉽게 해를 구할 수 있답니다. 이 과정에서 컴퓨터의 발전과 더불어 선형대수학의 연구가 행렬이론을 중심으로 20세기 후반에 매우 활발해진 것입니다. 여러분은 이 강좌를 통하여 현대수학과 만날 수 있는 자격을 얻게 될 것입니다.

  선형대수학 강좌는 여러분이 배울 수학중 가장 중요한 과목입니다.

  그 이유를 크게 3가지 이유만 설명하고자 합니다. 첫째는 "실용적인 이유"입니다. 선형대수학은 존재하는 수학중 가장 유용한 수학이라고 알려져 있습니다. 사실 모든 응용수학은 전체 또는 부분적으로 행렬계산에 의존한답니다. 둘째 선형대수학은 "모든 문제가 풀리는 수학의 몇 안되는 분야 중 하나입니다". Alan Tucker 는 "선형대수학이야말로 수학적이론이 추구하는 모델이다" 라고 했습니다. 셋째로 선형대수학은 여러분이 학문을 계속하면서 다른 많은 분야와 계속 연결되는 내용이라는 것을 알게 될 것입니다.

  우리가 한학기동안 다룰 이 과목은 추상적인 과목이 아닙니다. 추상적인 이론은 2학년에 배우는 행렬론 과목에서 다루고 여기서는 개념과 수학전반에 대한 흥미를 보태고 궁극적으로는 "계산 능력을 키우는 것을 주된 목표로 합니다". 이 강좌가 끝날 때 여러분은 연립일차방정식을 행렬을 이용하여 푸는 방법, 행렬식과 역행렬을 구하는 법, 벡터공간의 성질과 예, 어떤 함수가 선형변환인지 아닌지를 구분하고, 행렬의 고유값을 구하여 행렬을 대각화할 수 있는 초보 과학자가 되어있기를 기대한답니다. 그리고 기말종합고사는 위의 내용만을 테스트 할 것입니다. Sample Exam을 미리 줄 것이니. 그 문제를 미리 학습하며 준비하시면 시험 준비는 된답니다. 이에 보태어 이론에 그치지 않는 행렬의 아름다움과 예를 즐길 수 있도록 우리가 개발한 프로그램과 다양한 JAVA 프로그램으로 실습이 가능합니다. 또 복잡하거나 반복적인 행렬에 관련된 계산은 컴퓨터 프로그램인 MATHEMATICA, MATLAB, MAPLE 또는 본인이 한글화한 HLINPRAC 프로그램 등을 이용하여 PC 실습교육도 병행함으로서 계속 자신을 가지고 배운 지식을 이용할 수 있도록 합니다. 여러분은 이러한 도구로 큰 크기의 실제 문제도 풀고 그래프를 그릴 수 있도록 실습할 것입니다.

  또한, 이 강좌와 관련된 여러 가지 응용문제와 복소벡터공간에서의 행렬과 Schur정리, 이차형식, Jordan 표준형에 대하여는 선택적으로 원하는 개인적인 Project를 배정할 것입니다.

  강좌의 목표와 Sample exam을 줄 것이니 미리 어떤 종합 기말고사를 볼 것인지를 염두에 두고 준비하며 수업시에는 자신이 없는 부분에 좀더 시간을 쓰고 적극적으로 질문하여 모두 주어진 Sample Exam를 소화하도록 준비하시면 실제 좋은 학점을 보증된답니다. 이제 강의 계획서에서 보겠지만, 수업전까지는 1장의 내용을 미리 예습해두면 도움이 되리라 생각합니다.  anii25.gif

History anii25.gif

 

행렬 이론의 과거와 현재

  행렬과 행렬식에 관한 연구의 출발은 기원전 4세기일 것으로 추측한다. 그러나 연구 결과의 기록은 구체적으로 기원전 2세기의 것부터 남아있으며, 연구를 위한 수단이 갖추어지는 17세기말이 되어서야 르네상스를 맞이하여 "선형대수학"의 이름으로 크게 발전하게 된다. 이어서 제2차 세계 대전을 거치며 컴퓨터의 발전과 더불어 20세기 후반에 "행렬이론(Matrix Theory)"이란 이름으로 제2의 르네상스를 구가하고 있다. 행렬과 행렬식에 관한 연구가 연립일차방정식의 연구에서 비롯되었다는 것은 그리 놀랄만한 일은 아니다. 보통은 행렬을 먼저 생각하고 그것의 행렬식를 연상하는데 역사적으로는 반대이다. 행렬의 개념은 행렬식의 개념이 소개된지 무려 150년이 지난 후에야 소개된 개념이다.  우리는 여기서 선형대수학의 발전과정을 돌아보고 현재와 미래를 생각해보자.

- 대한수학회 뉴스레터 V. 55, pp. 20-27 (1997 9월) S.G. Lee and O.K. Kang 씀    (끝)- anii25.gif

ATLAST anii25.gif

  선형대수학과 컴퓨터의 발전은 선형대수학을 교육하는 방법에서도 큰 변화를 가져다 주었습니다. 수학에서  많이 쓰이는 프로그램은 첫시간에  얘기했듯이 MATHEMATICA, MAPLE, MATLAB, Derive, HLINPRAC 등 수백종이 있읍니다. 그중에서 MATLAB은 Matrix Laboratory 의 약자로 행렬을 다루는 선형대수학에 잘 맞는 프로그램입니다. 우리는 이번 강의에서 MATLAB 이라는 프로그램을 이용하여 개발된 선형대수학의 새로운 접근 방법을 하나 소개하겠읍니다.  

  위의 내용은 ATLAST Project 의 책임자이며 우리 부교재의 저자인 Steven Leon교수의 보고서 내용의 일부 임을 밝힙니다.

참고 : http://www.umassd edu/Special/Programs/Atlast/Mfiles/Mfiles.html

  우리는 우리의 주교재인 "선형대수학과 응용"과 부교재인 "ATLAST Computer Exercises for Linear Algebra" 을 배우면서  우리가 만든 선형대수 교육용 실습프로그램인 "HLINPRAC" 과 상업용 프로그램인 "MATLAB" 을 수시로 이용하고자 합니다. anii25.gif

HLINPRAC linear algebra software anii25.gif

 

 선형대수학   프로그램 HLINPRAC 제작동기 및 사용법

수학교육의 컴퓨터 활용에 대하여...

 교실의 교수 학습과정, 특히 수학교육 및 연구에서 우리는 지금까지 컴퓨터를 거의 활용하지 않았다. 그 이유는 지금까지 우리 나라에서 개발되어 온 수학 소프트웨어들이 전통적인 지필 환경보다 더 나은 환경을 제공해 주지 못했기 때문이다. 그러나 역으로 양질의 소프트웨어가 개발되지 못하는 이유는 개발에 대한 기술이 부족해서라기 보다는 수학교육계에 종사하는 모든 사람들이 수학교육에서의 컴퓨터의 활용에 대한 관심이 부족한 때문이다.

 그래픽과 애니메이션은 추상적인 수학내용을 시각화하여 지도할 수 있게끔 할뿐만 아니라 그 시각화가 학생들의 직접적인 경험이나 통제를 통해 이루어질 수 있다는 점에서 수학 학습의 어려움을 크게 완화 시켜준다. 특히 형식적인 증명이나 개념 학습의 전 단계로 그래픽이나 애니메이션을 통한 직관적인 지도는 대단히 효과적이다.

 1980년대이래 컴퓨터의 기억용량, 속도, 가격, 사용의 편의성, 유연성, 표상능력 등은 눈에 띌 만큼 발달해 왔다. 시각적인 인터페이스와 계산 능력, 데이터 기억 능력이 획기적으로 향상되고 있으며 소프트웨어 측면에서도 학교수학을 획기적으로 변화 시킬 만한 특별한 컴퓨터 언어와 강력한 힘을 지닌 도구가 개발되고 있다.

 교실에서 사용하는 여러 수학 컴퓨터 소프트웨어의 가능성은 무한하다. 중학교 학생들은 소수 또는 최대 공약수 계산, 주어진 날짜가 어느 주 무슨 요일에 해당하는가를 계산하는 등의 프로그램을 만들 수 있다.

 대수를 배우는 학생은 연립방정식을 풀고 행렬 연산과 복소수 계산을 수행하기 위한 프로그램뿐만 아니라 상당히 다양한 축척과 변환 개념을 가진 곡선을 그리고, 직선과 곡선의 삽입, 근 구하기 등의 프로그램에서 매혹적인 도구를 발견할 것이다. 해석학을 배우는 학생들은 극한, 도함수, 그리고 적분 등을 계산하기 위한 프로그램을 쉽게 이용할 수 있다. 정교한 시뮬레이션을 하는 것뿐만 아니라 순열과 조합을 계산하기 위한 프로그램은 확률을 배우는 학생들이 이용할 수 있다. 통계를 배우는 학생들은 어떤 일반적인 분포에서 주어진 값에 따른 확률을 계산하거나, 여러 가지 훌륭한 통계 조사를 수행, 또는 주어진 자료의 회귀분석을 완성하는 데에 프로그램을 적용하는 것은 그리 문제가 되지 않을 것이다. 무수한 다른 응용들이 의심할 여지없이 매일 같이 만들어지고 있고, 그 가능성은 끝이 없는 것처럼 보인다. 소형컴퓨터에 수학적 프로그램의 조작이나 미분방정식, 선형대수, 그리고 약간의 추상대수까지 포함하여 더 넓은 분야에서 유용한 다양한 프로그램을 적용할 수 있다는 것이 앞으로 다가올 미래에 대한 올바른 예측이 될지도 모른다. 따라서 개발의 모델과 방법을 가르쳐 주는 project를 수학하는 교수 및 교사의 탄생이 필요한 때라고 생각한다.

     그러나 외국의 예와 비교해 볼 때 우리는 자체적인 소프트웨어가 없어 근본적인 취약점을 갖고 있었다. 최근 서울대 수학교육과의 조한혁교수가 개발한 MAL 프로그램은 초등학교에서 고등학교까지의 학생들에게 프랙탈등의 개념을 이해시키는데 큰 역할을 하였다. 이제 우리는 대학수학교육과 연구에 이와 같은 시도가 필요한 때라고 생각한다.

    특히, 본인은 선형대수학을 전공하여 이 분야의 시도로 미국 NSF 지원의 ATLAST project를 학습하며 수학적 개념의 깊고 직관적인 이해와 conjecture의 개발 및 증명 등 많은 가능성을 인식하고 본 논문에서는 조지아대학의 Edwards 교수의 LINPRAC을 성균관대 수학과의 이상구교수가 한글화한 선형대수학 교육용 소프트웨어인 HLINPRAC의 사용법을 설명하고자 한다.

 

선형대수학에서 수학 소프트웨어의 필요성

  선형대수학에서 중요한 역할을 하는 행렬에 대한 성질들을 컴퓨터를 이용하고자 한다. 행렬의 기본 연산에는 행렬끼리의 덧셈, 곱셈, 스칼라 배, 행렬의 거듭제곱등이 있으며, 선형연립방정식을 구하는 방법으로는 역행렬을 이용하거나, 가우스 소거법을 사용하는 방법이 있다. 행렬의 차수가 커지면 역행렬이나 가우스 소거법을 적용하는 것은 많은 시간을 소비하게 되고 계산이 복잡하게 되므로 우리는 컴퓨터를 사용하여 계산을 하고자 한다. 행렬이론에 관한 많은 software들이 있지만 1장에서는 "LINPRAC"(린플랙) 이란 software를 이용하고자 한다. "LINPRAC" 이란 softwarewin95, win3.1, Dos에서 시행이 가능하며, 한글판을 97년 성균관대학교 선형대수학 연구실에서 만들었고 "HLINPRAC" 이라 명명하였고 이를 이용해서 행렬의 기본계산, 행렬의 고유치 계산, 그리고 임의의 점을 지나는 근사 곡선 식을 구하여 좌표의 Curve Fitting을 하는 것을 알아보기로 한다.

 

 HLINPRAC의 사용법

HLINPRAC은 간단한 프로그램으로 다운 받아 직접 한글 옵션에 따라 한 두 번 해보면 쉽게 사용법을 숙지할 수 있는 장점이 있다.

행렬의 크기가 8차 이하 정사각행렬인 경우에 계산이 용이하다.

1. 시작은 hlinprac.exe 를 다운(http://math.skku.ac.kr/~sglee/ocu/hlinprac.exe) 받아서 새로 만든 subdirectory C:\hlinprac\ 에 복사하고 C:\hlinprac\ hlinprac.exe 를 실행시킨다.

2. 행렬을 만들려면, 먼저 M을 누르면 다음의 화면이 나온다.  

3. 다음 N을 누르면 행렬을 만들 수 있으며, 만들 행렬의 이름을 지정해 준다. (예: a.....)

4. 행과 열의 수를 지정하여 준다 (예: 3 과 3 )

5. 첨가될 열의 수와 원소를 정하여 준다.

6. 첨가행렬인 경우에는 가우스 소거법을 사용할 수 있고, 가우스 소거법을 하는 경우 그 과정을 따라가면서 볼 수도 있고 바로 답만 구할 수도 있다.

7. main menu로 돌아가서 연립 방정식의 해를 구할 수도 있다. ...

 

(예) 가우스(Gauss-Jordan) 소거법을 이용한 연립방정식 풀이

◇ 첨가행렬 입력

가우스 소거법을 이용하여 AX = b라는 8차 연립방정식을 풀기 위해서는 먼저 행렬 Ab의 값을 입력하여 첨가행렬을 만들기로 한다.

 

◇ 근사곡선 그리기

근사곡선을 그리려면, 명령어 C를 누르자.

data point의 좌표를 a,b와 같이 입력한 후, q를 눌러서 원하는 것의 명령어를 type 한다. 예를 들어 F를 누르면 근사곡선의 차수를 물어보게 되며 enter key를 누르면 근사다항식과 그래프를 볼 수 있게 된다.

근사곡선의 피팅에 있어서 HLINPRAC에 단점이 그래프 출력에 있어서 좌표 값들이 표현이 되지 않는다는 것이다. 그렇기 때문에 미리 X, Y의 최소값과 최대값을 나타내고 이에 해당하는 근사곡선을 그리는 것이었다. 하지만 이 값들은 우리가 입력을 한 좌표 값을 한 폭의 그래프로 나타내기 위해서 나온 값이기 때문에 어느 정도 추측을 할 수가 있었을 것이다.

위의 실행된 그래프를 보면 동그란 모양이 우리가 입력을 한 X, Y 좌표 값에 해당하는 좌표들이다. 이 10개의 점을 지나는 근사곡선을 구해 놓았다. 이 근사곡선은 Least Square(즉, 오차제곱의 최소값을 유지하는 곡선 피팅) 방식을 이용하여서 그려낸 것이다. 그리고 Degree Polynomial도 7차에 해당하는 즉, 7차 근사곡선이 된 것이다.

 

◇ 파일 저장하기

만든 행렬을 디스켓이나 하드에 저장하려면, W를 누른다.

만일 만든 행렬의 이름이 "a" 이었고, 하드에 이름을 u.mat로 저장하려면,

c:\u.mat 와 같이 타자한다.

 

◇ 파일 불러오기

저장한 파일을 불러오려면, R을 타자하고 하드에 있는 파일의 이름을 타자한다.

예를 들어 c:\a.mat 를 타자하고 저장할 이름을 다시 지정해준다.

a.mat

 

◇ Eigenvalue 구하기

이제는 행렬의 고유치에 대해서 구해보기로 한다. 우리가 앞에서 입력한 Matrix A를 가지고 고유값을 구하기에는 너무나 복잡한 특성방정식을 가지기 때문에, 그리고 HLINPRAC의 실습이라는 목적을 가지고 있으므로 조금은 간단한 행렬을 가지고 고유값을 분석하고 구해보기로 하자.

HLINPRAC에서는 그래프를 이용하여 고유값을 구하는 과정을 보여준다. 그리고 y=0일 때, x의 값을 Newton's Method를 이용해서 근사해를 구함으로써 얻는데, 여기서는 이 과정을 보기 위해서 간단한 형식의 행렬을 입력해 보시기 바랍니다..

 

위에 있는 설명을 바탕으로 프로그램을 자주 반복하다보면 Hlinprac의 강력한 기능을 여러분의 것으로 만들 수 있습니다. "Do your best and Good Luck !!" anii25.gif

 

관련 Link   anii25.gif

 

1. 성균관대학교 선형대수학 홈페이지

2. 정 의 (Definitions)

3. 주 요 정 리 (Theorems)

4. 예 (Examples)

5. 외국 웹 교재(Book)

6. Shores 교수의 LA 교과서

7. Internet 참고서적 (References)

8. SIAM 선형대수 논문집 (SIAM)

9. Dr. Hillman의 선형대수 자료 (Matlab 등)

10. Dr. Lee's  Homepage

 

SKKU 선형대수학 프로그램

추천하는 가볼만한 곳

수학에 관련된 소프트웨어및 utilities 중 선형대수학의  Java Script

(2000 Spring) OCU 선형대수학  전체 강의계획서  anii25.gif

 

         1. 선형대수학, 금종해, 한샘출판사(1994)
         2. Linear Algebra, Hong & Kwak, Postec(1997)
         3. Elementary Linear algebra, Edwards and Penny, P-H
         4. Matrix Analysis, Horn and Johnson, Cambridge(1992)
         5. HLINPRAC, 성대 선형대수연구실 (1997)
         6. ATLAST Computer Exercises for Linear Algebra ,S. Leon, E. Herman, R. Faulkenberry , Prentice Hall  (1996)
         7. 모의 Quiz,  모의 중간고사,  모의 기말고사    anii25.gif