알티수학 쌤 수학 노트 센텀 알티수학 학원 · 부산 센텀 · 해운대

꼬인 위치에 있는 두 직선의 최단 거리 계산법 세 가지 (feat. 스칼라 삼중적, 편미분)

공간에서 꼬인 위치(skew lines)에 있는 두 직선 사이의 최단 거리를 구해보겠습니다. 외적과 정사영을 쓰는 방법, 매개변수와 수직조건을 쓰는 방법, 그리고 거리 함수를 최소화하는 방법을 써 보겠습니다.

글 - 알티수학 쌤@센텀 알티수학 학원

기하에서 공간에서 꼬인 위치에 있는 두 직선 사이의 거리를 묻는 문제가 종종 나옵니다.

오늘은 아래 예제를 세 가지 방법으로 풀어보겠습니다.

꼬인 위치에 있는 두 직선의 최단 거리 계산법 세 가지 (feat. 스칼라 삼중적, 편미분) — 그림 1

1. 기본 정보 확인

직선의 표준형에서 지나는 점과 방향벡터를 뽑아보면,

직선 L₁ : x=y=z 는 (x-0)/1 = (y-0)/1 = (z-0)/1 이므로

지나는 점 P₁(0, 0, 0)

방향벡터 d₁=(1, 1, 1)

직선 L₂ : (x-6)/1 = y/2 = z/3 이므로

지나는 점 P₂(6, 0, 0)

방향벡터 d₂=(1, 2, 3)

가 됩니다.

두 방향벡터 (1,1,1), (1,2,3) 은 서로 실수배가 아니므로, 두 직선은 평행하지 않습니다. 따라서 두 직선은 꼬인 위치이거나 한 점에서 만나거나 둘 중 하나겠죠. 어느 쪽인지는 거리를 구해보면 알게됩니다.

2. 방법 1 - 외적+정사영

이 방법은 두 꼬인 직선을 각각 담고 있는 평행한 두 평면을 찾는데서 출발합니다. 그런데 "두 꼬인 직선에서 평행한 두 평면이 왜 나오는지" 가 처음에는 잘 와닿지 않을 수 있습니다. 그렇다면, 아래 순서로 생각해 보죠.

(1) 꼬인 위치의 두 직선을 적당히 평행이동해서 한 점에서 만나도록 합니다. 두 직선이 한 점에서 만나면, 이 두 직선은 하나의 평면을 결정합니다.

(2) 그 평면의 법선벡터는 두 직선의 방향벡터에 모두 수직이므로, 두 방향벡터의 외적으로 구할 수 있습니다.

(3) 이제 한 점에서 만나게 했던 두 직선을 평행이동으로 원래 자리로 되돌립니다. 이 때, 각 직선은 앞의 (2)에서 구한 평면을 하나씩 들고 제자리로 돌아갑니다.

(4) 그러면 방향이 같은(즉 법선벡터가 같은) 평행한 두 평면이 생깁니다. 각 평면은 두 직선을 하나씩 담고 있죠. 두 직선 사이의 최단 거리는 곧 이 두 평행한 평면 사이의 거리입니다.

(5) 이때, 한 평면을 다른 평면에 정사영시켰을때, 정사영에서 나타나는 교점이 최단거리가 되는 그 자리 입니다.

꼬인 위치에 있는 두 직선의 최단 거리 계산법 세 가지 (feat. 스칼라 삼중적, 편미분) — 그림 2

이제 계산을 해보겠습니다. 먼저 두 평면에 동시에 수직인 공통 법선벡터 n 은 외적으로 구합니다.

n=d1×d2\vec{n}=\vec{d_1}\times \vec{d_2}

그리고 각 직선의 위의 임의의 점 P₁ 과 P₂ 를 잇는 벡터를 법선벡터 n 위로 정사영시킨 길이가 바로 최단 거리입니다.

꼬인 위치에 있는 두 직선의 최단 거리 계산법 세 가지 (feat. 스칼라 삼중적, 편미분) — 그림 3

벡터 내적의 정의로부터 아래와 같이 계산되죠.

