"스칼라곱"의 두 판 사이의 차이

14,672 바이트 추가됨 ,  2년 전
편집 요약 없음
태그: m 모바일 웹
{{두 다른 뜻|유클리드 공간 위의 내적|벡터 공간 위의 내적|내적 공간|벡터와 스칼라의 곱셈|스칼라 곱셈}}
{{다른 뜻 설명|[[내적공간]]의 내적 연산자를 '스칼라곱'으로 부르기도 한다.}}
 
[[수학]]에서, '''스칼라곱'''({{llang|en|scalar product}}) 또는 '''점곱'''({{llang|en|dot product}})은 [[유클리드 공간]]의 벡터로부터 [[벡터 (선형대수학)|벡터실수]] [[스칼라]]를 계산하는얻는 연산이다. 스칼라곱을스칼라곱이 사용하는 모든 [[유클리드 공간]]은공간의 [[내적공간내적]]이므로을 이루므로, 스칼라곱을이를 단순히 '''내적'''(內積)이라이라고 부르기도 한다. 스칼라곱의 개념의 [[물리학]] 배경은 주어진 [[힘 (물리학)|힘]]이 주어진 [[변위]]의 물체에 가한 [[일 (물리학)|일]]을 구하는 문제이다.
 
== 정의 ==
[[차원]]이 <math>n</math>인 [[유클리드 공간]] <math>\mathbb R^n</math>의 두 벡터 <math>\mathbf a,\mathbf b\in\mathbb R^n</math>의 '''스칼라곱''' <math>\mathbf a\cdot\mathbf b\in\mathbb R</math>은 두 가지로 정의할 수 있으며, 이 두 정의는 서로 동치이다. 스칼라곱의 기호에는 [[가운뎃점]] '⋅'을 사용하며, 수의 곱셈 기호와는 달리 생략할 수 없다.
두 벡터
<math>\mathbf a = [a_1, a_2, \cdots , a_n], \mathbf b = [b_1, b_2, \cdots , b_n]</math>
의 스칼라곱은 다음과 같다:
 
=== 대수적 정의 ===
:<math>\mathbf{a}\cdot \mathbf{b} = a_1b_1 + a_2b_2 + \cdots + a_nb_n = \sum_{i=1}^n a_ib_i</math>
두 벡터의 좌표가 각각 <math>\mathbf a=(a_1,a_2,\dots,a_n)</math>와 <math>\mathbf b=(b_1,b_2,\dots,b_n)</math>라면, 이 둘의 스칼라곱은 같은 위치의 성분을 곱한 뒤 모두 합하여 얻는 값이다.
:<math>\mathbf a\cdot\mathbf b=a_1b_1+a_2b_2+\cdots+a_nb_n</math>
예를 들어, 두 3차원 벡터 <math>(1,3,-2),(4,2,1)\in\mathbb R^3</math>의 스칼라곱은 다음과 같다.
:<math>(1,3,-2)\cdot(4,2,1)=1\times4+3\times2+(-2)\times1=8</math>
이 경우 스칼라곱의 정의는 벡터의 좌표에 의존하여 정의하지만, <math>\mathbb R^n</math>에 기존의 좌표계가 아닌 새로운 좌표계를 주더라도, 이 좌표계가 [[직교 좌표계|정규 직교 좌표계]]라면, 스칼라곱을 나타내는 공식은 바뀌지 않는다. 즉, 임의의 정규 직교 좌표계 아래 스칼라곱은 위치가 같은 두 좌표의 곱을 합한 것과 같다.
 
유클리드 공간의 벡터는 종종 [[열벡터]]로 간주되며, 이 경우 두 벡터 <math>\mathbf a,\mathbf b</math>의 스칼라곱은 다음과 같이 나타낼 수 있다.
== 예 ==
:<math>\mathbf a\cdot\mathbf b=\mathbf a^\operatorname T\mathbf b</math>
예를 들어, 두 벡터 [1, 3, −2], [4, −2, −1]의 스칼라곱은
여기서 우변의 <math>\mathbf a^\operatorname T</math>는 <math>\mathbf a</math>의 [[전치 행렬]]이며, 곱셈 기호가 생략된 곱셈은 [[행렬 곱셈]]이다.
:[1, 3, −2]·[4, −2, −1] = 1×4 + 3×(−2) + (−2)×(−1) = 0
 
