向量加减

矩阵操作(数据,数组向量,表格)

余生颓废 提交于 2020-03-11 10:07:15
一、矩阵的表示 在MATLAB中创建矩阵有以下规则: a、矩阵元素必须在”[ ]”内; b、矩阵的同行元素之间用空格(或”,”)隔开; c、矩阵的行与行之间用”;”(或回车符)隔开; A=[1 2 3 4 5; 12 12 14 56 657; 23 46 34 67 56 ]; d、矩阵的元素可以是数值、变量、表达式或函数; e、矩阵的尺寸不必预先定义。 二,矩阵的创建: 1、直接输入法 最简单的建立矩阵的方法是从键盘直接输入矩阵的元素,输入的方法按照上面的规则。建立向量的时候可以利用冒号表达式,冒号表达式可以产生一个行向量,一般格式是: e1:e2:e3,其中e1为初始值,e2为步长,e3为终止值。还可以用linspace函数产生行向量,其调用格式为:linspace(a,b,n) ,其中a和b是生成向量的第一个和最后一个元素,n是元素总数。 linspace(1,5,8) ans = 1 至 5 列 1.0000 1.5714 2.1429 2.7143 3.2857 6 至 8 列 3.8571 4.4286 5.0000 2、利用MATLAB函数创建矩阵 基本矩阵函数如下: (1) ones()函数:产生全为1的矩阵,ones(n):产生n*n维的全1矩阵,ones(m,n):产生m*n维的全1矩阵; (2) zeros()函数:产生全为0的矩阵; (3) rand(

DirectX学习笔记一 #数学基础

泄露秘密 提交于 2020-03-03 05:30:44
1.基本概念 向量:有向线段,长度和方向是2个重要属性。DirectX中,Vector可以表示点坐标、方向等信息。 坐标系:DirectX中使用的是左手坐标系。 单位向量(unit vector):模为1的向量称为单位向量。 2.DirectX中与向量有关的类——D3DXVECTOR3(一般是3D的,还有2D和4D的向量) D3DXVECTOR3类定义如下: 可以看到,D3DXVECTOR3类实际上定义了一个结构体,这个结构体有float型的3个数据成员,分别表示3维向量的3个分量,此外,还有一些个运算符重载是用于向量的计算的。 3.向量的计算 略过求模,规范化(求单位向量),向量加减,数乘。。。只讲点积、叉积 记住,点积是两个向量的对应分量相乘(component-wise multiply)再相加。 如上所述,当u、v都是单位向量时,它们的点积就等于向量夹角的余弦值。(这可以用来计算light和plane的夹角,从而根据不同的角度计算光照量) 3.矩阵 忽略矩阵加减、数乘,只讲逆矩阵和转置矩阵。逆矩阵主要是用于逆变换,即还原为变换前的状态;而引出转置矩阵主要就是为了计算逆矩阵,因为计算逆矩阵需要用到转置矩阵。另外,记住一点,对于规范化的矩阵,它的逆矩阵和转置矩阵相等。这就提供了一个快速计算逆矩阵的方法,因为转置矩阵不就是转了一下而已,根本不用计算。 矩阵的叉积: 为帮助记忆

shader_线性代数复习提纲

╄→гoц情女王★ 提交于 2020-01-05 22:06:42
MIT线代教程 http://open.163.com/movie/2010/11/7/3/M6V0BQC4M_M6V29E773.html 《转载》 《线性代数》复习提纲 第一部分:基本要求(计算方面) 四阶行列式的计算; N阶特殊行列式的计算(如有行和、列和相等); 矩阵的运算(包括加、减、数乘、乘法、转置、逆等的混合运算); 求矩阵的秩、逆(两种方法);解矩阵方程; 含参数的线性方程组解的情况的讨论; 齐次、非齐次线性方程组的求解(包括唯一、无穷多解); 讨论一个向量能否用和向量组线性表示; 讨论或证明向量组的相关性; 求向量组的极大无关组,并将多余向量用极大无关组线性表示; 将无关组正交化、单位化; 求方阵的特征值和特征向量; 讨论方阵能否对角化,如能,要能写出相似变换的矩阵及对角阵; 通过正交相似变换(正交矩阵)将对称矩阵对角化; 写出二次型的矩阵,并将二次型标准化,写出变换矩阵; 判定二次型或对称矩阵的正定性。 第二部分:基本知识 一、行列式 1.行列式的定义 用n^2个元素aij组成的记号称为n阶行列式。  (1)它表示所有可能的取自不同行不同列的n个元素乘积的代数和;  (2)展开式共有n!项,其中符号正负各半; 2.行列式的计算 一阶|α|=α行列式,二、三阶行列式有对角线法则; N阶(n>=3)行列式的计算:降阶法  定理:n阶行列式的值等于它的任意一行(列

位置角度平移旋转,“乱七八糟”的坐标变换

风流意气都作罢 提交于 2019-12-11 01:19:15
​本文转载自微信公众号ROBOTICS 原作者:CC 编辑:古月居 原文链接: https://mp.weixin.qq.com/s/eOq5QweS-VIg2e0qmkihMw 今天我们要讲所有学习机器人学的人都需要具备的一项基本技能——坐标变换。看明白这篇文章,你需要一点基础的向量和矩阵知识,不用多,只要知道 向量的加减,点乘(内积);矩阵的定义、加减乘逆以及转置;还有矩阵与向量的乘法 就够了。 机器人学为什么需要坐标变换呢?因为控制一个机械臂的根本,就是弄明白每一个关节的joint position与end effector的position and orientation的关系,用更简洁的话来讲,就是joint space与operational space之间的互相映射关系。这里有两个小说明: 不仅仅是位置/角度的映射关系,也包括 速度、加速度、力或扭矩的映射关系 所有我直接用英文而没有翻译的词汇,都是我在 第一篇文章 中解释过的重要概念 好了,接下来就让我们暂时不谈机器人,先把让很多人觉得头疼的坐标变换搞明白。 坐标系(coordinate system) 描述空间位置、速度和加速度,大部分都是用笛卡尔坐标系,也就是大家熟知的三个互相垂直的坐标轴组成的坐标系。我只想强调几个地方: 像题图那样的彩色坐标系,若无特别说明,都是 rgb(红绿蓝)依次对应 xyz

矩阵求导(二)

匿名 (未验证) 提交于 2019-12-03 00:08:02
本文承接上篇 https:// zhuanlan.zhihu.com/p/24 709748 ,来讲矩阵对矩阵的求导术。使用小写字母x表示标量,粗体小写字母 表示列向量,大写字母X表示矩阵。矩阵对矩阵的求导采用了向量化的思路,常应用于二阶方法求解优化问题。 首先来琢磨一下定义。矩阵对矩阵的导数,需要什么样的定义?第一,矩阵F(p×q)对矩阵X(m×n)的导数应包含所有mnpq个偏导数 ,从而不损失信息;第二,导数与微分有简明的联系,因为在计算导数和应用中需要这个联系;第三,导数有简明的从整体出发的算法。我们先定义向量 (p×1)对向量 (m×1)的导数 (m×p),有 ;再定义矩阵的(按列优先)向量化 (mn×1),并定义矩阵F对矩阵X的导数 (mn×pq)。导数与微分有联系 。几点说明如下: 按此定义,标量f对矩阵X(m×n)的导数 是mn×1向量,与上篇的定义不兼容,不过二者容易相互转换。为避免混淆,用记号 表示上篇定义的m×n矩阵,则有 。虽然本篇的技术可以用于标量对矩阵求导这种特殊情况,但使用上篇中的技术更方便。读者可以通过上篇中的算例试验两种方法的等价转换。 标量对矩阵的二阶导数,又称Hessian矩阵,定义为 (mn×mn),是对称矩阵。对向量 或矩阵 求导都可以得到Hessian矩阵,但从矩阵 出发更方便。 ,求导时矩阵被向量化,弊端是这在一定程度破坏了矩阵的结构

矩阵求导(二)

混江龙づ霸主 提交于 2019-11-30 00:52:25
本文承接上篇 https:// zhuanlan.zhihu.com/p/24 709748 ,来讲矩阵对矩阵的求导术。使用小写字母x表示标量,粗体小写字母 表示列向量,大写字母X表示矩阵。矩阵对矩阵的求导采用了向量化的思路,常应用于二阶方法求解优化问题。 首先来琢磨一下定义。矩阵对矩阵的导数,需要什么样的定义?第一,矩阵F(p×q)对矩阵X(m×n)的导数应包含所有mnpq个偏导数 ,从而不损失信息;第二,导数与微分有简明的联系,因为在计算导数和应用中需要这个联系;第三,导数有简明的从整体出发的算法。我们先定义向量 (p×1)对向量 (m×1)的导数 (m×p),有 ;再定义矩阵的(按列优先)向量化 (mn×1),并定义矩阵F对矩阵X的导数 (mn×pq)。导数与微分有联系 。几点说明如下: 按此定义,标量f对矩阵X(m×n)的导数 是mn×1向量,与上篇的定义不兼容,不过二者容易相互转换。为避免混淆,用记号 表示上篇定义的m×n矩阵,则有 。虽然本篇的技术可以用于标量对矩阵求导这种特殊情况,但使用上篇中的技术更方便。读者可以通过上篇中的算例试验两种方法的等价转换。 标量对矩阵的二阶导数,又称Hessian矩阵,定义为 (mn×mn),是对称矩阵。对向量 或矩阵 求导都可以得到Hessian矩阵,但从矩阵 出发更方便。 ,求导时矩阵被向量化,弊端是这在一定程度破坏了矩阵的结构

线性代数的直观理解 -- Intuition in Linear Algebra

北慕城南 提交于 2019-11-29 10:47:56
受《理解线性代数》启发,结合自身学习的经验,直观的总结我对线性代数的理解。强调直观是因为在这里不纠缠于数学的严谨性,所以如果追求数学严谨性和证明的还是去看教材比较好。 统计的目标是对数表内各种数据进行挖掘从而找出隐含其中的关系,线性代数为统计提供了对数表的表达方式和对数表进行处理的工具。 在初等数学中我们学过函数,用来表示的数据之间一种确定的关系,给定x一定能算出唯一的y。但现实中我们遇到的数据可就没有那么明确的联系了,我们不知道谁和谁有联系,甚至不知道是不是存在联系。因此我们急需一种框架来帮助我们处理这些”不好看”的数据。统计就是为了处理数据而生的,它的目标即挖掘出数据之间的联系,从而抽象出数学模型来做解释或预测。 先来扯句题外话,我们知道数学的本质是抽象。那究竟什么是抽象?抽象就是从不同个体中找相同,这些相同也就是规律和关系。初等数学中学到的函数关系就是一种规律,无论x到底是什么值,它和y之间都存在这样的规律。这也是为什么说数学模型都是错的,但却是有用的原因。抽象忽略了个体差异,只留相同点,利用相同点我们能处理满足此相同点的任何差异个体。 言归正传。回忆下中学解析几何或者大学微积分时我们是如何处理数据的: 我们会把函数f(x)映射到欧几里得空间内笛卡尔坐标系做visualization。在代数上对函数的操作等价于对欧几里得空间中相应函数图像做操作。函数是确定的关系