d=P1P2(d1×d2)d1×d2\textcolor{#ff0010}{d=\frac{|\vec{P_1P_2}\cdot (\vec{d_1}\times \vec{d_2})|}{|\vec{d_1}\times \vec{d_2}|}}

간단합니다. 이제, 이 공식으로 예제를 풀어보겠습니다.

① 법선벡터 n 계산

n=d1×d2=ijk111123\vec{n}=\vec{d_1}\times \vec{d_2}=\begin{vmatrix}\mathbf{i}&\mathbf{j}&\mathbf{k}\\1&1&1\\1&2&3\end{vmatrix}

각 성분을 계산하면

n=(1312, (1311), 1211)=(1, 2, 1)\vec{n}=(1\cdot 3-1\cdot 2,\ -(1\cdot 3-1\cdot 1),\ 1\cdot 2-1\cdot 1)=(1,\ -2,\ 1)

이므로, 크기는 |n|=√(1+4+1)=√6 입니다.

② 연결벡터 P₁P₂ 계산

P1P2=(60, 00, 00)=(6, 0, 0)\vec{P_1P_2}=(6-0,\ 0-0,\ 0-0)=(6,\ 0,\ 0)

③ 공식 대입

분자는

P1P2n=61+0(2)+01=6|\vec{P_1P_2}\cdot \vec{n}|=|6\cdot 1+0\cdot (-2)+0\cdot 1|=6

분모는 |n|=√6 이므로,

d=66=6\textcolor{#ff0010}{d=\frac{6}{\sqrt{6}}=\sqrt{6}}

거리가 0 이 아니므로, 두 직선은 꼬인 위치임이 확인됩니다.

(만약 거리가 0 이면, 두 직선이 한 점에서 만난다는 뜻입니다.)

3. 방법 2 - 매개변수와 수직조건 (대수 풀이)

이 방법은 외적을 모르더라도 풀 수 있는 방법입니다. 공간좌표와 공간벡터의 내적은 2022 개정 기하 교과 안에 있으므로, 이 풀이는 교과 범위 안이라서 만약 시험에 나오면 이 방법을 쓰는게 맞습니다.

각 직선 위의 움직이는 점을 매개변수로 놓습니다.

Q1(t)=(t, t, t),Q2(s)=(s+6, 2s, 3s)Q_1(t)=(t,\ t,\ t),\quad Q_2(s)=(s+6,\ 2s,\ 3s)

두 직선 사이의 거리가 최소가 되는 순간, 두 점을 잇는 벡터는 두 직선 모두와 수직입니다.

두 점을 잇는 벡터를 v 라 하면,

v=Q2(s)Q1(t)=(st+6, 2st, 3st)\vec{v}=Q_2(s)-Q_1(t)=(s-t+6,\ 2s-t,\ 3s-t)

이 v 가 d₁=(1,1,1) 및 d₂=(1,2,3) 과 각각 수직이므로 내적이 0 입니다.

조건 1: v·d₁=0

(st+6)+(2st)+(3st)=6s3t+6=0(s-t+6)+(2s-t)+(3s-t)=6s-3t+6=0

양변을 3으로 나누면

2st+2=0(식 1)2s-t+2=0\quad \cdots (\text{식 }1)

조건 2: v·d₂=0

(st+6)+2(2st)+3(3st)=14s6t+6=0(s-t+6)+2(2s-t)+3(3s-t)=14s-6t+6=0

양변을 2로 나누면

7s3t+3=0(식 2)7s-3t+3=0\quad \cdots (\text{식 }2)

이제 연립합니다. (식 1)에 ×3 하면 6s-3t+6=0, 여기서 (식 2)를 빼면

(6s3t+6)(7s3t+3)=s+3=0  s=3(6s-3t+6)-(7s-3t+3)=-s+3=0\ \Rightarrow \ s=3

s=3 을 (식 1)에 넣으면 6-t+2=0, 즉 t=8 입니다. 즉, 매개변수 해가 t=8, s=3 으로 유일하게 결정됩니다. 이걸 v 에 대입하면

v=(38+6, 68, 98)=(1, 2, 1)\vec{v}=(3-8+6,\ 6-8,\ 9-8)=(1,\ -2,\ 1)
d=v=1+4+1=6\textcolor{#ff0010}{d=|\vec{v}|=\sqrt{1+4+1}=\sqrt{6}}

방법 1과 같은 답이 나옵니다.

4. 대수 풀이의 보너스 - 수선의 발 좌표

방법 2는 거리만 주는 게 아니라, 최단거리를 잇는 두 점의 좌표까지 덤으로 줍니다.

t=8 을 Q₁ 에 넣으면

Q1(8)=(8, 8, 8)Q_1(8)=(8,\ 8,\ 8)

s=3 을 Q₂ 에 넣으면

Q2(3)=(9, 6, 9)Q_2(3)=(9,\ 6,\ 9)

이 두 점을 잇는 선분이 곧 공통수선이고, 그 길이가 √6 입니다. 두 점 사이의 거리를 직접 검산해보면 (9-8)²+(6-8)²+(9-8)²=1+4+1=6, 즉 √6 으로 맞습니다.

5. 방법 3 - 거리를 함수로 보고 최소화 (편미분)

방법 2에서 "거리가 최소가 되는 순간, 연결벡터가 두 직선과 수직이다" 라고 했는데, 이게 왜 그런지 의심할 학생이 있을수 있을것 같아서, 이번엔 수직조건을 쓰지 않고 계산해보겠습니다.

일단, 두 점 사이 거리의 제곱을 함수로 놓습니다. (제곱으로 두면 루트가 없어져서 계산이 깔끔하고, 거리가 최소일 때 거리의 제곱도 최소이므로 결과는 같습니다.)

D(t,s)=v2=(st+6)2+(2st)2+(3st)2D(t,s)=|\vec{v}|^2=(s-t+6)^2+(2s-t)^2+(3s-t)^2

전개해서 정리하면

D(t,s)=3t212st12t+14s2+12s+36D(t,s)=3t^2-12st-12t+14s^2+12s+36

이제 t 와 s 각각에 대해 편미분해서 0 으로 놓습니다.

t 에 대한 편미분 (s 는 상수 취급) :

Dt=6t12s12=0  t2s2=0\frac{\partial D}{\partial t}=6t-12s-12=0\ \Rightarrow \ t-2s-2=0

s 에 대한 편미분 (t 는 상수 취급) :

Ds=28s12t+12=0  7s3t+3=0\frac{\partial D}{\partial s}=28s-12t+12=0\ \Rightarrow \ 7s-3t+3=0

이 두 식을 연립하면 t=8, s=3 이 나오고, 대입하면 D=6, 즉

d=D=6\textcolor{#ff0010}{d=\sqrt{D}=\sqrt{6}}

으로 앞의 두 방법과 결과가 똑같습니다.

참고로, 위에서 구한 두 편미분 식을 자세히 보면, 방법 2의 수직조건과 같은 식입니다.

∂D/∂t = 0 을 정리한 식은 곧 v·d₁=0 (식 1)

∂D/∂s = 0 을 정리한 식은 곧 v·d₂=0 (식 2)

이건 우연히 이렇게 나온것은 아니구요, D=|v|² 를 t 로 편미분하면 v·(∂v/∂t) 꼴이 나오는데, ∂v/∂t 가 바로 -d₁ 이거든요. 그래서 ∂D/∂t=0 은 v·d₁=0 과 같아집니다. s 쪽도 마찬가지로 v·d₂=0 이 되죠. 즉, "거리가 최소" → "연결벡터가 두 방향벡터와 수직" 이라는 방법 2의 가정이, 함수를 최소화하는것과 같은 작용이었던것으로 확인이 되었습니다.

참고로, 편미분을 0 으로 놓아 찾은 점은 엄밀히는 임계점일 뿐이라서, 이게 최소인지 최대인지 안장점인지는 따로 확인해야 합니다. 2변수 문제에서는 헤시안(Hessian) 으로 판정하는데, 여기서는 D_tt=6>0 이고 헤시안 행렬식 D_tt·D_ss−(D_ts)²=6·28−(−12)²=24>0 이므로 이 점이 극소(최소) 임이 보장됩니다. (사실 D 가 t, s 에 대한 아래로 볼록한 이차식이라, 헤시안을 따지지 않아도 최소임은 직관적으로 쉽게 와닫긴 하죠.)

편미분을 피하고 싶다면? 한 문자를 고정하고 일변수 이차함수로 두 번 처리하면 교과 범위 안에서 해결됩니다. 먼저 s 를 상수로 보고 D 를 t 에 대한 이차함수로 정리해서 완전제곱으로 쓰면,

D=3{t(2s+2)}2+2s212s+24D=3\left\{t-(2s+2)\right\}^2+2s^2-12s+24

가 되므로, t=2s+2 일 때 최소이고, 그때 남는 부분은

2s212s+24=2(s3)2+62s^2-12s+24=2(s-3)^2+6

이므로 s=3 에서 최소 6 입니다. 다시 t=2(3)+2=8 이고, 최솟값 D=6, d=√6 으로 동일합니다.

6. 참고 - 외적 공식의 분자는 사실은 '부피'

여기서부터는 살짝 교과 밖 이야기입니다. 외적과, 곧 설명할 스칼라 삼중적은 현재 고등학교 교과서에 들어있지는 않습니다만, 과고생들이 가끔 물어봐서 여기에 적어둡니다.

방법 1 공식의 분자는

P1P2(d1×d2)\vec{P_1P_2}\cdot (\vec{d_1}\times \vec{d_2})

였는데 이것은 스칼라 삼중적(scalar triple product) 이라 부르는 연산입니다. 이 값의 절댓값은 세 벡터를 모서리로 하는 평행육면체의 부피와 같습니다.

꼬인 위치에 있는 두 직선의 최단 거리 계산법 세 가지 (feat. 스칼라 삼중적, 편미분) — 그림 4

외적 |d₁×d₂| 는 두 방향벡터가 만드는 평행사변형(밑면)의 넓이 S 입니다. (위 그림에서는 각각 |b×c| 에 해당합니다.)

벡터 d₁×d₂ 는 그 밑면에 수직이므로, 여기에 P₁P₂ 를 내적한다는 건 P₁P₂ 를 수직 방향으로 정사영시켜 높이 h를 뽑는 것입니다.

따라서 (부피) = (밑넓이) × (높이) 구조가 됩니다.

이 관점에서 거리 공식을 다시 보면, 사실 부피 공식을 거꾸로 쓴 것에 불과하죠.

d=P1P2(d1×d2)d1×d2=평행육면체의 부피 V밑면 평행사변형의 넓이 Sd=\frac{|\, \vec{P_1P_2}\cdot (\vec{d_1}\times \vec{d_2})\, |}{|\vec{d_1}\times \vec{d_2}|}=\frac{\text{평행육면체의 부피 }V}{\text{밑면 평행사변형의 넓이 }S}

즉, 높이 = 부피 ÷ 밑넓이 라는 한 줄로 공식 전체가 설명됩니다. 우리가 구하려는 최단 거리가 곧 이 가상의 평행육면체의 높이인 셈이죠.

7. 참고 예제 - 거리가 0 이라면?

끝으로, 살짝 함정 같은 예제 하나를 보겠습니다.

L1: x+13=y+12=z+22L_1:\ \frac{x+1}{3}=\frac{y+1}{2}=\frac{z+2}{2}
L2: x6=y+5=z+6L_2:\ x-6=y+5=z+6

라 할 때, 두 직선의 거리를 구해볼까요?

필요한 정보를 빼보면 P₁(-1, -1, -2), d₁=(3, 2, 2), P₂(6, -5, -6), d₂=(1, 1, 1) 입니다. 방향벡터가 평행하지 않으니, 겉보기엔 꼭 꼬인 위치처럼 보이죠.

방법 1을 써보겠습니다. 외적은

n=d1×d2=(2121, (31˙21), 3121)=(0, 1, 1)\vec{n}=\vec{d_1}\times \vec{d_2}=(2\cdot 1-2\cdot 1,\ -(3\dot{1}-2\cdot 1),\ 3\cdot 1-2\cdot 1)=(0,\ -1,\ 1)

이고, 연결벡터는 P₁P₂=(7, -4, -4) 입니다. 분자를 계산하면

P1P2n=70+(4)(1)+(4)(1)=0+44=0|\vec{P_1P_2}\cdot \vec{n}|=|7\cdot 0+(-4)(-1)+(-4)(1)|=|0+4-4|=0

분자가 0 이므로

d=02=0d=\frac{0}{\sqrt{2}}=0

거리가 0 입니다. 즉, 이 두 직선은 꼬인 위치가 아니라 공간의 한 점에서 만나는 겁니다.

방법 2를 써서 교점 좌표까지 구해볼까요? 매개변수로 놓고 수직조건으로 연립하면 t=11, s=26 이 나오고, 이걸 대입하면 두 점이 똑같이 (32, 21, 20) 으로 일치합니다. 두 점이 일치한다는 것 자체가 교점이라는 뜻이죠.

그래서 "거리를 구하라"는 문제에서 답이 깔끔하게 0 이 나오면, '아, 이건 사실 만나는 직선이구나' 라고 생각하면 됩니다.

꼬인 위치에 있는 두 직선의 최단 거리 계산법 세 가지 (feat. 스칼라 삼중적, 편미분) — 그림 5

#꼬인위치 #공간벡터 #최단거리 #외적 #스칼라삼중적 #정사영 #편미분 #공간도형 #기하 #2022개정 #직선의방정식 #과학고수학 #영재고수학