矩阵加法

Python numpy的基本操作你一般人都不会

拟墨画扇 提交于 2019-12-06 00:32:09
前言 本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。 PS:如有需要最新Python学习资料的小伙伴可以加点击下方链接自行获取 http://note.youdao.com/noteshare?id=a3a533247e4c084a72c9ae88c271e3d1 来看正文: 0、NumPy 与 ndarry NumPy 是 Python 科学计算的基础包,它专为进行严格的数字处理而产生。 它提供: 快速高效的多维数组对象 ndarray; 直接对数组执行数学运算及对数组执行元素级计算的函数; 线性代数运算、随机数生成; 将 C、C++、Fortran 代码集成到 Python 的工具等。 它专为进行严格的数字处理而产生。多为很多大型金融公司使用,以及核心的科学计算组织如:Lawrence Livermore,NASA 用其处理一些本来使用 C++,Fortran 或Matlab 等所做的任务。 ndarray 是一个多维的数组对象,具有矢量算术运算能力和复杂的广播能力,并具有执行速度快和节省空间的特点。 ndarray 的一个特点是同构:即其中所有元素的类型必须相同。 1、数组属性查看:类型、尺寸、形状、维度 import numpy as np a1 = np.array([1,2,3,4],dtype

均值、方差、协方差、协方差矩阵、特征值、特征向量

末鹿安然 提交于 2019-12-05 17:55:02
均值: 描述的是样本集合的中间点。 方差: 描述的是样本集合的各个样本点到均值的距离之平均,一般是用来描述一维数据的。 协方差: 是一种用来度量两个随机变量关系的统计量。 只能处理二维问题。 计算协方差需要计算均值。 如下式: 方差与协方差的关系 方差是用来度量单个变量 “ 自身变异”大小的总体参数,方差越大表明该变量的变异越大 协方差是用来度量两个变量之间 “协同变异”大小的总体参数,即二个变量相互影响大小的参数,协方差的绝对值越大,则二个变量相互影响越大。 协方差矩阵: 协方差矩阵能处理多维问题; 协方差矩阵是一个对称的矩阵,而且对角线是各个维度上的方差。 协方差矩阵计算的是不同维度之间的协方差,而不是不同样本之间的。 样本矩阵中若每行是一个样本,则每列为一个维度,所以计算协方差时要 按列计算均值 。 如果数据是3维,那么协方差矩阵是: 特征值与 特征向量 线性变化: 线性变换 (线性映射)是在作用于 两个向量空间之间的函数 ,它保持 向量加法和标量乘法 的运算,从一个向量空间变化到另一个向量空间。 实际上线性变换表现出来的就是一个矩阵 。 特征值和特征向量 是一体的概念: 对于一个给定的线性变换(矩阵A),它的特征向量 ξ 经过这个线性变换之后,得到的新向量仍然与原来的 ξ 保持在同一條直線上,但其长度也许會改变。一个特征向量的长度在该线性变换下缩放的比例(λ)称为其特征值

矩阵初步

穿精又带淫゛_ 提交于 2019-12-05 07:20:13
矩阵,主要用于递推/ \(dp\) 优化,以及特别的题目。 运算: 注意,矩阵有 \(+,-,*,pow\) 以及矩阵的逆等运算。本文讨论入门的 \(+,-,*,pow\) . 对于加法: \[ \left[ \begin{matrix} 1&3&5\\ 2&4&7\\ \end{matrix} \right]+ \left[ \begin{matrix} 2&9&7\\ 12&9&3\\ \end{matrix} \right] \] 即为: \[ \left[ \begin{matrix} 3&12&12\\ 14&13&10\\ \end{matrix} \right] \] 就是遵循按位相加的原则,减法同理。 注意矩阵的加减法必须是同行数同列数的矩阵。 对于乘法: 定义 \(C_{i,j}\) 是 \(A,B\) 两个矩阵乘完之后的矩阵对应的第 \(i\) 行第 \(j\) 列的元素。 规定 \(A\) 为 \(P*M\) 的矩阵, \(B\) 为 \(M*Q\) 的矩阵。 则有: \[C_{i,j}=\sum_{k=1}^{M}{A_{i,k}*B_{k,j}}\] 也可以简单理解为,对应行乘以对应列。 矩阵快速幂 就是一个矩阵的乘方。 注意,只有方阵才有乘方,即列数等于行数 \((n*n)\) 同样地,若求一个矩阵的 \(k\) 次方,可以和二进制快速幂一样

