zoukankan      html  css  js  c++  java
  • 向量叉积定义的证明

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

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

    $$mathbf{c} = mathbf{a} imes mathbf{b} = mathbf{n} |mathbf{a}| |mathbf{b}| sin{ heta}$$

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

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

     egin{align} mathbf{a} imes mathbf{b} = & (x_1mathbf{i} + y_1mathbf{j} + z_1mathbf{k}) imes (x_2mathbf{i} + y_2mathbf{j} + z_2mathbf{k}) \ = & x_1mathbf{i} imes (x_2mathbf{i} + y_2mathbf{j} + z_2mathbf{k}) + y_1mathbf{j} imes (x_2mathbf{i} + y_2mathbf{j} + z_2mathbf{k}) + z_1mathbf{k} imes (x_2mathbf{i} + y_2mathbf{j} + z_2mathbf{k}) \ = & x_1 x_2 (mathbf{i} imes mathbf{i}) + x_1 y_2 (mathbf{i} imes mathbf{j}) + x_1 z_2 (mathbf{i} imes mathbf{k}) + \ & y_1 x_2 (mathbf{j} imes mathbf{i}) + y_1 y_2 (mathbf{j} imes mathbf{j}) + y_1 z_2 (mathbf{j} imes mathbf{k}) + \ & z_1 x_2 (mathbf{k} imes mathbf{i}) + z_1 y_2 (mathbf{k} imes mathbf{j}) + z_1 z_2 (mathbf{k} imes mathbf{k}) end{align}

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

    egin{align} mathbf{a} imes 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{ heta}$:

    egin{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}

    又根据向量点积的定义:

    egin{align} (|mathbf{a}| |mathbf{b}| sin{ heta})^2 &= (|mathbf{a}| |mathbf{b}|)^2 sin^{2}{ heta} \ &= (|mathbf{a}| |mathbf{b}|)^2 (1 - cos^{2}{ heta}) \ &= (|mathbf{a}| |mathbf{b}|)^2 left(1 - frac{(mathbf{a} cdot mathbf{b})^2}{(|mathbf{a}| |mathbf{b}|)^2} ight) \ &=  (|mathbf{a}| |mathbf{b}|)^2 - (mathbf{a} cdot mathbf{b})^2 end{align}

    因为:

    egin{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} ight)^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}

    而且

    egin{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{ heta}$$

  • 相关阅读:
    新手入门:python的pip安装(二)
    新手入门:python的安装(一)
    python解释器和环境安装
    Python基础入门总结
    Python环境搭建教程(windows10)
    漏洞重温之sql注入(三)
    漏洞重温之sql注入(二)
    漏洞重温之sql注入(一)
    漏洞重温之文件上传(FUZZ)
    漏洞重温之文件上传(总结)
  • 原文地址:https://www.cnblogs.com/vive/p/4565282.html
Copyright © 2011-2022 走看看