zoukankan      html  css  js  c++  java
  • 向量叉乘与叉乘矩阵

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

    1、向量叉乘的计算原理

                 a、b分别为三维向量:

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

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

                 a叉乘b一般定义为:

                                       a{	imes}b  或 a{otimes}b

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

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

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

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

                                              a{
m{=}}{a_1}i+{a_2}j+{a_3}k

                                              {
m{b=}}{{
m{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{	imes}b=({a_1}i+{a_2}j+{a_3}k)*({b_1}i+{b_2}j+{b_3}k)

                                     a{	imes}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{	imes}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{	imes}b=left[egin{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}
ight]

                  变换形式得到叉乘矩阵:

                                    

                   其中{left[a
ight]_	imes}称为a向量的叉乘矩阵。

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

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

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

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

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

                                    

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

                                    

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

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

                                     a{	imes}a={left[a
ight]_	imes}a=0

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

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

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

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

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

    4、扩展

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

  • 相关阅读:
    ckeditor 上传图片
    过滤html else <p>
    目录遍历
    android小知识之SparseArray(HaspMap替换)
    android小知识之邮箱地址输入自动完成
    android小知识之EditText输入框之值监控以及类型限制(数字,英语字母,下划线,是否为星号密码)
    android小知识之圆角ListView
    android小知识之多个listview在同一界面只有item高亮
    如何取消一个本地svn目录与svn的联系(即恢复原有图标等)
    android小知识之意图(intent)
  • 原文地址:https://www.cnblogs.com/monoSLAM/p/5349497.html
Copyright © 2011-2022 走看看