MCP로 연결 →

계산 입력

Leave the z components blank for 2D vectors. This computes the projection of a onto b.

공식

광고

결과

a를 b에 정사영한 결과
(3, 0, 0)
proj_b(a)
스칼라 계수 (a·b)/(b·b) 3
내적 a·b 3
내적 b·b 1
정사영의 크기 3

벡터 정사영이란?

벡터 ab에 정사영(projection)한다는 것은, 벡터 b가 정의하는 직선 위에 벡터 a가 드리우는 "그림자"를 구하는 것입니다. 그 결과 역시 하나의 벡터이며, b와 같은 방향(또는 반대 방향)을 가리킵니다. 정사영은 "a 중에서 b의 방향으로 놓인 성분이 얼마나 되는가?"라는 질문에 답해 줍니다. 이는 물리학(힘의 분해), 컴퓨터 그래픽스, 머신러닝, 선형대수에서 두루 쓰이는 기본 연산입니다.

벡터 a, 벡터 b, 그리고 수직선을 내린 b에 대한 a의 사영을 보여주는 도식
b에 대한 a의 사영은 b 방향을 따라 생긴 a의 그림자입니다.

계산기 사용 방법

벡터 a와 벡터 b의 각 성분을 입력하세요. 2차원 벡터라면 z 칸을 비워 두면 됩니다(자동으로 0으로 처리됩니다). 계산 버튼을 누르면 정사영 벡터 전체, 스칼라 계수, 두 가지 내적값, 그리고 정사영의 크기(길이)를 한 번에 확인할 수 있습니다.

공식 풀이

정사영은 다음과 같이 계산됩니다.

$$\operatorname{proj}_{\vec{b}}\vec{a} = \frac{\vec{a}\cdot\vec{b}}{\vec{b}\cdot\vec{b}}\,\vec{b}$$

먼저 내적 \(\vec{a}\cdot\vec{b} = \text{a}_x\text{b}_x + \text{a}_y\text{b}_y + \text{a}_z\text{b}_z\) 를 구합니다. 그다음 이 값을 \(\vec{b}\cdot\vec{b}\)(즉 b의 길이의 제곱)로 나누어 스칼라 계수를 얻습니다. 마지막으로 그 스칼라를 b의 각 성분에 곱해 크기를 조정합니다. 단, b는 영벡터가 아니어야 합니다. b가 영벡터라면 정사영이 정의되지 않으며, 이 경우 결과는 0으로 반환됩니다.

광고
b 방향의 스칼라 길이에 b의 방향을 곱하는, 사영 공식의 기하학적 분해도
스칼라 계수 (a·b)/(b·b)가 벡터 b를 스케일링하여 사영 벡터를 만듭니다.

예제 풀이

a = (4, 1), b = (2, 3)이라고 합시다. 그러면 $$\vec{a}\cdot\vec{b} = 4\cdot 2 + 1\cdot 3 = 11,\quad \vec{b}\cdot\vec{b} = 2^2 + 3^2 = 13$$ 입니다. 스칼라 계수는 \(\frac{11}{13} \approx 0.8462\) 입니다. 정사영 벡터는 $$0.8462 \cdot (2,\, 3) = (1.6923,\, 2.5385)$$ 이고, 그 크기는 $$\sqrt{1.6923^2 + 2.5385^2} \approx 3.0509$$ 입니다.

자주 묻는 질문

스칼라 정사영과 벡터 정사영의 차이는 무엇인가요? 스칼라 정사영은 부호가 있는 길이 \(\frac{\vec{a}\cdot\vec{b}}{|\vec{b}|}\) 로, 하나의 숫자입니다. 반면 여기서 계산하는 벡터 정사영은 그 길이에 b의 단위벡터를 곱해 실제 벡터를 만들어 냅니다.

정사영이 b의 반대 방향을 가리킬 수도 있나요? 네, 가능합니다. a·b가 음수이면 스칼라 계수도 음수가 되어, 정사영 벡터가 b와 반대 방향을 가리키게 됩니다.

3차원에서도 사용할 수 있나요? 물론입니다. 두 벡터의 z 성분만 입력하면 됩니다. 2차원 문제라면 z 칸을 비워 두세요.

최종 업데이트: