向量叉积定义的证明

前面写了一篇向量点积定义的证明,由于这个证明比较简单,所以也没有引起深入的思考。后来打算写一篇叉积的证明时,却发现有些东西真的不好理解。

设两个向量$\mathbf{a} = (x_1, y_1, z_1), \mathbf{b} = (x_2, y_2, z_2)$,两向量夹角为$\theta$,很多教材包括维基百科(Cross Product)等给出的定义都是:

$$\mathbf{c} = \mathbf{a} \times \mathbf{b} = \mathbf{n} |\mathbf{a}| |\mathbf{b}| \sin{\theta}$$

其中$\mathbf{n}$是垂直于向量$\mathbf{a},\mathbf{b}$的单位向量,方向由右手法则确定。这样定义似乎没什么不妥,但是我在考虑一些问题:给出这个定义的数学家,他是怎么发现叉积的结果垂直于两向量?向量的模长为什么恰好等于$|\mathbf{a}| |\mathbf{b}| \sin{\theta}$?下面给出我对这些问题的理解。

我想数学家们刚开始定义向量的叉乘运算($\times$)时,给出的唯一基本定义是:$\mathbf{a} \times \mathbf{b}$的结果$\mathbf{c}$是垂直于向量$\mathbf{a},\mathbf{b}$的一个向量,其方向由右手法则确定;如果向量$\mathbf{a},\mathbf{b}$平行,则叉积结果为零向量。有了这个定义,再根据乘法对加法的分配率,便可得到叉积运算的坐标表达式:

\begin{align} \mathbf{a} \times \mathbf{b} = & (x_1\mathbf{i} + y_1\mathbf{j} + z_1\mathbf{k}) \times (x_2\mathbf{i} + y_2\mathbf{j} + z_2\mathbf{k}) \\ = &\ x_1\mathbf{i} \times (x_2\mathbf{i} + y_2\mathbf{j} + z_2\mathbf{k}) + y_1\mathbf{j} \times (x_2\mathbf{i} + y_2\mathbf{j} + z_2\mathbf{k}) + z_1\mathbf{k} \times (x_2\mathbf{i} + y_2\mathbf{j} + z_2\mathbf{k}) \\ = &\ x_1 x_2 (\mathbf{i} \times \mathbf{i}) + x_1 y_2 (\mathbf{i} \times \mathbf{j}) + x_1 z_2 (\mathbf{i} \times \mathbf{k}) + \\ &\ y_1 x_2 (\mathbf{j} \times \mathbf{i}) + y_1 y_2 (\mathbf{j} \times \mathbf{j}) + y_1 z_2 (\mathbf{j} \times \mathbf{k}) + \\ &\ z_1 x_2 (\mathbf{k} \times \mathbf{i}) + z_1 y_2 (\mathbf{k} \times \mathbf{j}) + z_1 z_2 (\mathbf{k} \times \mathbf{k}) \end{align}

其中$\mathbf{i}, \mathbf{j}, \mathbf{k}$分别表示x、y、z轴方向的单位向量。那么根据向量叉积的定义:$\mathbf{i} \times \mathbf{i} = \mathbf{j} \times \mathbf{j} = \mathbf{k} \times \mathbf{k} = \mathbf{0}$,$\mathbf{i} \times \mathbf{j} = \mathbf{k}$,$\mathbf{j} \times \mathbf{k} = \mathbf{i}$,$\mathbf{k} \times \mathbf{i} = \mathbf{j}$,$\mathbf{j} \times \mathbf{i} = -\mathbf{k}$,$\mathbf{k} \times \mathbf{j} = -\mathbf{i}$,$\mathbf{i} \times \mathbf{k} = -\mathbf{j}$,因此便得到:

\begin{align} \mathbf{a} \times \mathbf{b} &= (y_1 z_2 - z_1 y_2) \mathbf{i} + (z_1 x_2 - x_1 z_2) \mathbf{j} + (x_1 y_2 - y_1 x_2) \mathbf{k} \\ &= (y_1 z_2 - z_1 y_2, \ z_1 x_2 - x_1 z_2, \ x_1 y_2 - y_1 x_2)\end{align}

