向量的模

线性代数中的一点理解和感悟

余生颓废 提交于 2019-11-29 10:53:51
看完各路大神相关的东西,写下自己的一点理解和总结。 1.先说 线性 的概念,何为线性,数学里,一般说的线性指的是线性映射,这个映射要同时满足两个条件: 1)可加性:f(x+y)=f(x)+f(y) 2) 齐次性:f(ax)= af(x) 任何一条不满足,就不能叫做线性。 2.再说线性空间,线性空间就是一个包含若干向量的空间,而且根据线性空间的定义(),它还应该满足以下条件: 1)任意取一个向量来伸缩,得到的新的向量还是在这个空间里面(齐次性)。 2)或者任意取两个向量来求和,得到的新的向量还是在这个空间里面(可加性)。 3.基、维、向量、线性变换等 下面图片中是我们常看到书上对基和维的定义: *线性无关即不存在任意一个向量可以由其他向量线性表示。 所以线性空间中的任何一个对象,通过选取基和坐标的办法,都可以表达为向量的形式。这里的对象可以看做或者理解成线性空间中的一个点,比如我们常见的二维或者三维空间中的任意一点的坐标(x,y)、(x,y,z),都可以写作向量的形式(x,y)T,(x,y,z)T。 线性空间中的运动,被称为线性变换。也就是说,你 从线性空间中的一个点运动到任意的另外一个点,都可以通过一个线性变化来完成 。 而对于向量,线性变换可以实现向量的旋转和缩放 。那么,线性变换如何表示呢?很有意思,在线性空间中,当你选定一组基之后,不仅可以用一个向量来描述空间中的任何一个对象

Unity 求两个物体的夹角

左心房为你撑大大i 提交于 2019-11-28 13:20:24
1.点乘公式:a·b=|a|·|b|cos<a,b> ,其中|a|和|b|表示向量的模,<a,b>表示两个向量的夹角。Unity中用Vector3.Dot()求点乘。 点乘结果=0,两向量垂直;点乘结果>0,两向量夹角小于90°;点乘结果<0,两向量夹角大于90°。 2.叉乘公式:c =a x b 其中a,b,c均为向量,结果向量c垂直于a,b向量所在的平面。Unity中用Vector3.Cross()求叉乘。 简单说,点乘判断角度,叉乘判断方向。 public class CalculateAngle : MonoBehaviour { public GameObject Cylinder1; public GameObject Cylinder2; // Use this for initialization void Start () { } // Update is called once per frame void Update () { GetAngle(); } public void GetAngle() { //点乘 float dot = Vector3.Dot(Cylinder1.transform.right, Cylinder2.transform.up); //弧度转角度 float angle = Mathf.Acos(dot) * Mathf

OpenGL光照1:颜色和基础光照

这一生的挚爱 提交于 2019-11-27 10:57:19
本文是个人学习记录,学习建议看教程 https://learnopengl-cn.github.io/ 非常感谢原作者JoeyDeVries和多为中文翻译者提供的优质教程 的内容为插入注释,可以先跳过 前言 我们简要提到过该如何在OpenGL中使用颜色(Color),但是我们至今所接触到的都是很浅层的知识,现在我们要更深入地讨论什么是颜色,并且还会为学习光照(Lighting)创建一个场景 颜色 首先你要知道我们一直在使用有限的数值来模拟真实世界中无限的颜色,所以并不是所有现实世界中的颜色都可以用数值来表示的,然而我们仍能通过数值来表现出非常多的颜色,甚至你可能都不会注意到与现实的颜色有任何的差异 颜色可以数字化的由红色(Red)、绿色(Green)和蓝色(Blue)三个分量组成,它们通常被缩写为RGB,仅仅用这三个值就可以组合出任意一种颜色 例如,要获取一个 橙色(Coral) 色的话,我们可以定义这样的一个颜色向量: glm::vec3 coral(1.0f, 0.5f, 0.31f); 我们在现实生活中看到某一物体的颜色并不是这个物体真正拥有的颜色,而是它所反射的(Reflected)颜色,换句话说,那些不能被物体所吸收(Absorb)的颜色(被拒绝的颜色)就是我们能够感知到的物体的颜色 太阳光能被看见的白光其实是由许多不同的颜色组合而成的,看下图

spacy词向量

青春壹個敷衍的年華 提交于 2019-11-26 12:30:01
spaCy能够比较两个对象,并预测它们的相似程度。 预测相似性对于构建推荐系统或标记重复项很有用。 例如,您可以建议与当前正在查看的用户内容相似的用户内容,或者将支持凭单标记为与现有内容非常相似的副本。 每个Doc、Span和Token都有一个.similarity()方法,它允许您将其与另一个对象进行比较,并确定相似度。当然,相似性总是主观的——“狗”和“猫”是否相似取决于你如何看待它。spaCy的相似模型通常假定一个相当通用的相似性定义。 tokens = nlp(u'dog cat banana') for token1 in tokens: for token2 in tokens: print(token1.similarity(token2)) 在这种情况下,模型的预测是很准确的。狗和猫非常相似,而香蕉却不是很相似。相同的标记显然是100%相似的(并不总是精确的1.0,因为向量数学和浮点数的不精确)。 相似性是通过比较词向量或“词嵌入”来确定的,即一个词的多维意思表示。单词向量可以通过像word2vec这样的算法生成,通常是这样的: important note 为了使比较算法简洁和快速,spaCy的小模型(所有以sm结尾的包)都不使用单词向量,而且这些sm包只包含上下文相关的向量。这意味着您仍然可以使用similarity()方法来比较文档、span和token