线性代数教程之一——矩阵乘法计算、理解及代码实现
来源:互联网 发布:淘宝详情页图片拉长 编辑:程序博客网 时间:2024/06/06 09:27
参考了《深度学习》巨作,以下是矩阵篇的目录。
1 矩阵的乘法
设矩阵A为m×n矩阵,B为n×p矩阵,则它们的乘法公式为:
相关代码实现:
# 矩阵滴乘法运算# 注意:需要传入np.matrix类型数据def Matrix_Mul(a,b): if a.shape[1] != b.shape[0]: print('这两个矩阵无法做乘法,请检查左边矩阵的列数是否与右边矩阵的行数相等!') else: c = np.zeros(a.shape[0]*b.shape[1]).reshape(a.shape[0],b.shape[1]) for i in range(a.shape[0]): for j in range(b.shape[1]): for k in range(a.shape[1]): c[i,j] = c[i,j] + a[i,k]*b[k,j] return cimport numpy as npa = np.matrix([[2,3,4],[1,0,5]])b = np.matrix([1,0,1]).TMatrix_Mul(a=a,b=b)
输出结果:
当然,你可以直接用a*b计算出来一样的结果,我这里只是为了单纯的自己实现一下矩阵的乘法运算。
2 矩阵与向量乘法运算的三种等价写法
第一种
第二种
第三种
3、矩阵乘法的理解
矩阵乘法对应了一个变换,是把任意一个向量变成另一个方向或长度的新向量。在这个变化过程中,原向量主要发生旋转、伸缩的变化。如果矩阵对某些向量只发生伸缩变换,不产生旋转效果,那么这些向量就称为这个矩阵的特征向量,伸缩的比例就是特征值。
比如M矩阵变换:
它对应的线性变换是下面的形式形式:
那么如果矩阵M不是对称的,比如
它所描述的变换如下图所示:
这其实是在平面上对一个轴进行的拉伸变换【如蓝色箭头所示】,在图中蓝色箭头是一个最主要的变化方向。变化方向可能有不止一个,但如果我们想要描述好一个变换,那我们就描述好这个变换主要的变化方向就好了。
阅读全文
0 0
- 线性代数教程之一——矩阵乘法计算、理解及代码实现
- 线性代数3——矩阵乘法
- 3D数学与线性代数学习笔记之 ——深刻理解矩阵乘法
- 漫步线性代数四——矩阵符号和矩阵乘法
- 线性代数——矩阵乘积的代码实现
- 线性代数导论3——乘法与逆矩阵
- 线性代数导论3——乘法与逆矩阵
- 线性代数导论3——乘法与逆矩阵
- Python 线性代数 矩阵乘法
- 线性代数 矩阵乘法
- C++实现的线性代数矩阵计算
- MapReduce实现大矩阵乘法及代码实现
- MapReduce实现大矩阵乘法及代码实现
- 线性代数·矩阵的加法减法乘法运算简单实现
- 机器学习精简教程之一——线性代数知识
- 数学基础-线性代数-矩阵乘法
- 线性代数-矩阵乘法的推导
- 线性代数:乘法和逆矩阵
- linux 下常用命令
- spring boot优雅的使用mybatis
- 安卓复习大纲
- php二维数组排序
- 2017ACM/ICPC广西邀请赛-重现赛
- 线性代数教程之一——矩阵乘法计算、理解及代码实现
- 为什么说jsp是servlet?JSP是如何转换成servlet的?
- 欢迎使用CSDN-markdown编辑器
- CentOS7安装phpMyAdmin
- PHP配置文件详解php.ini
- spring boot(五):spring data jpa的使用
- 欢迎使用CSDN-markdown编辑器
- 简单集合实现二(LinkedList的实现以及与ArrayList的比较)
- Java并发编程:volatile关键字解析[转载]