下面来证明$|\mathbf{c}| = |\mathbf{a}| |\mathbf{b}| \sin{\theta}$:

\begin{align} |\mathbf{c}|^2 = &\ (y_1 z_2 - z_1 y_2)^2 + (z_1 x_2 - x_1 z_2)^2 + (x_1 y_2 - y_1 x_2)^2 \\ = &\ y_1^2 z_2^2 + z_1^2 y_2^2 - 2y_1 y_2 z_1 z_2 + z_1^2 x_2^2 + x_1^2 z_2^2 - 2x_1 x_2 z_1 z_2 + \\ &\ x_1^2 y_2^2 + y_1^2 x_2^2 - 2x_1 x_2 y_1 y_2 \end{align}

又根据向量点积的定义:

\begin{align} (|\mathbf{a}| |\mathbf{b}| \sin{\theta})^2 &= (|\mathbf{a}| |\mathbf{b}|)^2 \sin^{2}{\theta} \\ &= (|\mathbf{a}| |\mathbf{b}|)^2 (1 - \cos^{2}{\theta}) \\ &= (|\mathbf{a}| |\mathbf{b}|)^2 \left(1 - \frac{(\mathbf{a} \cdot \mathbf{b})^2}{(|\mathbf{a}| |\mathbf{b}|)^2} \right) \\ &=  (|\mathbf{a}| |\mathbf{b}|)^2 - (\mathbf{a} \cdot \mathbf{b})^2 \end{align}

因为:

\begin{align} (|\mathbf{a}| |\mathbf{b}|)^2 = &\ \left( \sqrt{x_1^2 + y_1^2 + z_1^2} \sqrt{x_2^2 + y_2^2 + z_2^2} \right)^2 \\ = &\ (x_1^2 + y_1^2 + z_1^2) (x_2^2 + y_2^2 + z_2^2) \\ = &\ x_1^2 x_2^2 + y_1^2 y_2^2 + z_1^2 z_2^2 + x_1^2 y_2^2 + x_1^2 z_2^2 + y_1^2 x_2^2 + y_1^2 z_2^2 + z_1^2 x_2^2 + z_1^2 y_2^2 \end{align}

而且

\begin{align} (\mathbf{a} \cdot \mathbf{b})^2 = &\ (x_1 x_2 + y_1 y_2 + z_1 z_2)^2 \\ = &\ x_1^2 x_2^2 + y_1^2 y_2^2 + z_1^2 z_2^2 + 2x_1 x_2 y_1 y_2 + 2x_1 x_2 z_1 z_2 + 2y_1 y_2 z_1 z_2 \end{align}

容易看出:$(|\mathbf{a}| |\mathbf{b}|)^2 - (\mathbf{a} \cdot \mathbf{b})^2 = |\mathbf{c}|^2$,即:

$$|\mathbf{c}| = |\mathbf{a}| |\mathbf{b}| \sin{\theta}$$

时间: 2024-10-26 23:47:18

向量叉积定义的证明的相关文章

学习总结-几何.向量叉积

学习总结-几何.向量叉积 假设有向量P(x1,y1)和Q(x2,y2) 那么向量P和Q的叉积表示为P×Q 并且P×Q=x1?y2?x2?y1 叉积的性质: 一个非常重要性质是可以通过它的符号判断两矢量相互之间的顺逆时针关系: 若 P×Q>0, 则P在Q的顺时针方向; 若 P×Q<0, 则P在Q的逆时针方向; 若 P×Q=0, 则P与Q共线,但可能同向也可能反向. ·顺时针 ·逆时针 应用,给出一个序列的点,判断它是顺时针还是逆时针:计算连续两个点的叉积,包括第一个和最后一个,求他们的和,大于0

向量叉积判断两线段是否相交

判断两直线p1p2与q1q2是否相交,用向量叉积来判断 如果P x Q >0,则P在Q的顺时针方向: 如果P x Q <0,则P在Q的逆时针方向: 如果P x Q=0,则P与Q共线,可能同向也可能反向 #include <stdio.h> #include <string.h> #include <stdlib.h> #include <math.h> #include <iostream> typedef struct node {

