矩阵运算的重新理解
2016-02-01 22:27
387 查看
矩阵分块
对矩阵按列分块,再进行线性组合:Ax=(α1,α2,…,αn)⋅⎡⎣⎢⎢⎢⎢x1x2⋮xn⎤⎦⎥⎥⎥⎥=x1α1+x2α2+⋯+xnαn
所以当 x=(1,0,…,0)T 以及其他某一位元素为1,其他元素为0的向量,左乘以某一矩阵 A 时,矩阵向量乘法的结果在于对矩阵某一列的选择。
矩阵按行分块:
Ax=⎡⎣⎢⎢⎢⎢⎢βT1βT2⋮βTm⎤⎦⎥⎥⎥⎥⎥⋅x=⎡⎣⎢⎢⎢⎢⎢βT1xβT2x⋮βTmx⎤⎦⎥⎥⎥⎥⎥
或者按行分块的形式如下:
xTA=[x1,x2,…,xm]⎡⎣⎢⎢⎢⎢⎢βT1βT2⋮βTm⎤⎦⎥⎥⎥⎥⎥=x1βT1+x2βT2+⋯+xmβTm
注:矩阵右乘一个列向量,是对矩阵的列的线性组合,得一列;矩阵左乘一个行向量是对矩阵行的线性组合,得一行。
理解高斯消元
有了上文矩阵向量的乘法运算的从线性组合的观点的理解,我们将很容易进行下下式的计算:[1,2,3]⋅⎡⎣⎢1,2,34,5,67,8,9⎤⎦⎥=1⋅[1,2,3]+2⋅[4,5,6]+3⋅[7,8,9]
import numpy if __name__ == '__main__': A = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) x = np.array([1, 2, 3]) m, n = A.shape b = np.zeros(n).astype(int) for i in range(m): b += x[i]*A[i] print(b) # [30 36 42] print(x.dot) # [30 36 42]
矩阵右乘一个列向量同理可得,不再赘述。
相关文章推荐
- Codeforces Round #311 (Div. 2)(A)贪心
- ubuntu创建快捷方式
- hadoop_7 : MapReduce续
- grep语法和正则表达式
- python学习笔记Day3
- JavaScript 使用
- FTP服务器架设(2)vsftpd 安装
- Win7系统禁止生成Thumbs.db缓存文件的方法
- 《笨办法学Python》 第30课手记
- LoadRunner监控Linux与Windows方法
- 从头认识Spring-1.13 注入properties与null
- sql语法记录 to_date函数和oracle连接写法
- perl weixin 发消息接口 webwxsendmsg
- SQLServer数据库插入记录,获取自增长的主键的值
- Xamarin.Forms之Effects的使用
- 【解题报告】2015ACM/ICPC亚洲区上海站
- 我焦躁,并不只是心里承受,还是因为我上面担着。
- Js As Ordinal
- SMACH(四)----状态State类的实现和中文注释
- android的m、mm、mmm编译命令的使用