
얼마전까지만해도 수학의 수 와도 친하지않던 O모양...
그러나 이번주부터는 수학을 공부해야한다
😇살려주세요😇
개인공부용으로 리뷰하는거라 설명이 부족할 수 있지만 뭐 어때 일단 한번 해보자고? 가보자고?
처음에 이 둘을 공부할 때, 선형대수학의 한 분야라는 말을 어디서 들었다. 그래서 대체 선형대수학이 뭘까? 했었다.
그걸 알아보기 전에, 간단하게 둘을 정리하면 다음과 같다.
스칼라: 단순히 변수로 지정되어 있는 숫자. 숫자 하나의 '크기'만으로 표현 가능한 것.
백터: 거기에 '방향'도 있는 숫자. n개의 원소를 가지는 순서를 가진 모임. 여러 개의 차원을 가질 수 있음.
이런 백터와 매트릭스(행렬)의 성질을 연구하는 분야를 수학에서 선형대수학 이라고 한다.
고등학교 때 까지는 행렬이라는 이름에 익숙했지만, 매트릭스로도 자주 불린다고 한다는 것 같다. 흔히 행렬 하면 생각나는 그거...그걸 생각하면 된다.
좀 더 자세하게 설명하자면 다음과 같다.
매트릭스(행렬): 숫자를 2차원 형태로 나열한 개체처럼, 숫자를 직사각형 모양으로 배열한 것. 사각형의 가로줄을 행(row), 세로줄을 열(column)이라고 부른다.
행렬을 이루는 각각의 숫자를 성분 또는 원소라고 부른다.
고등학교 수학시간에서 살펴봤듯이, 행렬의 종류는 다양하다.
그 중 몇개를 나열하자면 다음과 같다.
영행렬: 모든 원소가 0인 행렬
대각행렬: 주대각선 외의 원소가 모두 0인 행렬
정방행렬(정사각행렬): 행과 열의 개수가 같은 행렬. 전치시켜도 원래 그대로이다.
역행렬: 선형대수학에서 가역 행렬, 정칙 행렬 또는 비특이 행렬은 그와 곱한 결과가 단위 행렬인 행렬을 갖는 행렬이다. 이를 그 행렬의 역행렬 이라고 한다. 예를 들어,
- AB = I
- BA = I
- AB = BA = I
이렇게 세 조건이 서로 동치일 때, B를 A의 역행렬 이라고 한다.
그렇다면 파이썬에선 어떻게 백터를 계산할 수 있을까? 파이썬에선 NumPy를 이용해서 선형대수를 계산한다. 심지어 NumPy는 선형대수 뿐만 아니라 더 많은 종류의 계산에 활용되는 라이브러리이다.
예를 들어, 두 리스트를 행렬로 만들어 더하고 싶다면 다음과 같은 연산을 수행해주면 된다.
import numpy as np
a = np.array(a)
b = np.array(b)
a + b
백터의 차원은 np.shape를 이용하여 알아낼 수 있다.