矩阵乘法

Keyle的3D数学-学习手札

ⅰ亾dé卋堺 提交于 2020-03-28 07:46:33
数学复习笔记 不断更新中 1.向量 在3D数学中 向量的基本运算有 归一化 ,加法与减法 ,点乘 与叉乘 。 点乘公式如下 所指为 a向量与b向量的夹角 , = 反余弦(ab点乘 / a与b的模相乘) 叉乘公式如下 具体用法在这里 ttp://www.cnblogs.com/Keyle/p/4506699.html 2.矩阵 一般来说矩阵式这样的 矩阵的加法,减法也是一样 性质 矩阵的乘法 向量乘以一个3*3的矩阵 例题 重点看例3 在矩阵中AB!=BA 矩阵的线性变换 (1)利用矩阵做向量的旋转 旋转公式如下 (2)利用矩阵缩放 基本概念 矩阵缩放公式 (3)投影矩阵 首先分为两种透视投影与正交投影,正交投影其实是一个降维的过程(三维变二维) 公式如下 通用投影矩阵 (4)镜像矩阵 任意镜像矩阵公式,我们用n来指定一个平面 (5)矩阵的切变 2D切变公式如下 3D切变如下 (6)矩阵的行列式 公式如下 注意只有方阵才有行列式计算,他的计算结果是一个标量,对角交叉相乘最后相加 3D矩阵计算公式如下 (7)矩阵的逆 性质 计算公式 其中adjM为标准伴随矩阵 其中的 C{11} 叫做代数余子式矩阵 计算方式为 ===> 一个完整的计算方式如下 代数余子矩阵计算比较复杂 实际运用 V是一个向量 我们通过M旋转矩阵进行了旋转,现在要回到原来的位置,那么我们再乘以M矩阵的逆,也就是等于v

R 语言-基础

人盡茶涼 提交于 2020-03-26 07:52:37
R语言 1997年成为GNU项目 开源免费 R官方网址 www.r-project.org R是数据分析领域的语言 小巧灵活,通过扩展包来增强功能 绘图功能 代码简单 开发环境 R + RStudio 1、数据类型 character 字符 numeric 数值型,实数或小数 integer 整型 complex 复数型 logical 逻辑型 类似于boollean 2、数据结构 Vector 向量 Factor 因子 Array 数组 Matrix 矩阵 Data Frame 数据框 List 列表 一维:向量、因子 向量属于数值型变量,因子对应于分类变量 二维:矩阵、数据框 矩阵中元素的数据类型是一致的,数据框由向量组成,每个向量中的数据类型保持一致,向量间的数据类型可以不一致,类似于表结构。 三维:数组、列表 数组用的比较少,多维数据结构;列表可以包含上面所有的数据结构 3、向量 向量表示一组数据,数据类型一致,向量可以表示行或者列 c() 如: : 如: 1:10 seq(from(开始), to(到), by(步长), length.out(指定向量的元素个数), along.with(长度与指定的向量长度相同)) 提取子集: 数字下标(正数:获取指定元素,从1开始,负数:排除的意思) which()函数(按条件来进行筛选) #向量 (x1<- c(10,11,12

Matrix学习——基础知识

陌路散爱 提交于 2020-03-26 04:56:27
以前在线性代数中学习了矩阵,对矩阵的基本运算有一些了解,前段时间在使用GDI+的时候再次学习如何使用矩阵来变化图像,看了之后在这里总结说明。 首先大家看看下面这个3 x 3的矩阵,这个矩阵被分割成4部分。为什么分割成4部分,在后面详细说明。 首先给大家举个简单的例子:现设点P0(x0, y0)进行平移后,移到P(x,y),其中x方向的平移量为△x,y方向的平移量为△y,那么,点P(x,y)的坐标为: x = x0 + △x y = y0 + △y 采用矩阵表达上述如下: 上述也类似与图像的平移,通过上述矩阵我们发现,只需要修改矩阵右上角的2个元素就可以了。 我们回头看上述矩阵的划分: 为了验证上面的功能划分,我们举个具体的例子:现设点P0(x0 ,y0)进行平移后,移到P(x,y),其中x放大a倍,y放大b倍, 矩阵就是: ,按照类似前面“平移”的方法就验证。 图像的旋转稍微复杂:现设点P0(x0, y0)旋转θ角后的对应点为P(x, y)。通过使用向量,我们得到如下: x0 = r cosα y0 = r sinα x = r cos(α+θ) = x0 cosθ - y0 sinθ y = r sin(α+θ) = x0 sinθ + y0 cosθ 于是我们得到矩阵: 如果图像围绕着某个点(a ,b)旋转呢?则先要将坐标平移到该点,再进行旋转

