MATLAB 의 cross product함수로 cross() 라는 함수를 제공합니다. 본 함수는 cross(A,B) 형태로 이용을 하며 A,B 는 인자가 3개 여야 합니다. 그렇지 않으면 에러가 납니다.
보통 cross product(외적) 는 x 기호로 나타내고 dot product (내적) 은 점(∙) 기호로 나타냅니다.
일단 그 수학적인 정의에 대해 살펴 보겠습니다. 벡터 A= 이고 벡터 B = 인 경우 cross product 는 A x B 로 표현이 되고 dot product 는 A ∙ B 로 표현이 되며 그 결과는 다음과 같습니다.
A x B= =
A ∙ B=
cross product 는 몇 가지 특징이 있습니다. A x B 는 A, B 에 직교 합니다.
즉 A,B 에 의해 이루어 지는 면적에 직교 한다는 뜻입니다. 마찮가지로 B x A 역시 A, B 에 직교 합니다.
하지만 AxB ≠ BxA 입니다. AxB 와 BxA 은 크기는 같고 방향은 반대인 벡터가 되게 됩니다.
이제 다음과 같은 평행 사변형에서 어떻게 적용이 되는지 살펴 보겠습니다.
위 평행 사변형의 면적은 가 됩니다. 위 식에서 절대값 기호( | | ) 는 벡터의 크기를 의미하는 것입니다.
두 벡터 A,B 가 이루는 삼각형의 넓이는 당연히 평행 사변형의 1/2 이 되게 되겠죠.
이제 몇 가지 예를 들어보죠~ 공간상의 점 A=(2, 3, 4), B=(4, 5, 6) 에 대해 위 공식을 이용하여 A, B 로 구성되는 평행 사변형의 면적과 삼각형의 면적을 구해 보겠습니다.
A=[2 3 4]
A =
2 3 4
B=[4 5 6]
B =
4 5 6
Cross_P= cross(A,B)
Cross_P =
-2 4 -2
Cross_P2= cross(B,A)
Cross_P2 =
2 -4 2
norm(cross(Cross_P, Cross_P2))
ans =
0
위 결과에서 두 값의 cross product 의 norm 값이 0 이므로 두 벡터는 평행 하다.
dot(Cross_P, A)
ans =
0
위 결과에서 두 벡터의 dot product 가 0 이므로 두 벡터는 수직이다.
trapz_area=norm(Cross_P) % 평행 사변형의 면적
trapz_area =
4.8990
Triangular_area=norm(Cross_P)/2 % 삼각형의 면적
Triangular_area =
2.4495
다음으로 다음과 같은 평행 육면체에 대해 살펴 보겠습니다.
위 그림과 같은 평행 육면체의 부피는 벡터 A, B 가 이루는 면적 *(곱하기) 평행 육면체 높이 가 됩니다.
위에서 설명 드린 데로 A, B 가 이루는 면적은 이고 평행 육면체의 높이는 가 되게 됩니다.
∙ 은 스칼라 삼중곱의 형태로 표현이 되며 결과적으로 다음과 같이 표현됩니다.
결과적으로 벡터 A, B, C 로 구성되는 평행 육면체의 부피는 다음과 같은 식이 성립하게 되겠죠
=====
그럼 이제 A=[0 1 3], B=[4 5 6], C=[5 9 17] 로 구성된 평행 육면체의 부피에 대해 알아보죠
A=[0 1 3]
A =
0 1 3
B=[4 5 6]
B =
4 5 6
C=[5 9 17]
C =
5 9 17
값
norm(dot(C,cross(A,B)))
ans =
5
값
norm(dot(C,cross(B,A)))
ans =
5
값
norm(dot(A,cross(B,C)))
ans =
5
값
norm(dot(A,cross(C,B)))
ans =
5
값
norm(dot(B,cross(A,C)))
ans =
5
값
norm(dot(B,cross(C,A)))
ans =
5
'programming language > MATLAB' 카테고리의 다른 글
MATLAB FAST convolution using FFT (0) | 2011.03.23 |
---|---|
MATLAB random number 생성 (32) | 2011.03.23 |
MATLAB PDF, CDF, CCDF (6) | 2011.03.23 |
MATLAB 함수 만들기, inline, function handle (0) | 2011.03.21 |
MATLAB input() (0) | 2011.03.21 |
MATLAB 기본3, sort, if ~ end, for ~ end, max, min (4) | 2011.03.21 |
MATLAB erf, erfc, Q- function (2) | 2011.03.19 |
MATLAB BPSK BER simulation in AWGN channel (77) | 2011.03.19 |
댓글