이 된다.
이 경우 앞선 예시에서의 내적은 다음과 같이 나타낼 수 있다.
:<math>\begin{pmatrix}1&3&-2\end{pmatrix}\begin{pmatrix}4\\2\\1\end{pmatrix}=1\times4+3\times2+(-2)\times1=8</math>
 
=== 기하학적 정의 ===
스칼라곱은 기하학적 성질인 '[[길이]]'와 '[[각도]]'를 통해 다음과 같이 정의할 수 있다.
:<math>\mathbf a\cdot\mathbf b=\begin{cases}\Vert\mathbf a\Vert\Vert\mathbf b\Vert\cos\measuredangle(\mathbf a,\mathbf b)&\mathbf a\ne\mathbf0\land\mathbf b\ne\mathbf0\\0&\mathbf a=\mathbf0\lor\mathbf b=\mathbf0\end{cases}</math>
여기서
* <math>\Vert\mathbf a\Vert</math>는 <math>|\mathbf a|</math>로 표기하기도 하며, 벡터 <math>\mathbf a</math>의 [[노름]]을 뜻한다. 이는 <math>\mathbf a</math>의 길이 또는 크기를 나타낸다. <math>\Vert\mathbf b\Vert</math> 역시 마찬가지이다.
* <math>\measuredangle(\mathbf a,\mathbf b)</math>는 두 벡터 <math>\mathbf a,\mathbf b</math> 사이의 각도이다. 이는 두 벡터가 모두 0이 아닐 때에만 정의되며, 보통 <math>[0,\pi]</math>에서 값을 취한다.
* <math>\cos\measuredangle(\mathbf a,\mathbf b)</math>는 [[코사인]]이며, [[직각 삼각형]]의 이웃변과 빗변의 길이의 비로 정의하거나, [[테일러 급수]] 전개식을 통해 정의할 수 있다.
예를 들어, 만약 두 벡터의 길이가 모두 2이며, 둘 사이의 각도의 코사인 값이 1/2이라면, 이 두 벡터의 스칼라곱은 2 × 2 × 1/2 = 2이다.
 
이 정의에서 스칼라곱은 두 벡터의 길이와 위치 관계에만 의존하므로, 스칼라곱이 좌표계와 무관함이 더욱 뚜렷하다. 반대로 두 벡터를 똑같은 [[등거리 변환]]에 의하여 변환시켰을 때, 두 벡터의 스칼라곱은 변하지 않는다는 점 역시 정의로부터 자명하다.
 
몇 가지 특수한 각도의 경우는 다음과 같다.
* 만약 <math>\measuredangle(\mathbf a,\mathbf b)=0</math>이라면, (즉, 두 벡터의 방향이 같다면,) <math>\cos\measuredangle(\mathbf a,\mathbf b)=1</math>이므로, 내적은 단순히 두 벡터의 길이의 곱이다.
*:<math>\mathbf a\cdot\mathbf b=\Vert\mathbf a\Vert\Vert\mathbf b\Vert</math>
* 만약 <math>\measuredangle(\mathbf a,\mathbf b)=90^\circ=\pi/2</math>라면, (즉, 두 벡터가 서로 [[수직]]이라면,) <math>\cos\measuredangle(\mathbf a,\mathbf b)=0</math>이므로, 내적은 0이다.
*:<math>\mathbf a\cdot\mathbf b=0</math>
* 만약 <math>\measuredangle(\mathbf a,\mathbf b)=180^\circ=\pi</math>라면, (즉 두 벡터의 방향이 서로 반대라면,) <math>\cos\measuredangle(\mathbf a,\mathbf b)=-1</math>이므로, <math>\mathbf a</math>와 <math>\mathbf b</math>의 내적은 다음과 같다.
*:<math>\mathbf a\cdot\mathbf b=-\Vert\mathbf a\Vert\Vert\mathbf b\Vert</math>
 
또한, 이 정의로부터 두 벡터 사이의 각도를 구하는 다음과 같은 공식을 얻을 수 있다.
:<math>\cos\measuredangle(\mathbf a,\mathbf b)=\frac{\mathbf a\cdot\mathbf b}{\Vert\mathbf a\Vert\Vert\mathbf b\Vert}\qquad(\mathbf a\ne\mathbf0,\;\mathbf b\ne\mathbf 0)</math>
 
