向量叉乘与叉乘矩阵

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

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 反对称阵有误

  • 29
    点赞
  • 98
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值