向量叉乘与叉乘矩阵

来源:互联网 发布:mac excel使用教程 编辑:程序博客网 时间:2024/04/28 17:28

本文以三维向量来说明向量的叉乘计算原理以及叉乘矩阵如何求取

1、向量叉乘的计算原理

             a、b分别为三维向量:

                                   a=({a_1},{a_2},{a_3})

                                   b=({b_1},{b_2},{b_3})

             a叉乘b一般定义为:

                                   a{\times}b  或 a{\otimes}b

             可是这只是一个符号的定义啊,具体怎么得到代数值

                关键方法就是引入单位坐标向量

             这里用i j k来表示三维坐标轴,这里只是举例,可以扩展到更多维,只是比较抽象

                a、通过引入单位向量,向量就可以转化为代数形式:

                                          a{\rm{=}}{a_1}i+{a_2}j+{a_3}k

                                          {\rm{b=}}{{\rm{b}}_1}i+{b_2}j+{b_3}k

                 b、定义单位向量间的运算规则

                                          i*i=0           j*j=0           k*k=0

                                          i*j=k          j*k=i           k*i=j

                                         j*i=-k       k*j=-i        i*k=-j

                 c、计算叉乘

                                 a{\times}b=({a_1}i+{a_2}j+{a_3}k)*({b_1}i+{b_2}j+{b_3}k)

                                 a{\times}b=({a_2}{b_3}-{a_3}{b_2})i+({a_3}{b_1}-{a_1}{b_3})j+({a_1}{b_2}-{a_2}{b_1})k

2、计算叉乘矩阵

              a{\times}b=({a_2}{b_3}-{a_3}{b_2})i+({a_3}{b_1}-{a_1}{b_3})j+({a_1}{b_2}-{a_2}{b_1})k

              把叉乘结果写成向量的形式:

                                 a{\times}b=\left[\begin{array}{l}{a_2}{b_3}-{a_3}{b_2}\\{a_3}{b_1}-{a_1}{b_3}\\{a_1}{b_2}-{a_2}{b_1}\end{array}\right]

              变换形式得到叉乘矩阵:

                                 a{\times}b={\left[a\right]_\times}b=\left[{\begin{array}{*{20}{c}}0&{-{a_3}}&{{a_2}}\\{{a_3}}&0&{-{a_1}}\\{-{a_2}}&{{a_1}}&0\end{array}}\right]\left[{\begin{array}{*{20}{c}}{{b_1}}\\{b{}_2}\\{{b_3}}\end{array}}\right]

               其中{\left[a\right]_\times}称为a向量的叉乘矩阵。

3、高维向量求取叉乘矩阵

                   对于三维和三维以下向量的叉乘计算和叉乘矩阵的求取通过定义单位向量间的运算规则可以计算得到。

               对于高维向量,这种方法显得有些繁琐不易理解且容易出错。

               下面介绍另外一种方法,先举个二维的例子:

                   假设向量a是一个二维的向量(这里只使用二维是为了让例子容易理解)

                                 a=\left({\begin{array}{*{20}{c}}{{a_1}}&{{a_2}}\end{array}}\right)

               这里引入一个反对称(anti-symmetric)矩阵H:

                                 H=\left[{\begin{array}{*{20}{c}}0&{-1}\\1&0\end{array}}\right]

               通过计算aH{a^T},发现结果为0

               由叉乘的规则,a叉乘a的结果为0:

                                 a{\times}a={\left[a\right]_\times}a=0

               通过对比,可以发现 aH 就是a向量的叉乘矩阵,当a为列向量时{a^T}H为a向量的叉乘矩阵。

 

               如果a为三维向量,那么H为:

                H=\left[{\begin{array}{*{20}{c}}{{H_1}}\\{{H_2}}\\{{H_3}}\end{array}}\right]    {H_1}=\left[{\begin{array}{*{20}{c}}0&0&0\\0&0&{-1}\\0&{-1}&0\end{array}}\right]     {H_2}=\left[{\begin{array}{*{20}{c}}0&0&1\\0&0&0\\{-1}&0&0\end{array}}\right]     {H_3}=\left[{\begin{array}{*{20}{c}}0&{-1}&0\\1&0&0\\0&0&0\end{array}}\right]

               可以发现H就是由一个个反对称矩阵构成。

               如果向量a的维数为 p ,那 H 就有 \frac{{p(p-1)}}{2}个子矩阵。

4、扩展

               对于向量的点乘、四元数乘法都可以通过定义单位向量 i j k…之间的运算规则来推导。

注:原文链接http://www.cnblogs.com/monoSLAM/p/5349497.html
H1 反对称阵有误

0 0
原创粉丝点击