关于矩阵

孤街浪徒 提交于 2020-03-21 22:42:27
本章所写都是通过对《工程学线性代数》和《3D数学基础:图形与游戏开发》理解所写 “不幸的是,没人告诉您矩阵像什么——您必须自己去感受。” 来自《 黑客帝国 》对白 .我们曾宣称矩阵表达坐标转换,多以当我们观察矩阵的时候,我们是在观察转换,观察新的坐标系。打这个转换开起来像什么?特定的3D矩阵(旋转,放射等)和3X3矩阵的9个数字之间有什么关系?怎么样构建一个矩阵来做这个转换(而不是盲目的照搬书上的公式)?——3D数学基础 矩阵分为实矩阵和复矩阵,元素是实数的矩阵为实矩阵,元素是复数的为复矩阵。 关于复数: http://www.cnblogs.com/ThreeThousandBigWorld/archive/2012/07/21/2602588.html 单位矩阵我们记做E 转置矩阵: 用 ' 表示转置因为右上角的小t打不出来,a为实数 1)(A')' = A; 2) (A+B)' = A' + B'; 3) (aA)' = aA'; 4) (AB)' = B'A'. 由n阶方阵A的元素所构成的行列式(个元素的位置不变),称为方阵A的行列式,记做|A|或detA 1)|A'| = |A| 2) |aA| = a^n|A| 3) |AB| = |A||B| 伴随矩阵: 行列式|A|的各个元素的代数余子式Aij所构成的矩阵然后再转置就是矩阵A的 伴随矩阵 , 记做A* AA* = A

机器学习(吴恩达) 第3章 线性代数复习(选修)

牧云@^-^@ 提交于 2020-03-16 21:44:22
@[TOC]机器学习(吴恩达) 第3章 线性代数复习(选修) (这一节是很基础的线性代数) 3-1 矩阵和向量 矩阵:是指由数字组成的矩形阵列,并写在方括号内。 (1) 矩阵中某个元素的表达 向量:是只有一列的矩阵。 3-2 加法和标量乘法 加减法 标量乘法 3-3 矩阵向量乘法 3-4 矩阵乘法 3-5 矩阵乘法特征 不服从交换律。 服从结合律。 单位矩阵 3-6 逆和转置 逆矩阵 转置 (持续更新中…) 来源: CSDN 作者: qq_37034291 链接: https://blog.csdn.net/qq_37034291/article/details/104905198

矩阵的加、减、乘、除、求逆运算的实现

爷,独闯天下 提交于 2020-03-15 19:42:31
1、矩阵的加减乘除求逆运算的概念:   (1)矩阵概念 有 m n 个数排列成一个 m 行 n 列,并括以方括弧(或圆括弧)的数表称为 m 行 n 列矩阵。   (2)矩阵加法:   (3)矩阵乘法:   (4)矩阵的求逆运算   (5)矩阵的除法:     分成两种(1)A\B=inverse(A)*B (2)B/A=B*inverse(A),理解上可能有误,不过是按照这两种方式来运算的。。 2、要求:   要求很简单:编写一个实现矩阵(向量)的+ - * / 求逆运算的类(女友的一个作业题) 3、实现代码    View Code 1 #include<stdio.h> 2 #include<stdlib.h> 3 #define col 3 4 #define row 3 5 class matrix//类的定义 6 { 7 private: 8 double m[col][row];//矩阵设置为私有的, 9 public: 10 matrix(){}//无参数的构造函数 11 matrix(double a[col][row]);//有参数的构造函数 12 matrix Add(matrix &b);//加法运算声明 13 matrix Sub(matrix &b);//减法运算声明 14 matrix Mul(matrix &b);//乘法运算声明 15 matrix