高数 矩阵的基本运算

旧城冷巷雨未停 提交于 2019-12-04 11:39:36
一、介绍 1、介绍。 矩阵的运算,本质上就是二维数组的运算。 2、公共代码。 /** * 打印二维数组 * * @param a 二维数组a */ public static void print ( double [][] a) { print(a, 5 , 0 ); } /** * 打印二维数组 * * @param a 二维数组a * @param precision 如果是浮点型的话,保留几位小数 */ public static void print ( int [][] a, int width, int precision) { String str = "%" + width + "d " ; for ( int i = 0 ; i < a.length; i++) { int [] aItem = a[i]; for ( int j = 0 ; j < aItem.length; j++) { System.out.print(String.format(str, aItem[j])); } System.out.println(); } } /** * 打印二维数组 * * @param a 二维数组a * @param precision 如果是浮点型的话,保留几位小数 */ public static void print ( double [][] a,

矩阵运算 [转]

两盒软妹~` 提交于 2019-12-03 20:08:51
原文地址: https://www.cnblogs.com/hanruyun/p/9620029.html 作者:子谦。 -------------------------------------------------------------------------------------------------------------------------------------------------------- 嗯,这玩意看着很难对吧,之前我还是这样想的。。直到看到了 斐波那契公约数 这道题 这道题一看我这种辣鸡就不会做啊,然后rqy告诉我这是傻逼题啊,我忽然就想起了以前听说过的矩阵乘。。然后懒惰的DDOSvoid大佬告诉我要做这道题,得先做 斐波那契数列 ,要做斐波那契数列,得先做 矩阵加速 ,要做矩阵加速,得先做 矩阵快速幂 。。于是,一个上午就这么过去了 回归正题 定义 什么是矩阵运算呢? 在理解这个问题前,我们先要知道什么是矩阵 百度百科给的定义如下 矩阵是一个按照长方阵列排列的复数或实数集合 复数实数什么的我们先不管,总之,矩阵就是一堆数,按照矩形排列形成的集合 那么,我们所需要记录的也就是它的长、宽以及矩阵中存储的元素 特殊的,长宽相等的矩阵我们定义它为方阵 当两个矩阵的长宽相等时,我们认为这两个矩阵为同型矩形 若矩阵为方阵,且对角线上的元素为1,其余均为0

矩阵

冷暖自知 提交于 2019-12-03 01:35:42
矩阵 矩阵运算 加法 数乘 乘法 转置 特殊矩阵 对角阵 单位阵 数量阵 上下三角阵 对称阵 反对称阵 正交阵 初等矩阵 行阶梯矩阵 行最简矩阵 伴随矩阵 矩阵 逆矩阵 转置 数乘 行列式 秩 可逆矩阵 求逆矩阵的方法 通过伴随矩阵(行列式好求时) 初等变化(行列式不好求时) 初等变换 初等矩阵 等价 矩阵的秩 子式 公式 分块矩阵 运算 来源: https://www.cnblogs.com/vergilwu/p/11769432.html

矩阵的基本运算

匿名 (未验证) 提交于 2019-12-03 00:21:02
一、矩阵的加法与减法    1、运算规则   设矩阵 , ,   则         简言之,两个矩阵相加减,即它们相同位置的元素相加减!    注意: 只有对于两个行数、列数分别相等的矩阵(即同型矩阵),加减法运算才有意义,即加减运算是可行的.   2、 运算性质 (假设运算都是可行的)   满足交换律和结合律   交换律  ;   结合律  . 二、矩阵与数的乘法   1、 运算规则    数 乘矩阵A,就是将数 乘矩阵A中的每一个元素,记为 或 .   特别地,称 称为 的负矩阵.   2、 运算性质   满足结合律和分配律   结合律: (λμ)A=λ(μA) ; (λ+μ)A =λA+μA .   分配律: λ (A+B)=λA+λB .    典型例题    例6.5.1  已知两个矩阵   满足矩阵方程 ,求未知矩阵 .    解  由已知条件知      三、矩阵与矩阵的乘法   1、 运算规则   设 , ,则A与B的乘积 是这样一个矩阵:   (1) 行数与(左矩阵)A相同,列数与(右矩阵)B相同,即 .   (2) C的第 行第 列的元素 由A的第 行元素与B的第 列元素对应相乘,再取乘积之和.    典型例题    例6.5.2  设矩阵   计算    解   是 的矩阵.设它为              想一想 :设列矩阵 ,行矩阵 , 和

BLAS快速入门

匿名 (未验证) 提交于 2019-12-03 00:08:02
一.简介   BLAS【Basic Linear Algebra Subprograms,基础线性代数程序集】是一个应用程序接口【API】标准,用于规范发布基础基础线性代数操作的数值库【常用于向量或矩阵计算】。该程序集最初发布于1979年,并用于创建更大的数值程序包【例如:LAPACK】。在高性能计算领域,BLAS被广泛使用。 二.特点   1.BLAS按照功能被分为三个级别:     Level1:向量-向量计算,比如:点积【dot】,向量加法和乘法【axpy】,绝对值的和【asum】等。     Level2:向量-矩阵计算,比如:矩阵向量乘法【gemv】。     Level3:矩阵-矩阵计算,比如:矩阵乘法【gemm】。   2.每一种函数操作都区分不同的数据类型【单精度、双精度、复数】,比如:矩阵乘法分为sgemm【单精度一般矩阵乘法】、dsymm【双精度对称矩阵乘法】、zhemm【双精度复数埃米特矩阵乘法】。之所以要分这么多种,主要是针对每种不同类型的矩阵都要分别设计专门的算法,使得计算性能最优。 三.基本运算函数    来源:博客园 作者: 云山之巅 链接:https://www.cnblogs.com/yszd/p/11540497.html

DirectX:Matrix

匿名 (未验证) 提交于 2019-12-03 00:00:02
Tag DirectX下的博客主要用于记录DirectX的学习过程,主要参考《DirectX 12 3D 游戏实战开发》。 Matrix in DirectX 3D数学最重要的就是描述几何体的变换,其中肯定会涉及到矩阵。本篇的主要内容即是DirectXMath库中与矩阵相关的部分。 首先温习矩阵运算的几个特点。 矩阵加法满足交换律和结合律 矩阵A、B相乘有意义,当且仅当A的列数与B的行数相同 矩阵乘法一般不满足交换律 标量乘法对矩阵加法、矩阵乘法对标量加法满足分配律 向量与矩阵相乘实际上是一种线性组合 单位矩阵即主对角线均为一、其余为零的方阵 方阵可逆当且仅当方阵的行列式不等于零 一个方阵关于i行j列的余子式即该方阵去掉第i行和第j列剩下的部分构成的方阵,代数余子式即在余子式的基础上乘上-1的i+j次方 把方阵关于i行j列的余子式都放到对应的行和列上构成的矩阵称为方阵的代数余子式矩阵,该方阵的伴随矩阵即为代数余子式矩阵的转置 方阵的逆矩阵为该方阵的伴随矩阵除以其行列式 在3D图形学中,通常最多涉及到4维的内容,对应4维向量和4*4的矩阵。DirectXMath库提供了 XMMATRIX 类型来表示矩阵。 #if (defined(_M_IX86) || defined(_M_X64) || defined(_M_ARM)) && defined(_XM_NO_INTRINSICS)

tf矩阵基础

匿名 (未验证) 提交于 2019-12-02 23:57:01
一、Placeholder Tensorflow的设计理念称之为计算流图,在编写程序时,首先构筑整个系统的graph,代码并不会直接生效,这一点和python的其他数值计算库(如Numpy等)不同,graph为静态的,类似于docker中的镜像。然后,在实际的运行时,启动一个session,程序才会真正的运行。这样做的好处就是:避免反复地切换底层程序实际运行的上下文,tensorflow帮你优化整个系统的代码。我们知道,很多python程序的底层为C语言或者其他语言,执行一行脚本,就要切换一次,是有成本的,tensorflow通过计算流图的方式,帮你优化整个session需要执行的代码,还是很有优势的。 所以placeholder()函数是在神经网络构建graph的时候在模型中的占位,此时并没有把要输入的数据传入模型,它只会分配必要的内存。等建立session,在会话中,运行模型的时候通过feed_dict()函数向占位符喂入数据。 import tensorflow as tfdata1 = tf . placeholder ( tf . float32 )     #placeholder占位符data2 = tf.placeholder(tf.float32)dataAdd = tf.add(data1,data2)with tf.Session() as sess: