SKKU-LA-7.7-Gram Schmidt 정규직교화 과정


1. Gram Schmidt 정규직교화 과정 (with GeoGebra)

http://www.geogebratube.org/student/m58812

2. Gram Schmidt 정규직교화 과정 (with Sage)

Gram-Schmidt 정규직교화를 위한 함수를 우선 정의하자. 이를 위하여 Gram-Schmidt 정규직교화의 가장 큰 핵심기능인 정사영을 구하는 함수를 우선 정의한다.




이 함수를 이용하여 Gram-Schmidt 정규직교화를 직접 수행하는 함수를 정의하자.




이제 세 벡터 (1, 2, 1), (1, 0, 1), (3, 1, 0)를 다음과 같이 정의하자.




앞서 정의한 함수를 이용하여 정규직교화된 벡터를 아주 쉽게 구할 수 있다. 벡터들은 GS라는 변수의 배열로 저장되고, GS[0], GS[1], GS[2]를 이용하여 각 벡터를 확인할 수 있다.




이제 이렇게 구한 벡터들이 모두 직교벡터인지를 확인하자.




또한 그 크기가 1임을 직접 확인하도록 하자.




앞서 정의한 함수는 벡터에 대한 정규직교화를 위하여 별도로 구성된 함수이다.

사실 Sage-Math에는 행렬의 행벡터들을 직교화할 수 있는 함수가 이미 준비되어 있다. 따라서 위의 벡터를 행벡터로 가지는 행렬을 만든 다음 내장함수를 이용하면 손쉽게 정규직교벡터를 구할 수 있다.




Sage-Math의 내장함수 gram_schmidt를 이용하자. 앞에서와 마찬가지로, G에는 배열형태로 정규직교화된 벡터들을 행으로 가지는 행렬이 저장된다. mu는 수치적 오차가 저장된다. 단 이 함수는 정규직교화 중 직교화만 실행한다.




직교화만 실행된 결과를 이용하여, 각 벡터의 크기로 벡터를 나누어주면 정규직교화된 벡터를 구할 수 있다.




앞서 구한 벡터와 동일함을 쉽게 알 수 있다. 이 각각의 벡터가 서로 수직인지 또한 그 크기가 1임을 직접 확인하도록 하자.




마지막으로 앞서 구한 벡터들이 실제로 정규직교기저인지, 3차원 그래프를 통해서 확인해 볼 수 있다.







3. Gram Schmidt 정규직교화 과정

http://matrix.skku.ac.kr/CLAMC/chap7/page55.htm
http://matrix.skku.ac.kr/CLAMC/chap7/page56.htm

4. 선형대수학 Section 7.7 Gram-Schmidt ON Process

http://youtu.be/EBCi1nR7EuE