프로그래머를 위한 선형 대수
http://www.kyobobook.co.kr/product/detailViewKor.laf?ejkGb=KOR&barcode=9791160501308
==============================
1. 벡터 행렬 행렬식
==============================
수치를 묶는 데이터 : 수치의 조합 -> 공간 안의 점으로 간주!
벡터 : 숫자를 일렬로 늘어 놓은 것 -> 화살표, 또는 공간안의 점
행렬 : 숫자를 직사각형으로 늘어 놓은 것 -> 공간에서 고간으로 직고 사상
행렬식 : 귀찮은 계산 -> 위의 사상에 따른 부피 확대율
-------------------
1.1 벡터와 공간 (대상)
-------------------
1.1.1 우선적인 정의: 수치의 조합을 정리하여 나타내는 기법
* 종벡터 : 세로로 늘어선 벡터
* 횡벡터 : 가로로 늘어선 벡터
* T Transpose : 전치 행과 열을 바꿈
? > 주로 종벡터를 이용하는 이유?
변수 x 에 함수 f 를 적용하다. -> f(x)
벡터 x 에 행렬 A 를 적용하다. -> Ax
Ax 로 쓰기 위함
? > 수란?
성분이 실수 : 실벡터, 실행렬
성분이 복소수 : 복소벡터, 복소행렬
(실수 : 3.14... (무한)소수로 표현되는 수
복소수 : 허수 단위 i를 사용 (실수)+(실수)i 로 표현)
1.1.2 '공간'의 이미지
* 덧셈 : 같은 차원의 벡터에 대해
* 정수배 : 임의의 수c에 대해
* 위치 벡터 : 벡터를 위치에 대응
열벡터 (x,y,z...)
-3 이라면 반대방향의 원래길이의 3배
* 화살표의 덧셈
화살표의 이어 붙임
* 화살표의 정수배
실이를 늘이고 줄임
? > 일차원 벡터란
일차원 벡터 a 와 수 a 는
1차원 배열과 변수 하나와 같은 개념 명시적 변환이 필요하다.
1.2.3 기저
* 선형 공간 : 덧셈과 정수배가 정의된 세계 (벡터 공간)
길이나 각도가 정의되어 있지 않다. 다른 방향의 벡터끼리 대소를 비교하는 방법은 없다.
회전(=길이를 유지하며 방향을 바꾸다) 도 정의 할수 없다.
? > 내적이나 외적?
내적 : 좌표가 변하면 내적도 변해버려서 좋지 않다.
외적(벡터곱) : 3차원 공간에 특화된 개념
3차원 벡터 x,y에 대해, 외적 x*y 를 변으로 하는 평행사변형의 면적과 같다.
* 기저 : 기준이 되는 한쌍의 벡터
* 좌표 : 각 기준에서 몇 보 나아가는 가
* 화살표(벡터), 수의나열(표현방법) 로 표현
* 기저의 조건
1) 어떤 벡터 v라도 v = x1e1 + x2e2 ... 의 형태여야함 (x는 임의수)
2) 벡터 v 를 나타내는 방법은 한가지
예) 기적 벡터
평면 위의 2개의 벡터가 독립된 방향을 향함
공간 위의 3개이 벡터가 독립된 방향을 향함
* 선형결합
주어진 벡터에 대해 수를 가져와 생기는 벡터
u1e1 +..+ unen
선형결합으로 임의의 벡터 x가 나타나고 거기다 그 표현법이 유일할때 e1,..,en 을 기저 라고 부른다.
1.1.5 차원
* n 차원이면 기저벡터는 딱 n 개
그러나 반대로 기저 벡터의 개수가 그 공간의 차원을 정의
* 차원 = 기저벡터의 개수 = 좌표의 성분수
1.1.6 좌표에서의 표현
* 산의 높이가 123m 이다.
단위 m 이 기저!
* 어떤 기저를 취하여 좌표를 표시해도 덧셈과 정수배는
좌표 성분마다 덧셈과 정수배가 된다.
-------------------
1.2 행렬과 사상 (관계)
-------------------
1.2.1 우선적인 정의: 순수한 관계를 나타내는 편리한 기법
* 행렬 : 수를 직사각형 형태로 나열한 것
* 정방행렬 : 행과 열의 수가 같은 행렬
* 행렬과 벡터 곡
- 행렬과 벡터의 곱은 벡터
- 행렬의 결수(가로폭)가 '입력'의 차원수, 행 수(높이)가 '출력'의 차원수
- 입력의 종벡터를 가로로 넘겨 계산하는 느낌
1.2.2 여러가지 관계를 행렬로 나타내다 (1)
* 행렬 곱
상승 효과나 규모 효과가 없고, 단순히 각 요인의 합계다.
1.2.3 행렬은 사상이다
* 사상 : 변환 (대등한 것에 이동한다.) 과 유사
n 차원 공간에서 m 차원 공간이라는 다른 세계에 옮기는 것
행렬 A 에 의해 공간 전체가 어떻게 변하는가
행렬 A
1 -0.3
-0.7 0.6
-> 즉 1 을 1 로 이동 0 은 -0.3 으로 이동
0 -0.7 1 0.6
(1,0) 의 목적지 (1,-0.7)
(0,1) 의 목적지 (-0.3,0.6)
-> 공간의 전체가 변한다.
* mxn 행렬 a 는 n 차원 공간을 m 차원 공간에 옮기는 사상을 나타냄
* 사상이 같다면 행렬도 같다!!
즉, 같은 크기의 행렬 a, b 가 임의의 벡터 x에 대해 항상 ax = bx 라면 a=b 다
1.2.4 행렬의 곱=사상의 합성
* k x m * m x n = k x n
1. 오른쪽 행렬을 세로로 단락을 분해
2. 분해한 각각의 왼쪽 행렬을 곱
3. 결과를 접착
A행렬 B행렬
(a b * (1 2 -> (a+b a+b -> (a1+b3 a2+b4
c d) 3 4) c+d c+d ) c1+d3 c2+d4 )
tip> a b, c b 를 1,3 로 곱하고 다시 a b, c b 를 2,4 에 다 곱함
* 사상의 합성
A B 행렬의 곱
A 하고 B 한다 = BA
(BA)x = B(Ax)
A B C 행렬의 곱
A 하고 B 하고 C 한다 =CBA
B 의 폭(열 수)과 A의 높이(행 수) 가 맞지 않으면 안된다.
* f 한것을 g 한다 -> g(f(x))
AB -> B 하고 A 한다.
* A[[0, -1], B[[2, 0] 일때
[1, 0]] [0, 1]]
AB
-> B 하고 A 한다. [[0,1],[1,0]]
B 에 의해서
[[0], [[2],
[1]] -> [0]] 이 되어 가로로 늘어나고
A 에 의해서
[[1], [[-1]
[0]] ->[0]] 이 되어 돌아 가게 된다.
BA
-> A 하고 B 한다. [[0,1],[1,0]]
A 에 의해서
[[1], [[-1]
[0]] ->[0]] 이 되어 돌아 가고
B 에 의해서
[[0], [[2],
[1]] -> [0]] 이 되어 가로로 늘어난다.
? > 곱이 사상의 합성이다?
행렬의 각 열은 각 축 방향의 단위 벡터 e1...en 의 목적지가 된다.
[ 1 0
0 1 ]
첫번쨰 열 1, 0 은 x 축의 단위 벡터 x=1, y=0
두번쨰 열 0, 1 은 y 축의 단위 벡터 x=0, y=1
1.2.5 행렬의 연산 성질
* 수 c, 벡터 x 행렬 A,B,C
- (cA)x = c(Ax) = A(cx)
* 벡터도 행렬의 일종?
n 차원 벡터를 nx1 행렬로 간주
2 차원 벡터는 2X1 해열ㄹ로 간주
종 곱하기 횡
| * ㅡ = [ ]
횡 곱하기 종
ㅡ * | = ·
1.2.6 행렬의 거듭제곱 = 사상의 반복
A(1 0, 0 0) : 상하를 찌그러트리는 행렬
B(0 -1, 1 0) : 반시계 방향으로 90도 회전한 행렬
x 축이 1, 0 -> 0, -1 로 바뀌고 y 축이 0, 1 -> -1, 0 로 바뀜
(AB)²
(B 하고 A 한다)²
90 도 회전하고 찌그러트리고 다시 90 도 회전하고 찌그러트리면 scla 값 ·만 남는다.
A²B²
(B 하고)² (A 하고)²
90 도 회전하고 다시 90 도 회전한 다음 찌그러트리면 ㅡ 횡벡터가 되고 다시 찌그려트려도 ㅡ 횡벡터 이다.
1.2.7 영행렬, 단위행렬, 대각행렬
* 영행렬 (O)
모든 행렬의 성분이 0인 행렬
- 사상 : 모든 것을 원점으로 이동 시키는 사상
* 단위행렬 (I)
왼쪽 끝부터 대각선 \ 위만 1이고 다른것은 모두 0인 행렬
1 0
0 1
모든 성분이 1인 행렬은 아님
- 사상 : 아무것도 하지 않는 사상
* 대각행렬
대각성분: 정방 행렬의 대각선 \ 상의 값을
비대각성분 : 대각성분 이외의 값
비대각성분이 모두 0인 행렬
- 사상 : 축에 따른 신축(늘리고 줄이고)이 있고, 대각성분이 각 축의 늘고 주는 배울이 됨
대각성분에 0 이 있는 경우
가로 방향이 눌려 납작해 짐
대각성분에 음수가 있는 경우
점점 공간이 눌려 결국 뒤집혀 (거울상) 버림
1.2.8 역행렬 = 역사상
정의 : A 의 역행렬, 정방행렬 x 에 곱하면 단위 행렬 i 가 되는 행렬
이동점 y 를 갖고 원래의 점 x 를 구하다.
x - A -> y
x <- A-¹ - y
기본성질
- (A-¹)-¹ = A
-¹ 을 두번 하면 취소
- (AB)-¹ = B-¹A-¹
B 하고 A 한것을 원래대로 돌려 놓으려면 A 부터 취소하고 B 를 취소
- (Aⁿ)-¹ = (A-¹)ⁿ
A 를 n 번 한것은 원래대로 돌려 놓으려면 A 의 취소를 n 번
- AA-¹ = I
- (AB)(B-¹A-¹) = ABB-¹A-¹ = I
- (Aⁿ)(A-¹)ⁿ = I
대학행렬의 경우
A = diag(a1,..,an) 축에 따른 신축
B = diag(1/a1,..,1/an)
BA = I
B 는 A의 역행렬
a 에 0 이 하나라도 있으면 역행렬을 만들수 없다.
A 가 납작하게 눌리는 사상이 되어 만들 수 없음
1.2.9 블록행렬
큰 문제를 작은 부분 문제로 분할 하는 것
정의 : 행렬의 종횡에 단락을 넣어 각 구역을 작은 행렬로 간주
작은 행렬을 마치 추상화 하듯
( 1 2 | 0 1 * (0 1
3 4 | 0 1 0 1
------------------
1 2 | 0 1 0 1
3 4 | 0 1 ) 0 1)
작은 행렬
A (1 2 b (0 1 f(0 1
3 4) 0 1) ... 0 1)
큰 행렬
( A B * (E
C D ) F)
=>(A*E+B*F
C*E+D*F)
행벡터 : 블록 단락을 행으로만 구분하여 나눈 행렬
열벡터 : 블록 단락을 열로만 구분하여 나눈 행렬
블록대각행렬
\ 대각선상의 블록이 모두 정방행렬
추상화한 큰 행렬 A, D 를 제외한 나머지는 O 행렬
1.2.10 여러가지 관계 행렬
고계 차분, 고계 미분
다음 번의 상태는 최초의 상태로 결정된다.
(뭔지....-___-...???)
정수항의 나눗셈(제법)
y=Ax+b 를 행렬의 곱으로 만듬
y = A b * x
1 o 1 1
'데이터분석' 카테고리의 다른 글
빅데이타 분석 맛보기 (0) | 2022.06.13 |
---|---|
2018.02.27 통계의 힘 (0) | 2018.02.28 |
2017.05.01 Head First Data Analysis (0) | 2017.05.01 |
[수학] 통계학입문 (두번째) (0) | 2016.06.04 |
[수학] 통계학입문 (첫번째) (0) | 2016.05.02 |