== 성질 ==
임의의 벡터 <math>\mathbf a,\mathbf b,\mathbf c\in\mathbb R^n</math> 및 스칼라 <math>k\in\mathbb R</math>에 대하여, 다음 성질들이 성립한다.<ref>{{서적 인용|성=Lay|이름=David C.|제목=Linear Algebra and Its Applications|판=4|출판사=Pearson|날짜=2015-9-1|isbn=9781292092232}}</ref>
또한
* [[교환 법칙]]
:<math>\mathbf a \cdot \mathbf b = |\mathbf a| \cdot |\mathbf b| \cos \theta</math>
*:<math>\mathbf a\cdot\mathbf b=\mathbf b\cdot\mathbf a</math>
로도 표현하는데 이는 벡터 <math>\mathbf a</math>에 벡터 <math>\mathbf b</math>를 투영한 형태, 즉 벡터 <math>\mathbf b</math>를 벡터 <math>\mathbf a</math>와 동일한 방향의 성분으로 변환하여 그 스칼라값을 벡터 <math>\mathbf a</math>의 스칼라 값에 곱하는 것이라 할 수 있다.
* [[왼쪽 분배 법칙]]
이때 벡터 <math>\mathbf a</math>와 벡터 <math>\mathbf b</math>의 사이각인 <math>\theta</math>가 90˚ 즉 직교하는 경우는 결과가 "0"이 되며 0˚인 경우 즉 같은 방향인 경우에 최댓값이 된다. 물론 결과값은 벡터가 아닌 스칼라 값이다.
*:<math>(\mathbf a+\mathbf b)\cdot\mathbf c=\mathbf a\cdot\mathbf c+\mathbf b\cdot\mathbf c</math>
* [[오른쪽 분배 법칙]]
*:<math>\mathbf a\cdot(\mathbf b+\mathbf c)=\mathbf a\cdot\mathbf b+\mathbf a\cdot\mathbf c</math>
* [[스칼라 곱셈]]의 보존
*:<math>(k\mathbf a)\cdot\mathbf b=\mathbf a\cdot(k\mathbf b)=k\mathbf a\cdot\mathbf b</math>
* 위 네 가지 성질에 따라, 스칼라곱은 [[대칭 쌍선형 형식]]이다.
* 자기 자신과의 스칼라곱은 음이 아닌 실수이다.
*:<math>\mathbf a\cdot\mathbf a=\Vert\mathbf a\Vert^2\ge0</math>
* 영벡터와의 스칼라곱은 0이다.
*:<math>\mathbf0\cdot\mathbf a=\mathbf a\cdot\mathbf0=0</math>
* 자기 자신과의 스칼라곱이 0인 벡터는 영벡터뿐이다.
*:<math>\mathbf a\cdot\mathbf a=0\iff\mathbf a=\mathbf0</math>
* 위 세 가지 성질에 따라, 스칼라곱은 [[양의 정부호 형식]]이다.
* <math>\mathbf a\cdot\mathbf b=0</math>일 필요충분조건은 <math>\mathbf a\perp\mathbf b</math>이다.
* <math>\mathbf a\cdot\mathbf b>0</math>일 필요충분조건은 <math>\measuredangle(\mathbf a,\mathbf b)<90^\circ</math>이다.
* <math>\mathbf a\cdot\mathbf b<0</math>일 필요충분조건은 <math>\measuredangle(\mathbf a,\mathbf b)>90^\circ</math>이다.
반면 스칼라곱이 만족시키지 않는 성질에는 다음이 있다.
* [[결합 법칙]]은 (1차원 유클리드 공간 <math>\mathbb R^1=\mathbb R</math>을 제외하면) 성립하지 않는다. 이는 두 벡터의 스칼라곱이 벡터가 아닌 스칼라이므로, <math>(\mathbf a\cdot\mathbf b)\cdot\mathbf c</math>나 <math>\mathbf a\cdot(\mathbf b\cdot\mathbf c)</math>가 무의미한 수식이기 때문이다.
* [[소거 법칙]]은 (1차원 유클리드 공간 <math>\mathbb R^1=\mathbb R</math>을 제외하면) 성립하지 않는다. 예를 들어, <math>\mathbb R^2</math>에서, <math>\mathbf a=(1,0)</math>, <math>\mathbf b=(1,1)</math>, <math>\mathbf c=(1,-1)</math>이라면, <math>\mathbf a\cdot\mathbf b=\mathbf a\cdot\mathbf c=1</math>, <math>\mathbf a\ne\mathbf0</math>이지만, <math>\mathbf b\ne\mathbf c</math>이다. 사실, <math>\mathbf a\cdot\mathbf b=\mathbf a\cdot\mathbf c</math>일 필요충분조건은 <math>\mathbf a\perp(\mathbf b-\mathbf c)</math>이다.
 
