精华内容
下载资源
问答
  • 向量几何意义

    千次阅读 2017-10-26 14:26:57
    向量几何意义自由向量: 大小和方向(物理:矢量)向量的数学表示: 把空间中所有的向量的尾部都拉到坐标原点,这样N维点空间可以与N维向量空间建立一一对应关系:N维点空间中点(0,0,0…0)取作原点,那么每一...

    向量的几何意义

    自由向量: 

    大小和方向(物理:矢量)

    向量的数学表示: 

    把空间中所有的向量的尾部都拉到坐标原点,这样N维点空间可以与N维向量空间建立一一对应关系:N维点空间中点(0,0,0…0)取作原点,那么每一个点都可以让一个向量和它对应,这个向量就是从坐标原点出发到这个点为止的向量。

    向量加法的几何意义: 

    平行四边形法则、三角形法则

    向量加法的物理意义: 

    船过河问题:船头的位移(马达动力)、流水影响的位移(水速)、真正的位移

    向量内积: 

    向量a和b的长度之积再乘以它们之间的夹角的余弦;

    向量a和b的坐标分量分别对应乘积的和。

    向量内积的几何和物理意义: 

    向量内积的几何解释就是一个向量在另一个向量上的投影的积,也就是同方向的积

    特别的,如果一个向量如a是某个坐标轴的单位坐标向量,那么,两个向量的内积就是向量b在此坐标轴上的坐标值。这个结论非常重要,这是傅立叶分析的理论基础。

    其他几何意义:从内积数值上我们可以看出两个向量的在方向上的接近程度。当内积值为正值时,两个向量大致指向相同的方向(方向夹角小于90度);当内积值为负值时,两个向量大致指向相反的方向(方向角大于90度);当内积值为0时,两个向量互相垂直

    向量内积的生活解释:单价向量乘以数量向量,得到总价格

    向量内积的物理解释:一个斜坡上用力F斜上拉一个物体,位移为S(没有重力的情况下),那么这个力F所作的功

    向量的外积(叉积): 

    向量外积的几何和物理意义: 

    向量外积的几何意义: 

    a × b为一个新生成的向量,这个向量垂直于a 和 b展成的平面(图中的虚线平行四边形,由线段oa和ob 所确定的平面);同样向量b × a也垂直这个平面,但方向与a × b所指的方向相反,即a × b = b × a;(右手法则)

    向量外积的物理意义: 

    物理上称为轴向量

    1、知道陀螺的原理吗?高速旋转的陀螺会定向。陀螺所定义的方向就是矢径向量r和线速度v叉乘结果角速度ω方向。

    2、螺钉,螺钉只要左右向旋转即可在螺孔中前进或者后退。用螺丝刀把这棵螺钉按照F+的方向右旋,那么旋转时的扭力向量F和矢径向量r这两个叉乘的结果即是力矩M的方向,这棵螺钉就会沿着力矩M在螺母孔内前进,反方向就会改变叉积的方向进而退出螺孔(右螺旋螺钉)。也就是力矩或叉乘向量的方向就是螺钉的螺旋前进的方向,这个方向垂直于螺丝刀口和扭力的方向,也就是垂直于被叉积的两个向量的方向。

    3、我们经常骑的自行车,车子静止的时候我们在车上会摔下来,一旦骑行起来,车子就会平稳而不会左右倾倒,这也是叉积的功劳(与陀螺的原理相同)。

    向量混合运算的几何意义: 

    向量加法的结合律的几何解释 

    向量数乘的分配律的几何解释 

    向量点积的分配律的几何解释 

    向量叉积的分配律的几何解释 

    (如下图:面向量,有向面积满足平行四边形法则、三角形法则)

    向量的混合积的几何解释 

    以向量a,b,c为棱的平行六面体的底(平行四边形0ADB)的面积S在数值上等于|a×b|,它的高h等于向量c在向量 a×b上的投影,即h =|c| cos a ,所以平行六面体的体积等于

    V=Sh=|a×b| |c| cos a

    向量的投影和几何解释 

    多个向量在任意轴上的投影和 

    多个或有限个向量的和在任意轴上投影等于各个向量在同一轴上投影的和。 

    多个向量在任意平面上的投影和 

    多个或有限个向量的和在任意平面上投影等于各个向量在同一平面上投影的和。 

    变向量的几何意义: 

    对于用数组表示的向量a,如果数组中的元素部分或者全部是变量,那么这个变

    向量在n维坐标系下表示的几何图形是什么呢?

    二维变向量的几何图形 

    变向量的几何图形表示为一个平面

    变向量(x1,a2)表示的是直线x2=a2

    变向量表示的是直线x2=ax1+b

    变向量(x1,ax1)就表示为一条过原点的直线

    三维变量的几何图形: 

    这个平面是一个向量空间,一个被常向量所张成的向量平面空间,记为。因此,我们可以有这样的一个等价式: 

    得到的新图形仍然是个平面,只是沿着向量(0,0,c) 的方向平移了长度为c的距离。 

    一个变向量是和一个解析方程或方程组相对应的,因此变向量和方程一样能表示一个几 

    何图形。实际上,变向量也叫向量函数。

    展开全文
  • 向量叉乘的几何意义

    千次阅读 2021-01-10 20:14:06
    向量叉乘的几何意义 对于两个2维向量: a⃗=(x1,y1)b⃗=(x2,y2) \begin{aligned} \vec{a} &= (x1,y1) \\ \vec{b} &= (x2,y2) \end{aligned} ab​=(x1,y1)=(x2,y2)​ 叉乘定义: |a⃗×b⃗|=x1y2−x2y1|\vec...

    向量叉乘的几何意义

    对于两个2维向量:
    a ⃗ = ( x 1 , y 1 ) b ⃗ = ( x 2 , y 2 ) \begin{aligned} \vec{a} &= (x1,y1) \\ \vec{b} &= (x2,y2) \end{aligned} a b =(x1,y1)=(x2,y2)

    叉乘定义:
    | a ⃗ × b ⃗ | = x 1 y 2 − x 2 y 1 |\vec{a} \times \vec{b}| = x_1y_2-x_2y_1 a ×b =x1y2x2y1

    计算面积

    在这里插入图片描述

    四边形ODCE面积:
    S = ( x 1 + x 2 ) ( y 1 + y 2 ) S = (x_1+x_2)(y_1+y_2) S=(x1+x2)(y1+y2)

    四边形GDFB面积:
    S 1 = x 2 y 1 S_{1} = x_2y_1 S1=x2y1

    三角形BFC面积:
    S 2 = 0.5 ( x 1 y 1 ) S_{2}=0.5(x_1y_1) S2=0.5(x1y1)

    三角形OGB面积:
    S 3 = 0.5 ( x 2 y 2 ) S_{3}=0.5(x_2y_2) S3=0.5(x2y2)

    平行四边形OGCA面积:
    S 平 行 四 边 形 = S − 2 S 1 − 2 S 2 − 2 S 3 = ( x 1 + x 2 ) ( y 1 + y 2 ) − 2 x 2 y 1 − x 1 y 1 − x 2 y 2 = x 1 y 1 + x 2 y 1 + x 1 y 2 + x 2 y 2 − 2 x 2 y 1 − x 1 y 1 − x 2 y 2 = x 1 y 2 − x 2 y 1 \begin{aligned} S_{平行四边形} &= S-2S_1-2S_2-2S_3 \\ &= (x_1+x_2)(y_1+y_2) - 2x_2y_1 - x_1y_1 - x_2y_2 \\ &= x_1y_1+x_2y_1 + x_1y_2+x_2y_2 - 2x_2y_1 - x_1y_1 - x_2y_2 \\ &= x_1y_2 - x_2y_1 \end{aligned} S=S2S12S22S3=(x1+x2)(y1+y2)2x2y1x1y1x2y2=x1y1+x2y1+x1y2+x2y22x2y1x1y1x2y2=x1y2x2y1

    结论:

    向量叉乘的模表示的是所围成平行四边形的面积。

    展开全文
  • 特征值与特征向量几何意义

    万次阅读 2016-09-13 21:42:20
    特征值与特征向量几何意义(转) 2016年9月9日 ReidHolmes Comments 0 Comment   矩阵的乘法是什么,别只告诉我只是“前一个矩阵的行乘以后一个矩阵的列”,还会一点的可能还会说“前一个矩阵的列数...

    特征值与特征向量的几何意义(转)

     

    矩阵的乘法是什么,别只告诉我只是“前一个矩阵的行乘以后一个矩阵的列”,还会一点的可能还会说“前一个矩阵的列数等于后一个矩阵的行数才能相乘”,然而,这里却会和你说——那都是表象。

    矩阵乘法真正的含义是变换,我们学《线性代数》一开始就学行变换列变换,那才是线代的核心——别会了点猫腻就忘了本——对,矩阵乘法 就是线性变换,若以其中一个向量A为中心,则B的作用主要是使A发生如下变化:

    1. 伸缩
      clf;
      A = [0, 1, 1, 0, 0;...
          1, 1, 0, 0, 1];  % 原空间
      B = [3 0; 0 2];      % 线性变换矩阵
      
      plot(A(1,:),A(2,:), '-*');hold on
      grid on;axis([0 3 0 3]); gtext('变换前');
      
      Y = B * A;
      
      plot(Y(1,:),Y(2,:), '-r*');
      grid on;axis([0 3 0 3]); gtext('变换后');
      

      1

      从上图可知,y方向进行了2倍的拉伸,x方向进行了3倍的拉伸,这就是B=[3 0; 0 2]的功劳,3和2就是伸缩比例。请注意,这时B除了对角线元素为各个维度的倍数外,非正对角线元素都为0,因为下面将要看到,对角线元素非0则将会发生切变及旋转的效果。

    2. 切变
      clf;
      A = [0, 1, 1, 0, 0;...
           1, 1, 0, 0, 1];  % 原空间
      B1 = [1 0; 1 1];       % 线性变换矩阵
      B2 = [1 0; -1 1];       % 线性变换矩阵
      B3 = [1 1; 0 1];       % 线性变换矩阵
      B4 = [1 -1; 0 1];       % 线性变换矩阵
      
      Y1 = B1 * A;
      Y2 = B2 * A;
      Y3 = B3 * A;
      Y4 = B4 * A;
      
      subplot(2,2,1);
      plot(A(1,:),A(2,:), '-*'); hold on;plot(Y1(1,:),Y1(2,:), '-r*');
      grid on;axis([-1 3 -1 3]);
      subplot(2,2,2);
      plot(A(1,:),A(2,:), '-*'); hold on;plot(Y2(1,:),Y2(2,:), '-r*');
      grid on;axis([-1 3 -1 3]);
      subplot(2,2,3);
      plot(A(1,:),A(2,:), '-*'); hold on;plot(Y3(1,:),Y3(2,:), '-r*');
      grid on;axis([-1 3 -1 3]);
      subplot(2,2,4);
      plot(A(1,:),A(2,:), '-*'); hold on;plot(Y4(1,:),Y4(2,:), '-r*');
      grid on;axis([-1 3 -1 3]);
      

      2

    3. 旋转所有的变换其实都可以通过上面的伸缩和切变变换的到,如果合理地对变换矩阵B取值,能得到图形旋转的效果,如下,
      clf;
      A = [0, 1, 1, 0, 0;...
           1, 1, 0, 0, 1];  % 原空间
      theta = pi/6;
      B = [cos(theta) sin(theta); -sin(theta) cos(theta)];
      Y = B * A;
      figure;
      plot(A(1,:),A(2,:), '-*'); hold on;plot(Y(1,:),Y(2,:), '-r*');
      grid on;axis([-1 3 -1 3]);
      

      3

    好,关于矩阵乘就这些了。那么,我们接着就进入主题了,对特定的向量,经过一种方阵变换,经过该变换后,向量的方向不变(或只是反向),而只是进行伸缩变化(伸缩值可以是负值,相当于向量的方向反向)?这个时候我们不妨将书上对特征向量的定义对照一遍:

    数学教材定义: 设A是n阶方阵,如果存在 $\lambda$ 和n维非零向量X,使 ,则 $\lambda$ 称为方阵A的一个特征值,X为方阵A对应于或属于特征值 $\lambda$ 的一个特征向量。

    上面特定的向量不就是特征向量吗? $\lambda$ 不就是那个伸缩的倍数吗?因此,特征向量的代数上含义是:将矩阵乘法转换为数乘操作;特征向量的几何含义是:特征向量通过方阵A变换只进行伸缩,而保持特征向量的方向不变。特征值表示的是这个特征到底有多重要,类似于权重,而特征向量在几何上就是一个点,从原点到该点的方向表示向量的方向。

    特征向量有一个重要的性质:同一特征值的任意多个特征向量的线性组合仍然是A属于同一特征值的特征向量。关于特征值,网上有一段关于“特征值是震动的谱”的解释:

    戏说在朝代宋的时候,我国就与发现矩阵特征值理论的机会擦肩而过。话说没有出息的秦少游在往池塘里扔了一颗小石头后,刚得到一句“投石冲开水底天”的泡妞诗对之后,就猴急猴急地去洞房了,全然没有想到水波中隐含着矩阵的特征值及特征向量的科学大道理。大概地说,水面附近的任一点水珠在原处上下振动(实际上在做近似圆周运动),并没有随着波浪向外圈移动,同时这些上下振动的水珠的幅度在渐渐变小,直至趋于平静。在由某块有着特定质量和形状的石头被以某种角度和速度投入某个面积和深度特定的水池中所决定的某个矩阵中,纹波荡漾中水珠的渐变过程中其特征值起着决定性的作用,它决定着水珠振动的频率和幅度减弱的衰退率。

    在理解关于振动的特征值和特征向量的过程中,需要加入复向量和复矩阵的概念,因为在实际应用中,实向量和实矩阵是干不了多少事的。机械振动和电振动有频谱,振动的某个频率具有某个幅度;那么矩阵也有矩阵的谱,矩阵的谱就是矩阵特征值的概念,是矩阵所固有的特性,所有的特征值形成了矩阵的一个频谱,每个特征值是矩阵的一个“谐振频点”。

    美国数学家斯特让(G..Strang)在其经典教材《线性代数及其应用》中这样介绍了特征值作为频率的物理意义,他说:

    大概最简单的例子(我从不相信其真实性,虽然据说1831年有一桥梁毁于此因)是一对士兵通过桥梁的例子。传统上,他们要停止齐步前进而要散步通过。这个理由是因为他们可能以等于桥的特征值之一的频率齐步行进,从而将发生共振。就像孩子的秋千那样,你一旦注意到一个秋千的频率,和此频率相配,你就使频率荡得更高。一个工程师总是试图使他的桥梁或他的火箭的自然频率远离风的频率或液体燃料的频率;而在另一种极端情况,一个证券经纪人则尽毕生精力于努力到达市场的自然频率线。特征值是几乎任何一个动力系统的最重要的特征。

    其实,这个矩阵之所以能形成“频率的谱”,就是因为矩阵在特征向量所指的方向上具有对向量产生恒定的变换作用:增强(或减弱)特征向量的作用。进一步的,如果矩阵持续地叠代作用于向量,那么特征向量的就会凸现出来。

    更多关于特征向量及特征值的实际例子参见Wikipedia: http://zh.wikipedia.org/wiki/特征向量

    特征值分解

    设A有n个特征值及特征向量,则:

    将上面的写到一起成矩阵形式:

    若(x1,x2,...,xn)可逆,则左右两边都求逆,则方阵A可直接通过特征值和特征向量进行唯一的表示,令

    Q=(x1,x2,...,xn)

    $\Sigma=diag(\lambda_1,\lambda_2,...,\lambda_n)$

    ,该表达式称为方阵的特征值分解,这样方阵A就被特征值和特征向量唯一表示。

    一个变换方阵的所有特征向量组成了这个变换矩阵的一组基。所谓基,可以理解为坐标系的轴。我们平常用到的大多是直角坐标系,在线性代数中可以把这个坐标系扭曲、拉伸、旋转,称为基变换。我们可以按需求去设定基,但是基的轴之间必须是线性无关的,也就是保证坐标系的不同轴不要指向同一个方向或可以被别的轴组合而成,否则的话原来的空间就“撑”不起来了。从线性空间的角度看,在一个定义了内积的线性空间里,对一个N阶对称方阵进行特征分解,就是产生了该空间的N个标准正交基,然后把矩阵投影到这N个基上。N个特征向量就是N个标准正交基,而特征值的模则代表矩阵在每个基上的投影长度。特征值越大,说明矩阵在对应的特征向量上的方差越大,功率越大,信息量越多。不过,特征值分解也有很多的局限,比如说变换的矩阵必须是方阵。

    在机器学习特征提取中,意思就是最大特征值对应的特征向量方向上包含最多的信息量,如果某几个特征值很小,说明这几个方向信息量很小,可以用来降维,也就是删除小特征值对应方向的数据,只保留大特征值方向对应的数据,这样做以后数据量减小,但有用信息量变化不大,PCA降维就是基于这种思路。

    Matlab中通过eig函数就可求得特征值和特征向量矩阵。

    >> B = [ 3     -2      -.9    2*eps
         -2      4       1    -eps
         -eps/4  eps/2  -1     0
         -.5    -.5      .1    1   ]
    B =
        3.0000   -2.0000   -0.9000    0.0000
       -2.0000    4.0000    1.0000   -0.0000
       -0.0000    0.0000   -1.0000         0
       -0.5000   -0.5000    0.1000    1.0000
    
    >> [V D] = eig(B)
    V =
        0.6153   -0.4176   -0.0000   -0.1437
       -0.7881   -0.3261   -0.0000    0.1264
       -0.0000   -0.0000   -0.0000   -0.9196
        0.0189    0.8481    1.0000    0.3432
    D =
        5.5616         0         0         0
             0    1.4384         0         0
             0         0    1.0000         0
             0         0         0   -1.0000
    

    D对角线的元素即为特征值(表示了伸缩的比例),D就是特征值分解公式中的Q,V的每一列与D没列对应,表示对应的特征向量,即特征值分解中的Σ。

    奇异值分解

    特征值分解是一个提取矩阵特征很不错的方法,但是它只适用于方阵。而在现实的世界中,我们看到的大部分矩阵都不是方阵,比如说有M个学生,每个学生有N科成绩,这样形成的一个M * N的矩阵就可能不是方阵,我们怎样才能像描述特征值一样描述这样一般矩阵呢的重要特征呢?奇异值分解就是用来干这个事的,奇异值分解是一个能适用于任意的矩阵的一种分解的方法。我们有必要先说说特征值和奇异值之间的关系。

    对于特征值分解公式, $A^TA$ 是方阵,我们求 $A^TA$ 的特征值,即 ,此时求得的特征值就对应奇异值的平方,求得的特征向量v称为右奇异向量,另外还可以得到:

    所求的ui就是左奇异向量, $\sigma_i$ 就是奇异值。已有人对SVD的几何机理做了清晰的分析,非常受用,就不重复造轮子,下文为转载自 http://blog.sciencenet.cn/blog-696950-699432.html

    SVD分解

    SVD之所以很有效,是因为:在很多情况下,前10%甚至1%的奇异值的和就占了全部的奇异值之和的99%以上了。在这里,我们用图像简单的实践一下SVD的大妙处,下面是matlab对图像进行SVD分解的例子,

    I = imread('lena_gray.bmp');                  % 512x512的Lena图像
    im = double(I);
    [s,v,d]=svd(im);                              % svd分解,svd分解后特征值v对角线按从大到小排列,因此可以选择特征值大的进行恢复
    recv1=s(:,1:20)*v(1:20,1:50)*d(:,1:50)';      % svd取最高的100个特征值进行恢复
    recv2=s(:,1:50)*v(1:50,1:100)*d(:,1:100)';    % svd取最高的100个特征值进行恢复
    recv3=s(:,1:200)*v(1:200,1:200)*d(:,1:200)';  % svd取最高的100个特征值进行恢复
    
    subplot(221);imshow(I);
    title('原图');
    subplot(222);imshow(mat2gray(recv1));
    title('恢复:左奇异20、右奇异50');
    subplot(223);imshow(mat2gray(recv2));
    title('恢复:左奇异50、右奇异100');
    subplot(224);imshow(mat2gray(recv3));
    title('恢复:左奇异200、右奇异200');

    图注:SVD二维图像压缩恢复

    如果按左下角的方式压缩原图,则存储量变为:50x50+100x100+50=12500,而存储原图像的存储量为512x512=262144,则压缩比为262144/12500=20.97,这里没有考虑存储数据类型的差异。

    SVD分解相对于特征值分解的优势就是:

    1. 分解的矩阵可以是任意矩阵
    2. 在恢复信号的时候左右奇异值可以选择不同的维度

    另外值得注意的一点:不论是奇异值分解还是特征值分解,分解出来的特征向量都是正交的。

    奇异值分解与PCA

    关于奇异值与PCA的关系, http://www.cnblogs.com/LeftNotEasy/archive/2011/01/19/svd-and-applications.html 给了很好的解释,也直接整理过来,感谢原作者:

    图注:SVD与PCA

    PCA就是一种用于对数据进行降维的方法(降维肯定会丢失数据,只不过能在减少大量存储量的同时损失尽可能少),参见之前matlab对图像进行SVD分解的例子,更容易理解:实现了SVD就实现了PCA,PCA仅是SVD的包装。

    PCA的应用很广,主要用在机器学习中对特征进行降维,还能用于去噪,下面两图是PCA降维和PCA去噪的例子(图片来自邹博PPT:北京9月秋季班·机器学习初步)

    图注:PCA降维

    降维说白了就是将信息通过投影到更低得多维度,这样必然会带来信息的丢失,但就如上图,这种信息的丢失却有时对分类没有影响,反而能降低识别算法的维度,提高速度,缓解所谓的维度灾难。

    图注:PCA去噪

    PCA去噪的前提是噪声的特征值会比信号的特征值小,即信噪比高的情况,否则PCA去噪会产生逆效果——把信号去掉了而噪声没去掉。

    SVD其它

    SVD还有其它很多方面的应用,通过查找资料,这里先做个简单的罗列,有机会再一个个研究:

    1. 求伪逆。我们知道,矩阵求逆要求矩阵必须是方阵,SVD可以用来求任意矩阵的逆运算,求任意矩阵的逆矩阵称为求伪逆
    2. 最小二乘法求解。凭着对《矩阵论》的零星的记忆,SVD算法就是因为能求伪逆所以用来求解最小二乘法。
    3. 基于SVD的文本分类。首先接触是从吴军老师的《数学之美》一书上看到的,大致是:通过TF/IDF(term frequency/inverse document frequency)构建“一百万篇文章和五十万词的关联性”的矩阵 $A_{1000000x500000}$ ,然后对A矩阵使用SVD分解之后,存储量减小,而且左奇异值矩阵和右奇异值矩阵以及奇异值矩阵的物理含义将非常明晰,http://blog.csdn.net/wangzhiqing3/article/details/7431276 有简单介绍,更多参见吴军老师的《数学之美》

    另外,开源视觉库OpenCV中也提供SVD分解的算法。

    参考

    1. 强大的矩阵奇异值分解(SVD)及其应用
    2. http://blog.sciencenet.cn/blog-696950-699432.html ,关于SVD部分的讲解即出自此处。
    3. http://www.cise.ufl.edu/~srajaman/Rajamanickam_S.pdf
    4. July培训班PPT:“北京9月秋季班:贝叶斯、PCA、SVD”.
    5. 戴华编著《矩阵论》 教材,科学出版社. 有时候明白一点之后再回头参考数学教材要比网上大把的抓好得多,豁然开朗

    转载地址xiahouzuoxin

    展开全文
  • 向量几何意义及编程应用(1)

    千次阅读 2017-09-16 10:56:09
     它的几何意义就是 a 的长度与 b 在 a 上的投影长度的乘积,或者是 b 的长度与 a 在 b 上投影长的乘积,它是一个标量,而 且可正可负。因此互相垂直的向量的内积为0。 5、向量的矢积(叉积): a x b ...

    转载自:http://blog.csdn.net/popy007/article/details/376934

    <1>简单的2-D追踪

    Andre Lamothe说:“向量几何是游戏程序员最好的朋友”。一点不假,向量几何在游戏编程中的地位不容忽视,因为在游戏程序员的眼中,显示屏幕就是一个坐标系,运动物体的轨迹就是物体在这个坐标系曲线运动结果,而描述这些曲线运动的,就是向量。使用向量可以很好的模拟物理现象以及基本的AI。

    现在,先来点轻松的,复习一下中学知识

    向量v
    (用粗体字母表示向量)也叫矢量,是一个有大小有方向的量。长度为1的向量称为单位向量,也叫幺矢,这里记为E。长度为0的向量叫做零向量,记为0,零向量没有确定方向,换句话说,它的方向是任意的。

    一、向量的基本运算



    1、向量加法:a+b等于使b的始点与a的终点重合时,以a的始点为始点,以b的终点为终点的向量。

    2、向量减法:a-b等于使b的始点与a的始点重合时,以b的终点为始点,以a的终点为终点的向量。

    3、 数量乘向量:k*a,k>0时,等于a的长度扩大k倍;k=0时,等于0向量;k<0时,等于a的长度扩大|k|倍然后反向。

    4、向量的内积(数量积、点积): a.b=|a|*|b|*cosA 等于向量a的长度乘上b的长度再乘上ab之间夹角的余弦。
       它的几何意义就是a的长度与ba上的投影长度的乘积,或者是b的长度与ab上投影长的乘积,它是一个标量,而
    且可正可负。因此互相垂直的向量的内积为0。

    5、向量的矢积(叉积): a x b = |a|*|b|*sinA*v = c, |a|是a的长度,|b|是b的长度,A是ab之间的不大于180的夹角,v是与a,b所决定的平面垂直的幺矢,即axbab都垂直。在右手坐标系下,a,b,c构成右手系,即右手拇指伸直,其余四指按由ab的不大于180度的角卷曲,此时拇指所指方向就是c的方向。因此axb!=bxa。如果是左手系,那么上图中a x b = -c ,即a,b-c构成左手系。a xb的行列式计算公式如上图右边所示。两个向量的矢积是一个向量。

    6、正交向量的内积:互相垂直的两个向量是正交的,正交向量的内积为零。a.b = |a|.|b|*cos(PI/2) = |a|.|b|*0 = 0。

    二、向量的性质

    没有下面的这些性质做基础,我们后面向量技巧的推导将无法进行。

    1) a + b = b + a
    2) (a + b) + c = a + (b +c)
    3) a + 0 = 0 + a =a
    4) a + (-a) = 0
    5) k*(l*a) = (k*l)*a = a*(k*l)
    6) k*(a + b) = k*a + k*b
    7) (k + l)*a = k*a + l*a
    8) 1*a = a

    9) a.b = b.a
    10)a.(b + c) = a.b +a.c
    11)k*(a.b) = (k*a).b = a.(k*b)
    12)0.a = 0
    13)a.a = |a|^2


    三、自由向量的代数(分量)表示

    1、向量在直角坐标中的代数表示方法:

    a=(x,y)



    其中x,y分别是向量在x轴和y轴上的分量。任何一个在直角坐标轴上的分量为(x,y)的向量都相等。比如上图中的每个向量都表示为(-2,1)。

    或者写成a=x*i+y*j,ij的线性组合,这里i是x轴方向的单位向量(1,0),j是y轴方向的单位向量(0,1),因此i正交于j。任意一个2-D向量都可以表成ij的线性组合。

    |i| = |j| = 1

    2、向量的代数(分量)表示的运算:

    向量加法分量表示:a+b=(xa,ya)+(xb,yb)=(xa+xb,ya+yb)

    向量减法分量表示:a-b=(xa,ya)-(xb,yb)=(xa-xb,ya-yb)

    向量的内积(数量积、点积)分量表示:

    a.b
    =(xa * i + ya * j).(xb * i + yb * j)
    = xa * i * xb * i + xa * i * yb *j + ya * j * xb * i + ya * j * yb * j
    =(xa * xb) * (i * i) + (xa * yb) * (i *j) + (xb * ya) * (i * j) + (ya * yb) * (j *j)
    = xa * xb + ya * yb


    3、向量长度(模)的计算以及单位化(归一化):

    a=(x,y),则
    |a| = |(x,y)| = |x*i + y*j| = sqrt(x^2*i^2 + y^2*j^2) = sqrt(x^2 + y^2),这里sqrt是开平方符号。

    a的单位向量为a/|a|,即(x,y)/sqrt(x^2 + y^2)。

    四、简单的2-D追踪

    现在,有了向量的基本知识,我们就可以分析一个常见的问题-屏幕上一点到另一点的追踪,其实这一问题也可理解为画线问题,画线的算法有很多:DDA画线法、中点画线法以及高效的Bresenham算法。但这些算法一般只是画一些两端固定的线段时所使用的方法,再做一些动态的点与点之间的跟踪时显得不很灵活。使用向量的方法可以很好的解决此类问题。

    现在假设你正在编写一个飞行射击游戏,你的敌人需要一种很厉害的武器-跟踪导弹,这种武器在行进的同时不断的修正自己与目标之间的位置关系,使得指向的方向总是玩家,而不论玩家的位置在哪里,这对一个水平不高的玩家(我?)来说可能将是灭顶之灾,玩家可能很诧异敌人会拥有这么先进的秘密武器,但对于你来说只需要再程序循环中加入几行代码
    ,它们的原理是向量的单位化和基本向量运算。

    首先我们要知道玩家的位置(x_player, y_player),然后,我们的导弹就可以通过计算得到一个有初始方向的速度,速度的方向根据玩家的位置不断修正,它的实质是一个向量减法的计算过程。速度的大小我们自己来设置,它可快可慢,视游戏难易度而定,它的实质就是向量单位化和数乘向量的过程。具体算法是:导弹的更新速度(vx_missile, vy_missile) = 玩家的位置(x_player, y_player) - 导弹的位置(x_missile, y_missile),然后再对(vx_missile, vy_missile)做缩小处理,导弹移动,判断是否追到玩家,重新更新速度,缩小...

    看一下这个简单算法的代码:



    // 假设x_player,y_player是玩家位置分量
    // x_missile,y_missile是导弹位置分量
    // xv_missile,yv_missile是导弹的速度分量

    // 让我们开始吧

    float n_missile ; // 这是玩家位置与导弹位置之间向量的长度
    float v_rate ; // 这是导弹的速率缩放比率

    // 计算一下玩家与导弹之间的位置向量
    xv_missile = x_player-x_missile ; // 向量减法,方向由导弹指向玩家,x分量
    yv_missile = y_player-y_missile ; // y分量

    // 计算一下它的长度
    n_missile = sqrt( xv_missile*xv_missile + yv_missile*yv_missile ) ;

    // 归一化导弹的速度向量:
    xv_missile /= n_missile ;
    yv_missile /= n_missile ;

    // 此时导弹的速率为1,注意这里用速率。
    // 导弹的速度分量满足xv_missile^2+yv_missile^2=1
    // 好!现在导弹的速度方向已经被修正,它指向玩家。
    // 由于现在的导弹速度太快,为了缓解一下紧张的气氛,我要给导弹减速
    v_rate = 0.2f ; // 减速比率
    xv_missile *= v_rate ; // 这里的速率缩放比率,你可以任意调整大小
    yv_missile *= v_rate ; // 可以加速:v_rate大于1;减速v_rate大于0小于1,这里就这么做!

    // 导弹行进!导弹勇敢的冲向玩家!
    x_missile += xv_missile ;
    y_missile += yv_missile ;

    // 然后判断是否攻击成功

    现在,你编写的敌人可以用跟踪导弹攻击玩家了。你也可以稍加修改,变为直线攻击武器。这样比较普遍。
    基本的跟踪效果用向量可以很好的模拟。

    此时,我们只用到了所述向量知识的很少的一部分。其他的知识会慢慢用到游戏中。这次先介绍到这里。
    下次我将说说利用向量模拟2-D物体任意角度返弹的技巧:)但是!别忘了复习一下向量的基础知识,我们要用到它们。

    展开全文
  • 向量的点乘与叉乘的几何意义

    万次阅读 多人点赞 2016-11-06 21:59:35
    向量的点乘与叉乘的几何意义 很惭愧,作为一名学生,向量的最基本的知识全忘了,在最近做计算机图形学实验时,需要用到向量计算时,发现自己寸步难行。只好赶快百度”预习”一下。向量的点乘:a * b公式:a * b = |a...
  • 对于游戏行业程序员来说,向量“点乘”和“叉乘”是非常熟悉的运算。从代码上看他们很简单:(以下代码选自UE4的“Vector.h”) 点乘就是各分量逐项相乘,最终得到了一个标量: FORCEINLINE float FVector::Dot...
  • 向量的相关运算和几何意义(扫盲篇)

    千次阅读 2018-03-25 14:05:00
    在物理学和工程学中,几何向量更常被称为矢量。 数量积(内积、点积) 定义:已知两个非零向量a,b,作OA=a,OB=b,则∠AOB称作向量a和向量b的夹角,记作θ并规定0≤θ≤π。 定义:两个向量的数...
  • 向量运算的几何意义

    2021-02-08 11:00:50
    几何意义 表示一个向量在另一个向量上的大小的映射(标量) 计算方式 1、|A||B|cosθ 2、x1x2+y1y2 Unity API Vector3.Dot(V1,V2); 叉乘 几何意义 二维空间中:表示两个向量围成的平行四边形的面积 三维空间中:表示...
  • 向量叉积(Cross product)的几何意义及应用

    万次阅读 多人点赞 2019-08-27 14:49:47
    仅在三维空间,两个向量的叉积才有定义,记作 u ^ v ...其中,θ表示u 和 v 的夹角, ||u|| 和 ||v|| 分别是向量 u和v 的,n 则是u、v 所构成平面的法向(垂直于u、v平面的单位向量),方向由右手定则决定。
  • 向量点积 点积有两种好记好用的理解方法,他们都可以基于做功去理解: 假设b是个均匀分布的力场,a为收到其中作用进行的一个运动。 第一种基于几何: a点乘b等于一方(例b)投影到另一方(例a)的长度乘以另一方的...
  • -前言- 在进一步浏览Laya3D源代码之前,...现在已知两个向量分别是、,向量的结果是一个标量等于a1b1 + a2b2 + a3b3 + ..... + an-1bn-1 + anbn; 向量点乘描述两个向量的“相似”程度。点乘结果越大,两个向量越相...
  • 向量几何基础

    2021-11-14 16:08:40
    向量的基本运算 向量v(用粗体字母表示向量)也叫矢量,是一个有大小有方向的量。长度为1的向量称为单位向量,也叫幺矢,这里记为E。长度为0的向量叫做零向量,记为0,零向量没有确定方向,或者说,它的方向是任意的...
  • 二维向量叉积的几何意义

    万次阅读 2014-12-05 10:48:02
    叉乘(cross product)相对于点乘,叉乘可能更有用...上述结果是它的。在二维空间里,让我们暂时忽略它的方向,将结果看成一个向量,那么这个结果类似于上述的点积,我们有: A x B = |A||B|Sin(θ)然而角度 θ...
  • 针对现有模型选择标准无法对支持向量回归(SVR)模型选择过程给出明确几何意义的弱点,提出了一种基于信息几何理论的模型选择新标准。它将模型空间看成是一个流形,将模型复杂度等价于其所能覆盖的概率分布个数,...
  • 向量叉积的几何意义

    千次阅读 2014-12-24 17:41:08
    经典证明:向量叉积的几何意义 为什么以向量 (a, b) 和 (c, d) 为邻边,构成的平行四边形的面积正好是 ad – bc 呢?下图是一个非常漂亮的无字证明。 这是我在阅读 The Mathematical Mechanic: Using Physical ...
  • 特征向量其实反应的是矩阵A本身固有的一些特征,本来一个矩阵就是一个线性变换,当把这个矩阵作用于一个向量的时候,通常情况绝大部分向量都会被这个矩阵A变换得“面目全非”,但是偏偏刚好存在这么一些向量,被矩阵...
  • (2)两个向量相乘再乘以两个向量的夹角的余弦值 两个向量点乘: 三角形的边长公式: 1.在任何一个三角形中,任意一边的平方等于另外两边的平方和减去这两边的2倍乘以它们夹角的余弦 几何语言:在...
  • 以下说明点乘的几何意义,就是一个向量在另一个单位向量(如果另一个向量是单位向量)上的投影长度。 a * b / |b| = |a|cosθ a * b /|a| = |b|cosθ 2.叉乘的几何意义 [a, b, c]×[d,e,f] = [bf - ec, dc - af, ae ...
  • 最小二乘法 几何意义

    2019-07-10 11:09:26
    本文的中心思想是:最小二乘法中的几何意义是高维空间中的一个向量在低维子空间的投影。这个思想在MIT教授Gilbert Strang的线性代数的公开课程上有讨论,这里我会把这个思想详细的阐述一遍。文章最后会把傅里叶...
  • 在3D游戏开发中,经常用到向量的点积和叉积及其几何意义,为防止遗忘,在此记录一下。点积在数学中,点积(德语:Skalarprodukt、英语:Dot Product)又称数量积或标量积(德语:Skalarprodukt、英语:Scalar Product)...
  • 多元线性回归模型的几何意义

    千次阅读 2017-06-19 09:01:45
    模型设定与假设 多元线性回归与一元线性回归在思想上并没有太大的不同 ,不过是多了一些变量... 其实正是n维向量Y 在n*k维矩阵(不存在向量自相关)所张成的k维空间上的正交投影。   正交投影是什么? 使用余
  • 一般来说,我们希望基的是1,因为从内积的意义可以看到,如果基的是1,那么就可以方便的用向量点乘基而直接获得其在新基上的坐标了!实际上,对应任何一个向量我们总可以找到其同方向上为1的向量,只要让两个...
  • 对两个向量执行点乘运算,就是对这两个向量对应位一一相乘之后求和的操作,如下所示,对于向量a和向量b: a和b的点积公式为:这里要求一维向量a和向量b的行列数相同。注意:点乘的结果是一个标量(数量而不是向量)...
  • 矩阵相乘的几何意义

    2020-06-23 11:59:45
    1.上边链接是我看的对矩阵相乘的几何意义最清楚的解释了。 2.重点: A * B B左乘A, 可以把A看做坐标系,A的行向量是坐标系的基向量。把B看做列向量集合。 A * B就是把B中的列向量投影到A的所有基向量上。计算过程...
  • 向量长和方向

    千次阅读 2019-07-31 13:49:29
    向量的大小:向量各分量的平方和的平方根 API:float dis=vector.magnitude 代码实现: //长 void Demo01() { Vector3 pos = this.transform.position; Debug.DrawLine(Vector3.zero,this.transform....
  • 向量的点乘,也叫向量的内积、数量积,对两个向量执行点乘运算,就是对这两个向量对应位一一相乘之后求和的操作,点乘的结果是一个标量。点乘公式对于向量a和向量b: a和b的点积公式为:要求一维向量a和向量b的行...
  • 高数下-空间几何(一)-向量

    千次阅读 2019-06-28 13:59:04
    文章目录 一、向量的基本内容 向量即矢量,既有方向又有大小...等于1的向量为单位向量 等于0的向量为零向量 2.向量的方向 可以用方向余弦表示,后面介绍 二、向量的运算 1.向量的加法 使用平行四边形法则或者三...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 17,003
精华内容 6,801
关键字:

向量模的几何意义