热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

线性代数学习点(五):向量运算规则的几何表示

原文链接:http:thejuniverse.orgPUBLICLinearAlgebraLOLAgeomVectcalc.html翻译过程稍有删减前面

原文链接:http://thejuniverse.org/PUBLIC/LinearAlgebra/LOLA/geomVect/calc.html

翻译过程稍有删减

        前面已经介绍了最基本的向量相加及向量数乘。在实际中,向量的运算往往是这两种基本运算的复合,这就需要一些运算的规则。向量绝大部分的运算规则与标量对应的运算规则一致。

        第一条规则是:向量相加满足交换律。用更数学化的语言可表述为:对任意向量u 和 v,有如下等式成立: u + v = v + u.

        这点很好理解,下图为采用平行四边形法则的向量相加几何示意图,无论是u 和加v,还是  vu,结果都是以uv两个向量为边构成的平行四边形的对角线。

                                
        若有三个或者三个以上的向量相加,结果又如何呢?三角形法则告诉我们,将这些向量的起点和终点相连,则以第一个向量的起点为起点,以最后一个向量的终点为终点,构成的这个向量即为和向量,如下图所示。

                               

        上述规则无疑是正确的。但从技术上来讲,向量相加的法则仅定义了两个向量相加。因此,我们必须确保上述法则在只有两个向量相加时也是正确的。因此,我们还需要如下的规则:即向量相加满足结合律。用更数学化的语言可表述为:对任意向量u 、vw,有如下等式成立:  (u + v)+ w = u + (v + w).

        下图给出了向量加法结合律的几何图示。上面是等式左边的相加结果,下面是等式右边的相加结果。可以看出,结果都是黑色的向量。

                

                

         利用交换律和结合律这两个规则,我们就可以解决任意多个向量以任意次序相加的问题。

        前面我们仅给出了向量相加运算法则在二维空间的几何示意图。下图给出了三个向量在三维空间相加的几何示意图。图中三个向量处于不同的平面,我们可以先将他们的起点放置在一起,然后先利用平行四边形法则计算u + v,然后再利用三角形法则计算(u + v)+ w。由图可以看出,和向量实际上是由u、 v、w三个向量构成的平行六面体的对角线。因此,在三维空间,向量相加的法则也称为平行六面体法则,这是二维空间到三维空间的自然推广。在数学抽象上,这样的法则还可以推广到三维以上的空间,只是无法给出具体的几何示意图。

                                

        上面我们讨论了多个向量相加的问题。对数乘运算,假定现在有两个数c 和 d,都要和向量v进行数乘运算,那么运算的次序有关系吗?可以证明,数乘运算时,先用那个数进行数乘并不影响最终的结果,即有:c(dv) =d(cv) = (cd)v.

        如果c 和 d均为正数,那么很明显,上述三种运算所得的结果相同,并且仍然是一个向量,其方向与v相同,其长度为v的长度乘以cd。如果c 和 d有一个为负数或者两者均为负数,上述三种运算就必须要考虑方向的变反的情况,但注意到,在三种运算中,向量方向变反的次数是一样的,因此,三种运算所得的结果仍然相同。这即说明上述数乘满足交换律的运算规则是有效的。

        我们再考虑更复杂一些的情况,几个向量之间的运算不仅有加法,还有数乘运算,这时就需要分配率。这里,分两种情况来讨论。

        第一种情况是两个数相加后再与向量相乘。此时的运算规则如下:两个数相加之后再与向量相乘,等于两个数分别与向量相乘后再相加。用数学公式可表示为:对于任意的数c,d及任意的向量v,有:

                (c + d)v =cv +dv.

        如果c 和 d均为正数,如下图所示,那么从图很容易看出,上述等式两边的运算结果相同,结果均为向量,其方向与v相同,长度为v的长度乘以(c +d)。

                                 

        如果c 和 d有一个为负数,或者均为负数,上述分配率规则同样有效,但所得向量的方向与(c+d)的取值有关,可能与v相同,也可能与v相反。

        再来考虑另外一种情况,一个数与两个向量相加的结果相乘,此时的运算规则如下:一个数与两个向量相加的结果相乘,等于这个数分别与这两个向量单独相乘,然后再相加。用数学公式可表示为:对于任意的数c,d及任意的向量v,有:

                c(u + v) = cu + cv.

        对这条规则的理解与第一种情况的完全类似,下图给出了一个这种情况下的几何示意图。

                        

        综合这两种情况,用更口语化的方式,分配率可统一表述为:相加之后的相乘与相乘之后的相加相等。