hihoCoder1687(向量叉积)

#1687 : 寻找切线 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 给定平面上N个点P1=(X1, Y1), P2=(X2, Y2), ... PN=(XN, YN). 请你从中找到两个不同的点Pi和Pj满足:其他所有点都在Pi和Pj连线的同一侧(可以在连线上). 如果有多组答案满足条件,你可以输出任意一组. 输入 第一行包含一个整数N. 以下N行每行包含两个整数Xi和Yi. 对于50%的数据,1 ≤ N ≤ 1000 对于100%的数据,1 ≤ N ≤ 10

向量点积定义的证明

设两个向量$\mathbf{a} = \overrightarrow{OA} = (x_1, y_1), \mathbf{b} = \overrightarrow{OB} = (x_2, y_2)$,两向量夹角为$\theta$,向量点积的定义如下: $$\mathbf{a} \cdot \mathbf{b} = |\mathbf{a}|\cdot|\mathbf{b}| \cos{\theta} = x_1 x_2 + y_1 y_2$$ 第一部分可以通过解析几何理解,即一个向量向另一个向量做

向量叉积

叉积 叉积的计算是线段方法的核心,考虑下图所示的向量P1和P2.我们可以把叉积理解为由原点(0,0),P1,P2和P1+P2所构成的平行四边形的有向面积.另一种与之等价但是更有效的定义方式是将叉积看做行列式矩阵: P1=(x1,y1) P2=(x2,y2) 若P1与P2的叉积为正,说明相对于原点,P1位于P2的顺时针方向,反之P1位于P2的逆时针方向,若为0,表明两个向量共线,方向可能相同,也可能相反. 上代码: 1 #ifndef GEO_GEOMETRY_H_ 2 #define GEO_G

HDU 5033 Building(类凸包+向量叉积的应用)

Building Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 262144/262144 K (Java/Others) Total Submission(s): 1138    Accepted Submission(s): 321 Special Judge Problem Description Once upon a time Matt went to a small town. The town was so sma

向量点积、叉积的意义

1.向量点积意义 ①二维向量A和B点积(结果为标量)定义为:A.dot(B) = |A|*|B|*cos(a) 比较重要的用途(数学意义)为: ②得到向量夹角.(根据cos(a)计算得到) ③得到对应单位分量上的长度.(当向量B为单位向量时,则|A|*cos(a)表示向量A在向量B上的单位分量) 可用于凸多边形的碰撞检测(分离轴定理) 2.向量叉积意义 ①二维向量A和B叉积(结果为标量)定义为:A.cross(B) = |A|*|B|*sin(a) 比较重要的用途(数学意义)为: ②得到向量夹角

向量的点积与叉积回顾

向量是3D图形处理.图像处理的基础:在这里,我们回顾一下基本的支持: 向量的数量积和向量积: (1)  向量的数1量积   (1)  向量的向量积 两个向量a和b的叉积(向量积)可以被定义为: 在这里θ表示两向量之间的角夹角(0° ≤ θ ≤ 180°),它位于这两个矢量 所定义的平面上. 向量积的模(长度)可以解释成以a和b为邻边的平行四边形的面积.求三角形ABC的面积,根据向量积的意义,得到: a=axi+ayj+azk; b=bxi+byj+bzk; a×b=(aybz-azby)i+(a

SVM-支持向量机算法概述

(一)SVM的背景简单介绍 支持向量机(Support Vector Machine)是Cortes和Vapnik于1995年首先提出的,它在解决小样本.非线性及高维模式识别中表现出很多特有的优势,并可以推广应用到函数拟合等其它机器学习问题中[10]. 支持向量机方法是建立在统计学习理论的VC 维理论和结构风险最小原理基础上的,依据有限的样本信息在模型的复杂性(即对特定训练样本的学习精度,Accuracy)和学习能力(即无错误地识别随意样本的能力)之间寻求最佳折衷,以期获得最好的推广能力[14]