1.2 데이터의 형식과 기본 연산 (part 3)¶
벡터의 정사영과 일차독립¶
벡터의 정사영(projection)¶
두 벡터 ${\bf v}$, ${\bf w}$와 두 벡터의 사잇각 $\theta$에 대하여 실수값 $\Vert {\bf v}\Vert \cos \theta$를 ${\bf v}$의 ${\bf w}$방향 성분이라 한다. 그리고
$$ {\bf Proj}_{\bf w}({\bf v}) := \left(\Vert {\bf v}\Vert \cos \theta\right) \frac{{\bf w}}{\Vert {\bf w}\Vert} = \frac{{\bf v}\cdot {\bf w}}{{\bf w}\cdot {\bf w}}\, {\bf w} $$를 벡터 ${\bf v}$의 ${\bf w}$위로의 정사영(projection) 이라고 한다.
벡터 ${\bf w}$를 기준으로 삼아 벡터 ${\bf v}$를 서로 수직인 두 성분벡터로 분해할 수 있다.
이때 정사영 ${\bf Proj}_{\bf w}({\bf v})$를 ${\bf v}$의 ${\bf w}$방향 성분벡터(component)라고 하고,
벡터 ${\bf v}-{\bf Proj}_{\bf w}({\bf v})$를 ${\bf v}$의 ${\bf w}$에 **수직**인 성분벡터(orthogonal component)라고 한다.
이 두 성분벡터를 더하면 다시 벡터 ${\bf v}$를 얻는다.
예제 1.1.11 $\mathbb{R}^3$에서 각 좌표축 위에 놓인 단위벡터를 ${\bf i}=[1,0,0]$, ${\bf j}=[0,1,0]$, ${\bf k}=[0,0,1]$로 나타내자.
이때, 두 벡터 ${\bf v} = {\bf i} + {\bf j} +{\bf k}$, ${\bf w} = 2{\bf i} + 2{\bf j} + 0{\bf k}$에 대하여
(1) ${\bf Proj}_{\bf w}({\bf v})$를 구하시오.
(2) ${\bf v}$의 성분 중 ${\bf w}$에 수직인 성분벡터를 구하시오.
[풀이]
(1) ${\bf v}\cdot {\bf w}=2+2+0=4$, ${\bf w}\cdot {\bf w}=4+4+0=8$ 이므로
${\bf Proj}_{\bf w}({\bf v}) = \dfrac{{\bf v}\cdot {\bf w}}{{\bf w}\cdot {\bf w}}\, {\bf w}=\dfrac{4}{8}\, {\bf w}={\bf i} + {\bf j} + 0{\bf k}={\bf i} + {\bf j}$
(2) ${\bf v}-{\bf Proj}_{\bf w}({\bf v})=({\bf i} + {\bf j} +{\bf k})-({\bf i} + {\bf j})={\bf k}$
[풀이 끝]
파이썬 예제 1.1.12 python에서 내적 np.dot(a,b)를 이용하여 위 예제 1.1.11의 답을 확인해보자.
[풀이]
import numpy as np
v=np.array([1,1,1])
w=np.array([2,2,0])
proj=(np.dot(v, w)/np.dot(w,w)) * w
proj
array([1., 1., 0.])
v - proj
array([0., 0., 1.])
파이썬 예제 1.1.13 두 벡터 ${\mathbf v}$, ${\mathbf w}$가 주어졌을 때, python에서 정사영 ${\bf Proj}_{\bf w}({\bf v})$와
${\bf v}$의 성분 중 ${\bf w}$에 수직인 성분벡터를 구하고,
이 벡터들을 한 좌표공간에 그려주는 함수를 matplotlib을 이용하여 아래의 풀이에서와 같이 정의하고,
그 함수의 이름을 decomp이라고 붙였다. (이 코드를 자세히 설명하는 것은 이 과정에서는 생략한다.)
이렇게 정의한 decomp 함수에 벡터 ${\mathbf v}$, ${\mathbf w}$를 입력하여 결과를 출력해보자.
[풀이] 다음은 decomp 함수를 정의한 것이다.
from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
import numpy as np
def decomp(v, w):
proj = (np.dot(v, w)/np.dot(w,w)) * np.array(w)
vert = np.array(v)-proj
array=np.array([[0, 0, 0, v[0],v[1], v[2]],
[0,0,0, w[0],w[1],w[2]],
[0,0,0,proj[0],proj[1],proj[2]],
[0,0,0, vert[0],vert[1], vert[2]],
[proj[0],proj[1],proj[2], v[0]-proj[0],v[1]-proj[1],v[2]-proj[2]],
[vert[0],vert[1],vert[2], v[0]-vert[0],v[1]-vert[1],v[2]-vert[2]]])
print("Proj_w(v)=", proj)
print("Vertical component=", vert)
X, Y, Z, U, V, W = zip(*array)
fig = plt.figure()
ax=plt.axes(projection='3d')
ax.set_xlim([0, 3])
ax.set_ylim([0, 3])
ax.set_zlim([0, 3])
ax.quiver(X,Y,Z, U,V,W, color=['r', 'g', 'b', 'b','g','g'])
plt.draw()
plt.show()
decomp([1,1,1], [2,2,0])
Proj_w(v)= [1. 1. 0.] Vertical component= [0. 0. 1.]
[풀이 끝]
벡터의 선형(일차)결합¶
$\mathbb{R}^n$의 몇 개의 벡터들 ${\bf v}_1$, ${\bf v}_2$, $\cdots$, ${\bf v}_m$에 대하여 이들의 선형결합 또는 일차결합(linear combination)이란
$$ c_1{\bf v}_1+c_2{\bf v}_2+\cdots+c_m{\bf v}_m \qquad (c_1, \ c_2, \ \cdots, \ c_m\,\mbox{은 스칼라}) $$꼴로 표현된 벡터를 말한다.
정의 (일차독립)
$\mathbb{R}^n$의 벡터들 ${\bf v}_1$, ${\bf v}_2$, $\cdots$, ${\bf v}_m$에 대하여
만일 방정식
$c_1{\bf v}_1+c_2{\bf v}_2+\cdots+c_m{\bf v}_m={\bf 0}$을 만족시키는 스칼라 계수가 $c_1=c_2=\cdots=c_m=0$뿐이면
벡터들 ${\bf v}_1$, ${\bf v}_2$, $\cdots$, ${\bf v}_m$은 서로 일차독립(linearly independent) 이라고 한다.
그렇지 않은 경우에는 벡터들 ${\bf v}_1$, ${\bf v}_2$, $\cdots$, ${\bf v}_m$은 서로 일차종속(linearly dependent) 이라고 한다.
예제 1.1.14 다음과 같이 주어진 $\mathbb{R}^3$의 벡터들이 서로 일차독립인지, 일차종속인지 판정하시오.
(1) ${\bf a}=[1,0,-1]$, ${\bf b}=[1,1,0]$, ${\bf c}=[1,0,1]$
(2) ${\bf u}=[1,1,1]$, ${\bf v}=[1,0,1]$, ${\bf w}=[0,2,0]$
[풀이]
(1) $c_1 {\bf a} + c_2 {\bf b} + c_3 {\bf c} = c_1[1,0,-1]+c_2[1,1,0]+c_3[1,0,1]=0$을 만족하는 실수 $c_1$, $c_2$, $c_3$를 구해보자.
연립일차방정식으로 나타내면 $$ \begin{cases} c_1 + c_2 + c_3 = 0 \\ c_2 =0 \\ -c_1 + c_3 = 0\end{cases} $$
이고, 이를 만족하는 해는 $(c_1, c_2, c_3 )= (0,0,0)$ 인 경우 뿐이므로, 이 세 벡터 ${\bf a}$, ${\bf b}$, ${\bf c}$는 서로 일차독립이다.
(2) 같은 방법으로, 연립방정식 $$ \begin{cases} c_1 + c_2 = 0 \\ c_1 + 2c_3 =0 \\ c_1 + c_2 = 0\end{cases} $$
으로부터 $c_2 = -c_1$, $c_3 = -\frac{c_1}{2}$ 를 만족하면 되므로, 자명하지 않은 해가 존재한다. 따라서 이 세 벡터 ${\bf u}$, ${\bf v}$, ${\bf w}$는 일차종속이다.
[풀이 끝]
예제 1.1.15 $\mathbb{R}^4$의 벡터들 ${\bf u}=[1,3,0,-1]$, ${\bf v}=[5,-1,4,-9]$, ${\bf w}=[-1,5,-2,3]$ 이 서로 일차독립인지, 일차종속인지 판정하시오.
[풀이]
$c_1 {\bf a} + c_2 {\bf b} + c_3 {\bf c} =0$을 만족하는 실수 $c_1$, $c_2$, $c_3$를 구하기위하여 연립일차방정식
$$\begin{array}{rrrcr} c_1 & +5c_2 & -c_3 & = & 0\\ 3c_1 & -c_2 & +5c_3 & = & 0\\ \ & 4c_2 & -2c_3 & = & 0 \\ -c_1 & -9c_2 & +3c_3 & = & 0 \end{array} $$을 정리하면 $c_1=-3c_2$, $c_3=2c_2$이므로, 자명하지 않은 해가 존재한다. 따라서 이 세 벡터 ${\bf u}$, ${\bf v}$, ${\bf w}$는 일차종속이다.
[풀이 끝]
벡터공간¶
어떤 집합 $V$와 스칼라 $\mathbb{R}$에 대하여 덧셈과 스칼라곱이 정의되어 있고
$(V, +)$이 결합법칙, 교환법칙을 만족하고 덧셈에 대한 항등원과 역원을 갖고 있고,
스칼라곱의 분배법칙, 스칼라에 대한 벡터의 분배법칙, 스칼라곱의 결합법칙을 만족하고, 스칼라곱에 대한 항등원을 갖고 있으며
임의의 ${\bf u}, {\bf v}\in V$, $a, b \in \mathbb{R}$에 대하여 $a{\bf u} + b{\bf v} \in V$ 가 성립할 때,
$V$를 벡터공간이라 하고 $V$의 원소를 벡터라 한다. (벡터의 일반적인 정의)
벡터 공간의 예
- $\mathbb{R}$, $\mathbb{R}^n$ 등은 벡터공간이며, 유클리드 공간(Euclidean space)이라고 부른다.
- 실수 계수를 가지는 모든 2차 이하의 다항식들의 집합 $P_2(\mathbb{R})=\{a+bx+cx^2\mid a,b,c\in\mathbb{R}\}$이 벡터공간이다.
1.1 (part 3) 연습문제 과제¶
- 먼저 이 강의의 jupyter notebook 파일에서 예제 1.1.11, 파이썬 예제 1.1.12, 파이썬 예제 1.1.13, 예제 1.1.14, 예제 1.1.15 부분만 뽑아서 새로운 파일로 저장하세요.
- 과제는 이 문제들 각각에 대하여 일부분(숫자, 문자, 함수 등)을 바꾸어 새로운 문제를 만들고 풀이를 써서 jupyter notebook 파일로 제출하는 것입니다.
'Math > SW&AI 전공 진입을 위한 수학(K-MOOC)' 카테고리의 다른 글
1-1_데이터의 형식과 기본 연산 (part 2) (0) | 2022.09.13 |
---|---|
1-1_데이터의 형식과 기본 연산 (part 1) (0) | 2022.09.13 |
1-0_Orientation (0) | 2022.09.13 |