기초 수학 · 2
행렬과 행렬곱
행렬은 벡터에 작용하는 수의 격자다 — 늘이고, 회전하고, 성분을 섞는다. 행렬곱은 그 작용을 적용하고 합성하는 방법이다.
행렬 × 벡터
M.mv(v) 는 벡터를 새 벡터로 보낸다 — 출력의 각 성분은 M 의 한 행과 v 의 내적이다.
행렬 × 행렬은 합성
A.matmul(B) 는 B 를 먼저, 그다음 A 를 하는 하나의 사상이다. 순서가 중요하다 — A@B 와 B@A 는 보통 다르다.
모양이 맞아야 한다
[m, k] @ [k, n] → [m, n]. 안쪽 크기가 맞아야 하고, 바깥 둘이 결과의 모양이 된다.
움직임으로서의 행렬: 회전은 원을 그린다
회전 행렬은 벡터를 일정 각도로 돌린다. 반복 적용하면 벡터가 원을 따라 걷는다 — 여기서는 그 x 좌표를 그렸고, 깔끔한 코사인이다.
직접: 순서 바로잡기
벡터에 B 를 먼저, A 를 그다음 적용하는 것은 먼저 A@B 를 곱하는 것과 같다. 아래 블록은 순서를 틀리게 합성했다 — 합성한 사상이 단계별 결과와 맞도록 고쳐라.
기억할 것
- 행렬은 벡터를 벡터로 보낸다;
M.mv(v)의 각 성분은M의 한 행과v의 내적이다. - 행렬곱은 사상을 합성한다:
A.matmul(B)는B먼저A나중 — 순서가 중요. - 모양이 맞아야 한다:
[m, k] @ [k, n] → [m, n]. - borch 에서는
mv·matmul(또는mm).
위 블록이 에러를 내면, 그것도 알아둘 값이다. 이 페이지의 모든 예제는 테스트가 도는 그 라이브러리를 상대로 돈다 — 스크린샷이 아니다. 되돌리려면 Reset 을 누른다.