== 응용 ==
=== 스칼라 사영 ===
위와 같은 내적의 성질을 응용하는 기하학적 계산을 대수학적인 계산으로 변환 처리할 경우에 이용된다. 특히 프로그래밍에서 스칼라곱은 두 벡터 사이의 각을 구하는 데 빈번히 사용된다.
벡터 <math>\mathbf a</math>의 벡터 <math>\mathbf b</math> 위의 '''스칼라 사영'''({{llang|en|scalar projection}}) <math>\mathbf a_\mathbf b</math>은 <math>\mathbf a</math>를 <math>\mathbf b</math>로 [[수직 사영]]하여 얻는 벡터의 길이이다.
:<math>\mathbf a_\mathbf b=\begin{cases}\Vert a\Vert\cos\measuredangle(\mathbf a,\mathbf b)&\mathbf a\ne\mathbf0\land\mathbf b\ne\mathbf 0\\0&\mathbf a=\mathbf0\lor\mathbf b=\mathbf0\end{cases}</math>
스칼라 사영은 다음과 같이 [[단위 벡터]]와의 스칼라곱으로 나타낼 수 있다.
:<math>\mathbf a_\mathbf b=\mathbf a\cdot\frac\mathbf b{\Vert\mathbf b\Vert}</math>
반대로, 스칼라곱은 다음과 같이 스칼라 사영과 벡터의 길이의 곱으로 나타낼 수 있다.
:<math>\mathbf a\cdot\mathbf b=\Vert\mathbf b\Vert\mathbf a_\mathbf b=\Vert\mathbf a\Vert\mathbf b_\mathbf a</math>
 
=== 코사인 법칙 ===
[[파일:Dot product cosine rule.svg|섬네일|삼각형의 세 변에 대응하는 세 벡터 '''a''', '''b''', '''c'''와 이들 가운데 두 벡터의 각도 ''θ''.]]
삼각형의 세 변 <math>a,b,c</math>와 <math>c</math>가 마주보는 각 <math>\theta</math>에 대한 [[코사인 법칙]]은 스칼라곱의 성질을 통해 유도할 수 있다. 벡터 <math>\mathbf a,\mathbf b,\mathbf c</math>가 그림과 같다고 하면, 코사인 법칙은 다음과 같이 증명된다.
:<math>\begin{align}c^2
&=\mathbf c\cdot\mathbf c\\
&=(\mathbf a-\mathbf b)\cdot(\mathbf a-\mathbf b)\\
&=\mathbf a\cdot\mathbf a-\mathbf b\cdot\mathbf a-\mathbf a\cdot\mathbf b+\mathbf b\cdot\mathbf b\\
&=\mathbf a\cdot\mathbf a-2\mathbf a\cdot\mathbf b+\mathbf b\cdot\mathbf b\\
&=a^2-2ab\cos\theta+b^2
\end{align}</math>
 
=== 삼중곱 ===
3차원 유클리드 공간 <math>\mathbb R^3</math> 속 벡터에 대한 곱셈은 그 밖에도 여럿 존재한다. 예를 들어, 두 벡터 <math>\mathbf a,\mathbf b\in\mathbb R^3</math>의 [[벡터곱]] <math>\mathbf a\times\mathbf b\in\mathbb R^3</math>은 스칼라곱과 달리 두 벡터로부터 또 다른 벡터를 얻는다. 그러나 이는 3차원이 아닌 유클리드 공간에서 의미를 잃는다.
 
