행렬-벡터 곱이란?
행렬-벡터 곱은 m×n 행렬 A와 n차원 열벡터 x를 받아 새로운 m차원 열벡터 c = A·x를 만들어내는 연산입니다. 선형변환, 연립방정식, 컴퓨터 그래픽스, 머신러닝의 바탕을 이루는 선형대수에서 가장 기본적인 연산 중 하나입니다. 이 계산기는 실수를 다루며 어디서나 동일하게 적용됩니다 — 지역이나 국가별 규칙이 없는 순수 수학이기 때문입니다.
계산기 사용법
먼저 행렬 A의 행 개수(i)와 열 개수(j)를 입력하세요. 격자 입력란에 행렬 성분을 적되, 한 줄에 한 행씩 입력하고 각 값은 공백이나 쉼표로 구분합니다. 벡터 x는 토큰 하나당 값 하나씩 입력하며, 그 길이는 반드시 행렬 A의 열 개수와 같아야 합니다. 빈 칸은 0으로 처리됩니다. 계산 버튼을 누르면 결과 열벡터가 표시됩니다.
공식 풀이
출력 인덱스 i가 1부터 m(행의 개수)까지 변할 때, 각 결과 성분은 행 i의 행렬 성분과 벡터 성분을 곱해 더한 가중합으로 구해집니다.
$$c_i = a_{i1}\cdot x_1 + a_{i2}\cdot x_2 + \dots + a_{in}\cdot x_n$$
이는 곧 A의 i번째 행과 x의 내적(dot product)과 같습니다. 곱셈은 A의 열 개수가 x의 길이(열 = n)와 일치할 때에만 정의됩니다. 그러면 출력 벡터의 길이는 A의 행 개수인 m이 됩니다.
예제로 풀어보기
행렬 A를 행이 [1 2 3], [4 5 6], [7 8 9]인 3×3 행렬이라 하고, x = (1, 0, -1)이라고 합시다. 그러면 $$c_1 = 1\cdot 1 + 2\cdot 0 + 3\cdot(-1) = -2,$$ $$c_2 = 4\cdot 1 + 5\cdot 0 + 6\cdot(-1) = -2,$$ $$c_3 = 7\cdot 1 + 8\cdot 0 + 9\cdot(-1) = -2$$가 됩니다. 결과는 열벡터 c = (-2, -2, -2)입니다.
자주 묻는 질문
차원이 맞지 않으면 어떻게 되나요? A의 열 개수가 x의 길이와 같지 않으면 곱은 정의되지 않으며, 계산기는 숫자 대신 안내 메시지를 표시합니다.
A가 정사각형이 아니어도 되나요? 네, 가능합니다. 2×3 행렬과 3차원 벡터를 곱하면 2차원 벡터가 나옵니다. 출력 벡터의 길이는 항상 A의 행 개수와 같습니다.
1×n 행렬을 곱하면 어떤 결과가 나오나요? 1×n 행렬에 n차원 벡터를 곱하면 성분이 하나인 결과가 나옵니다 — 사실상 두 벡터의 내적(inner product)이며, 여기서는 길이 1인 벡터로 표시됩니다.