四个基本空间

北城以北 提交于 2020-03-14 12:49:07
概述 讨论矩阵的四个基本子空间,通过维数和基来深入了解四个子空间。 列空间 列空间我们都熟悉了,就是矩阵列线性组合组成的空间。 位于: \(R^m\) 空间 维数:r 一组基:主元列 零空间 零空间也并不陌生,使 \(Ax=0\) 的所有x组成的空间 位于: \(R^n\) 空间 维数: n-r 一组基: 特解 行空间 行空间可以看作 \(A^T\) 的列空间 一个有趣的性质是一个矩阵的秩如果是r,那么它的转置的秩也是R,所以行空间的维数得到了。是m-r 从基的定义我们知道,对于行空间的一组基,其实就是那些线性无关行组成的集合,那不正是简化行阶梯型(rref)中的非零行嘛,也就是前r行。 位于: \(R^n\) 空间 维数: r 一组基: rref中的前r行 左零空间 左零空间是行空间的零空间,也可以看作 \(A^T\) 的零空间,也就是使得 \(A^Ty=0\) 的所有y组成的空间 为啥叫左零空间??因为 \(A^Ty=0\) 可以看作 \((A^Ty)^T=0^T\) ,也就是 \(y^TA=0\) 。 再重复一遍这个公式: \(y^TA=0\) 嘶根据矩阵的乘法规则,那 \(y^T\) 不就是简化行阶梯中的零行所对应消元矩阵嘛的行嘛。 所以用高斯若尔当法求出消元矩阵,再取后m-r行就可以了嘛。。。 位于: \(R^m\) 空间 维数: m-r 一组基:A消元矩阵的后m-r行

numpy矩阵乘法的解惑

杀马特。学长 韩版系。学妹 提交于 2020-03-12 02:30:27
#源码如下: 批量梯度下降法 import numpy as np # Setting a random seed, feel free to change it and see different solutions. np.random.seed(42) # TODO: Fill in code in the function below to implement a gradient descent # step for linear regression, following a squared error rule. See the docstring # for parameters and returned variables. def MSEStep(X, y, W, b, learn_rate = 0.005): """ This function implements the gradient descent step for squared error as a performance metric. Parameters X : array of predictor features y : array of outcome values W : predictor feature coefficients b : regression function

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

余生颓废 提交于 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(

P3390 矩阵快速幂

柔情痞子 提交于 2020-03-10 12:55:08
这个题根据题目也就能知道应该怎么做,但是代码怎么实现矩阵乘法,是一个问题,所以就用到了重载运算符。 重载运算符可以定义一些普通的运算,比如 + ,-,×,÷,%,<,>,!=,……有很多,但不能自己创造符号。 在这个题中,需要定义矩阵乘法,在定义之前,还要定义一个结构体: 1 struct hls{ 2 long long s[110][110]; 3 }; 4 hls t,r; 5 long long k; 6 int n; 7 const long long m=1000000007; 8 hls operator * (const hls &a,const hls &b) 9 { 10 hls w; 11 for(int i=1;i<=n;++i) 12 { 13 for(int j=1;j<=n;++j) 14 { 15 w.s[i][j]=0; 16 } 17 } 18 for(int x=1;x<=n;++x) 19 { 20 for(int y=1;y<=n;++y) 21 { 22 for(int z=1;z<=n;++z) 23 { 24 w.s[x][y]+=a.s[x][z]*b.s[z][y]%m; 25 w.s[x][y]%=m; 26 } 27 } 28 } 29 return w; 30 } 结构体中包含一个二维数组,用来表示矩阵