[[스칼라 삼중곱]]은 <math>\mathbb R^3</math>에서 스칼라곱과 벡터곱을 사용하여 정의된다. 세 벡터 <math>\mathbf a,\mathbf b,\mathbf c\in\mathbb R^3</math>의 스칼라 삼중곱은 <math>\mathbf a\cdot(\mathbf b\times\mathbf c)\in\mathbb R</math>로 정의된다.
 
[[벡터 삼중곱]]은 <math>\mathbb R^3</math>에서 두 번의 벡터 곱으로 정의된다. 세 벡터 <math>\mathbf a,\mathbf b,\mathbf c\in\mathbb R^3</math>의 벡터 삼중곱은 스칼라곱을 계수로 하는 선형 결합 전개식으로 나타낼 수 있으며, 이는 다음과 같다.
:<math>\mathbf a\times(\mathbf b\times\mathbf c)=(\mathbf a\cdot\mathbf c)\mathbf b-(\mathbf a\cdot\mathbf b)\mathbf c</math>
 
=== 물리학 ===
[[물리학]]의 여러 가지 개념은 스칼라곱을 통해 정의된다. 예를 들어, [[일 (물리학)|일]]은 [[힘 (물리학)|힘]]과 [[변위]]의 스칼라곱이며, [[자기 선속]]은 [[자기 선속 밀도]]와 면적 벡터의 스칼라곱이다. 물론 변하는 힘이나 일정하지 않은 자기 선속의 경우 [[적분]]을 사용한다.
 
== 일반화 ==
=== 복소수 벡터의 경우 ===
차원이 <math>n</math>인 복소수 곱공간 <math>\mathbb C^n</math> 속의 벡터 <math>\mathbf u,\mathbf v\in\mathbb C^n</math>에 대하여 스칼라곱과 비슷한 함수를 정의할 수 있으며, 이는 다음과 같다.
:<math>\mathbf u\cdot\mathbf v=\mathbf u^*\mathbf v=\overline{u_1}v_1+\cdots+\overline{u_n}v_n</math>
여기서 <math>\mathbf u^*</math>는 <math>\mathbf u</math>의 (열벡터로서의) [[켤레 전치]]이며, <math>\overline{u_i}</math>는 <math>u_i</math>의 [[켤레 복소수]]이다. 이러한 함수는 [[양의 정부호성]]을 만족시킨다. 즉, 영벡터가 아닌 복소수 벡터와 자기 자신의 스칼라곱은 항상
실수이며 0보다 크다. 그러나 실수 벡터의 스칼라곱과 달리 쌍선형성을 만족시키지 않으며, 대신 다음과 같은 [[반쌍선형성]]을 만족시킨다. 임의의 <math>\mathbf u,\mathbf v,\mathbf w\in\mathbb C^n</math> 및 <math>c\in\mathbb C</math>에 대하여,
:<math>(c\mathbf u+\mathbf v)\cdot\mathbf w=\bar c\mathbf u\cdot\mathbf w+\mathbf v\cdot\mathbf w</math>
:<math>\mathbf u\cdot(c\mathbf v+\mathbf w)=c\mathbf u\cdot\mathbf v+\mathbf u\cdot\mathbf w</math>
또한 대칭성(교환 법칙) 대신 다음과 같은 [[켤레 대칭성]]을 만족시킨다.
:<math>\mathbf u\cdot\mathbf v=\overline{\mathbf v\cdot\mathbf u}</math>
이 경우, 영벡터가 아닌 두 복소수 벡터의 사잇각을 나타내는 공식은 다음과 같다.
:<math>\cos\measuredangle(\mathbf u,\mathbf v)=\frac{\operatorname{Re}(\mathbf u\cdot\mathbf v)}{\Vert\mathbf u\Vert\Vert\mathbf v\Vert}</math>
여기서 <math>\operatorname{Re}(\mathbf u\cdot\mathbf v)</math>는 복소수 <math>\mathbf u\cdot\mathbf v</math>의 [[실수부]]이다.
 
