기본 콘텐츠로 건너뛰기

라벨이 vector인 게시물 표시

[matplotlib]quiver()함수

[Linear Algebra] 벡터 사칙연산

벡터 사칙연산 벡터, 행렬 등 배열의 사칙연산은 동일한 형태의 객체 중에 동일한 인덱스를 가진 요소들 사이에서 이루어집니다. 다시 말하면, 동일한 인덱스가 존재할 경우에만 연산이 이루어집니다. import numpy as np a=np.array([10,15]) b=np.array([8,2]) c=np.array([1,2,3]) abSum=a+b print(abSum) [18 17] abSub=a-b print(abSub) [ 2 13] print(a-c) ValueError: operands could not be broadcast together with shapes (2,) (3,) 위 코드에서 객체 a와 c는 형태가 다르므로 연산이 이루어지지 않습니다. 벡터 a, b에 연관된 연산은 그림 1과 같이 나타낼 수 있습니다. 그림 1. 두 벡터의 덧셈과 뺄셈. 두 벡터의 덧셈 연산은 그들이 생성할 수 있는 평행사변형의 대각선에 대응하는 벡터와 같습니다. 뺄셈 역시 a + (-b)와 같이 b에 스칼라 -1을 곱한 결과로 덧셈 연산과 같습니다. 그러므로 그림 1에서 나타낸 것과 같이 뻴셈의 결과는 벡터 a와 벡터 -b와의 평행사변형의 대각선을 표현하는 벡터와 같습니다. 식 1에서 나타낸 것과 같이 벡터(또는 행렬) $\vec{u}, \vec{v}, \vec{w}$ 그리고 두 개의 스칼라인 a, b 사이에 연산 법칙을 정의될 수 있습니다. \begin{align}\vec{u}+\vec{v}& = \vec{v}+\vec{u} \\ \vec{u}+(\vec{v}+\vec{w})& = (\vec{v}+\vec{u})+\vec{w}\\ \vec{v}+0 & = \vec{v} \\1\cdot \vec{v}& = \vec{v} \\ a\cdot(\vec{v}+\vec{u}) & = a\cdot\vec{v}+a\cdot\vec{u}\\ ...

[Linear Algebra] 단위벡터(unit vector)

단위벡터 단위벡터(unit vector) 는 노름(norm) 이 1인 벡터로서 식 1과 같이 계산할 수 있습니다. \begin{align}a&=\begin{bmatrix}a_1& a_2 \end{bmatrix}\\\text{a의 단위벡터}&= \begin{bmatrix} \frac{a_1}{\Vert{a}\Vert}& \frac{a_2}{\Vert{a}\Vert}\end{bmatrix} \end{align} (식 1) import numpy as np import numpy.linalg as la a=np.array([2,7]) a_norm=la.norm(a) a_unit=a/a_norm print(a_unit) [0.27 0.96] la.norm(a_unit) 1.0 예 1) 벡터의 u와 같은 방향의 단위벡터? u = [-4, -5, -4] u=np.array([-4, -5, -4]) u_norm=la.norm(u) round(u_norm, 3) 7.55 u_unit=u/u_norm print(u_unit) [-0.53 -0.66 -0.53]

R의 기본과 벡터

내용 기본사항 벡터와 연산 객체 R 기본과 벡터 기본사항 R은 vector, list, dataframe과 같은 데이터 구조에서 작동합니다. 가장 단순한 구조는 숫자 벡터로, 정렬된 숫자 모음으로 구성된 단일 엔터티입니다. 5개의 숫자, 즉 10.4, 5.6, 3.1, 6.4 및 21.7로 구성된 x라는 벡터를 설정하려면 R 명령을 사용합니다. > x 함수 c()는 내부의 요소들을 연결하고 그 결과의 객체를 ' assign() 함수에 의해 실행될 수 있습니다. > assign("y", c(10.4, 5.6, 3.1, 6.4, 21.7)) > y [1] 10.4 5.6 3.1 6.4 21.7 할당연산자의 방향을 반대로 할 수 있습니다. > c(10.4, 5.6, 3.1, 6.4, 21.7)->z; z [1] 10.4 5.6 3.1 6.4 21.7 당연히 위 표현(expression)에 의해 생성되는 객체는 다음과 같이 다른 계산에 적용되거나 새로운 객체로 할당될 수 있습니다. > 1/z [1] 0.09615385 0.17857143 0.32258065 0.15625000 0.04608295 > zz 벡터와 연산 vector의 산술은 요소별로 일어나며 계산의 대상이 모두 같은 길이를 가질 필요는 없습니다. 즉, 짧은 벡터는 대응되는 긴 벡터에 대해 재사용(recycle) 됩니다. 재사용은 대응되는 두 벡터의 길이가 배수관계일 경우 실행됩니다. > 1/z [1] 0.09615385 0.17857143 0.32258065 0.15625000 0.04608295 > zz 벡터의 길이는 lenght() 함수에 의해 확인할 수 있습니다. > length(x);length(y) [1] 3 [1...