推荐阅读
  • 微软头条实习生分享深度学习自学指南
    本文介绍了一位微软头条实习生自学深度学习的经验分享,包括学习资源推荐、重要基础知识的学习要点等。作者强调了学好Python和数学基础的重要性,并提供了一些建议。 ... [详细]
  • Android图形架构学习笔记(待修改)
    以下简单总结来自Android官网,稍作总结:https:source.android.google.cndevicesgraphics概览Andr ... [详细]
  • Ubuntu 用户安装 Linux Kernel 3.15 RC1
    nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
  • 阿里Treebased Deep Match(TDM) 学习笔记及技术发展回顾
    本文介绍了阿里Treebased Deep Match(TDM)的学习笔记,同时回顾了工业界技术发展的几代演进。从基于统计的启发式规则方法到基于内积模型的向量检索方法,再到引入复杂深度学习模型的下一代匹配技术。文章详细解释了基于统计的启发式规则方法和基于内积模型的向量检索方法的原理和应用,并介绍了TDM的背景和优势。最后,文章提到了向量距离和基于向量聚类的索引结构对于加速匹配效率的作用。本文对于理解TDM的学习过程和了解匹配技术的发展具有重要意义。 ... [详细]
  • 本文是一位90后程序员分享的职业发展经验,从年薪3w到30w的薪资增长过程。文章回顾了自己的青春时光,包括与朋友一起玩DOTA的回忆,并附上了一段纪念DOTA青春的视频链接。作者还提到了一些与程序员相关的名词和团队,如Pis、蛛丝马迹、B神、LGD、EHOME等。通过分享自己的经验,作者希望能够给其他程序员提供一些职业发展的思路和启示。 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • 本文介绍了Java工具类库Hutool,该工具包封装了对文件、流、加密解密、转码、正则、线程、XML等JDK方法的封装,并提供了各种Util工具类。同时,还介绍了Hutool的组件,包括动态代理、布隆过滤、缓存、定时任务等功能。该工具包可以简化Java代码,提高开发效率。 ... [详细]
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • 本文讨论了Alink回归预测的不完善问题,指出目前主要针对Python做案例,对其他语言支持不足。同时介绍了pom.xml文件的基本结构和使用方法,以及Maven的相关知识。最后,对Alink回归预测的未来发展提出了期待。 ... [详细]
  • 本文介绍了PhysioNet网站提供的生理信号处理工具箱WFDB Toolbox for Matlab的安装和使用方法。通过下载并添加到Matlab路径中或直接在Matlab中输入相关内容,即可完成安装。该工具箱提供了一系列函数,可以方便地处理生理信号数据。详细的安装和使用方法可以参考本文内容。 ... [详细]
  • 本文介绍了腾讯最近开源的BERT推理模型TurboTransformers,该模型在推理速度上比PyTorch快1~4倍。TurboTransformers采用了分层设计的思想,通过简化问题和加速开发,实现了快速推理能力。同时,文章还探讨了PyTorch在中间层延迟和深度神经网络中存在的问题,并提出了合并计算的解决方案。 ... [详细]
  • Learning to Paint with Model-based Deep Reinforcement Learning
    本文介绍了一种基于模型的深度强化学习方法,通过结合神经渲染器,教机器像人类画家一样进行绘画。该方法能够生成笔画的坐标点、半径、透明度、颜色值等,以生成类似于给定目标图像的绘画。文章还讨论了该方法面临的挑战,包括绘制纹理丰富的图像等。通过对比实验的结果,作者证明了基于模型的深度强化学习方法相对于基于模型的DDPG和模型无关的DDPG方法的优势。该研究对于深度强化学习在绘画领域的应用具有重要意义。 ... [详细]
  • 通过Anaconda安装tensorflow,并安装运行spyder编译器的完整教程
    本文提供了一个完整的教程,介绍了如何通过Anaconda安装tensorflow,并安装运行spyder编译器。文章详细介绍了安装Anaconda、创建tensorflow环境、安装GPU版本tensorflow、安装和运行Spyder编译器以及安装OpenCV等步骤。该教程适用于Windows 8操作系统,并提供了相关的网址供参考。通过本教程,读者可以轻松地安装和配置tensorflow环境,以及运行spyder编译器进行开发。 ... [详细]
  • OCR:用字符识别方法将形状翻译成计算机文字的过程Matlab:商业数学软件;CUDA:CUDA™是一种由NVIDIA推 ... [详细]
  • 1.修改CommonSettings.props文件下compute_xx,sm_xx,其中 ... [详细]
author-avatar
让安丷全筑起心灵的屏障
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有