만약 이 함수의 정의에서 켤레 복소수를 생략한다면, 이는 쌍선형성과 대칭성을 유지하지만 양의 정부호성을 잃는다. 이는 대략 <math>i^2=-1<0</math>이기 때문이다. 사실, 양의 정부호성과 대칭성과 쌍선형성을 동시에 만족시키는 함수 <math>B\colon\mathbb C^n\times\mathbb C^n\to\mathbb C</math>는 존재하지 않는다. 이는 이러한 함수의 존재가 다음과 같은 모순을 가져오기 때문이다.
:<math>0<B(i\mathbf v,i\mathbf v)=i^2B(\mathbf v,\mathbf v)=-B(\mathbf v,\mathbf v)<0\qquad(\mathbf v\in\mathbb C^n\setminus\{\mathbf 0\})</math>
 
=== 내적 ===
유클리드 공간이나 복소수 곱공간의 스칼라곱을 일반화하여 [[내적]]의 개념을 얻을 수 있다. 실수 [[벡터 공간]] <math>V</math>에서, 두 벡터 <math>u,v\in V</math>로부터 실수 스칼라 <math>\langle u,v\rangle\in\mathbb R</math>를 얻는 연산이 양의 정부호성과 대칭성과 쌍선형성을 만족시킬 경우, 이를 <math>V</math> 위의 [[내적]]이라고 한다. 복소수 벡터 공간 <math>V</math>의 두 벡터 <math>u,v\in V</math>로부터 복소수 스칼라 <math>\langle u,v\rangle\in\mathbb C</math>를 얻는 연산이 양의 정부호성과 켤레 대칭성과 반쌍선형성을 만족시킬 경우, 이를 <math>V</math> 위의 내적이라고 한다. 예를 들어, <math>\mathbb R^2</math>에 다음과 같은 함수를 정의하면, 이는 내적을 이룬다.<ref>{{서적 인용|성=Hoffman|이름=Kenneth|날짜=1971-04-01|제목=Linear Algebra|언어=en|판=2|출판사=Prentice Hall|isbn=0-13-536797-2}}</ref>{{rp|271}}
:<math>(a_1,a_2)\cdot(b_1,b_2)=a_1b_1-a_2b_1-a_1b_2+4a_2b_2</math>
 
=== 함수의 경우 ===
두 실숫값 함수 <math>f,g\colon[a,b]\to\mathbb R</math>의 내적 <math>\langle f,g\rangle\in\mathbb R</math>은 [[급수]] 대신 [[적분]]을 사용하여 다음과 같이 정의할 수 있으며, 이 역시 양의 정부호성과 대칭성과 쌍선형성을 만족시킨다.
:<math>\langle f,g\rangle=\int_a^bf(x)g(x)dx</math>
보다 일반적으로, 두 복소숫값 함수 <math>f,g\colon[a,b]\to\mathbb C</math>의 내적 <math>\langle f,g\rangle\in\mathbb C</math>은 다음과 같으며, 이는 양의 정부호성과 켤레 대칭성과 반쌍선형성을 만족시킨다.
:<math>\langle f,g\rangle=\int_a^b\overline{f(x)}g(x)dx</math>
 
=== 행렬의 경우 ===
사이즈가 같은 두 실수 [[행렬]] <math>A,B</math>의 '''프로베니우스 내적'''({{llang|en|Frobenius inner product}}) <math>A:B</math>은 위치가 같은 두 성분의 곱들을 합한 결과이며, [[대각합]]과 [[행렬 곱셈]]을 통해 나타낼 수도 있다. 즉, 다음과 같다.
:<math>A:B=\operatorname{tr}(A^\operatorname TB)=\sum_{i,j}A_{ij}B_{ij}</math>
보다 일반적으로, 두 복소수 행렬 <math>A,B</math>의 프로베니우스 내적은 다음과 같다.
:<math>A:B=\operatorname{tr}(A^*B)=\sum_{i,j}\overline{A_{ij}}B_{ij}</math>
여기서 <math>A^*</math>는 <math>A</math>의 [[켤레 전치]]이다.
 
== 같이 보기각주 ==
{{각주}}
* [[벡터곱]]
 
== 외부 링크 ==
{{토막글|수학}}
* {{매스월드|id=DotProduct|title=Dot product}}
* {{플래닛매스|urlname=DotProduct|title=Dot product}}
 
[[분류:선형대수학]]