■ 스칼라
선형대수에서 가장 기본적인 개념. 스칼라(Scalar)는 크기 (Magnitude)만으로 나타낼 수 있는 물리량을 의미한다.
예를 들어 길이(length), 부피(volume), 거리(distance) 등과 같이 크기(magnitude)만으로 나타낼 수 있는 것이 스칼라이다.
쉽게는 '숫자' 하나로 표기된 것 대부분 스칼라라고 생각할 수 있다.

위 데이터들의 집합은 데이터 셋(Data set)이라고 한다. 데이터 셋을 구성하는 하나의 구성 원소[숫자] 하나하나가 스칼라이다. 이때 데이터의 특성(Feature)은 나이, 체중, 키가 된다.
위 예시를 기준으로 스칼라를 기하학적으로 표시한다면 아래와 같다.

스칼라의 연산을 파이썬으로 구현해보면 아래와 같다. 우리가 무의식적으로 연산을 했던 것들이다.




■ 벡터
벡터(Vector)는 스칼라의 집합이며, 행렬(Matrix)을 구성하는 기본 단위이다. 스칼라는 크기만 나타내지만 벡터는
크기(Magnitude)와 방향(Direction)을 모두 나타내는 개념이다.



그저 개인 공부용 기록이기 때문에 그림 그리는거에 시간 많이쓰고 싶지않아서 3차원 공간을 대략적으로 그려봤다.
x = 2, y = 5, z = 7인 위 그림처럼 (2, 5, 7)은 3차원 공간으로 표현한다.
벡터는 크게 두 가지로 나뉜다. 벡터를 구성하는 원소가 행 방향으로 나열한 것을 행벡터라하고 열 방향으로 나열된 것을 열벡터라고 한다.

[특징]
(1) 벡터는 크기와 방향으로 표현할 수 있다고 했다. 벡터의 길이(length)는 해당 벡터의 크기(magnitude)를 나타내며 벡터가 가리키고 있는 방향은 해당 벡터의 방향(direction)을 나타낸다. 서로 다른 벡터의 크기와 방향이 같다면 해당 벡터는
위치(position)와 상관없이 동일한 벡터이다.
(2) 벡터의 길이가 0인 벡터는 영 벡터(zero vector)라고 한다. 모든 구성원이 0인 영행렬(zero matrix)와 동일 내용이다.
[추가]
벡터는 수학 기호에선


라고한다.
아래와 같이 크기가 1인 벡터는 단위벡터라고 한다. 유니티에서 normalize(정규화) 시킨 벡터를 생각하면 간단하다.

[벡터의 사칙연산]
(1) 덧셈
A = (1, 2, 3) 이고 B가 (4, 5, 6)일때
a+b = (1+4, 2+5, 3+6)인 (5, 7, 9)가 된다. 아래와 같은 그림은 b의 시작지점이 a의 종료지점과 동일 시 시켰을 떄이다.

(2) 뺄셈
a = 1, 2, 3이고 b = 4, 5, 6 일때 a-b = (1-4, 2-5, 3-6) 즉 (-3, -3, -3)이다.

(3) 곱셈
벡터의 스칼라 곱(Scalar Multiplication)이라고도 한다. 벡터의 스칼라 곱은 크기와 방향에 모두 영향을 미친다.
벡터의 크기가 항상 늘어난다는 보장도 없고 방향도 동일하다는 보장이 없다 그 값들은 어떤 수를 곱하냐에 따라 다르다
아래와 같이 벡터에다가 2를 곱하면 동일한 방향에 크기가 두배로 늘어나지만 -1/2x 를 곱하면 반대방향으로 크기도 반으로 줄어든다.

■ 파이썬
(1) 덧셈

def로 함수를 만들어봤다

(2) 뺄셈

(3) 스칼라와 벡터의 곱 & 벡터와 벡터 곱연산


scalar_mul vector_mul로 함수 분기해서 처리하는게 더 깔끔할 것 같다.
(4) 벡터의 나눗셈

벡터 나눗셈 구현 중 신기한 것을 발견했다. 파이썬에서는 정상적이지 않은 연산은 에러를 뱉어낸다고한다 예를 들어 정수를 0으로 나눈다는 것은 정상적이지 않기 떄문에 에러를 뱉어냈다.
그래서 try except을 활용해서 0으로 나누려고 한다면 경고문을 띄우고 넘어가도록했다.

▼ 정상값 입력시 출력 상태

위에 만들어놓은 함수를 라이브러리로 저장해놨다.


■ 넘파이
파이썬에서 제공하는 넘파이 라이브러리 또한 활용해봤다.

'개발 (AI) > 선형대수' 카테고리의 다른 글
[행렬] 대각 행렬 (0) | 2023.05.07 |
---|---|
[행렬] 대칭 행렬 (0) | 2023.05.06 |
[행렬] 전치행렬 (0) | 2023.05.06 |
[행렬] 공부할 행렬 종류 (0) | 2023.05.06 |
[행렬] 행렬의 여러 가지 계산, 대각합 (파이썬, 넘파이, 계산 검증) (0) | 2023.05.02 |