在矩阵基本运算的基础之上,Numpy的linalg库可以满足大多数的线性代数运算,本节所列的矩阵公式列表和代码如下:
矩阵的行列式
矩阵的逆
矩阵的对称
矩阵的秩
可逆矩阵求解线性方程组
读者可根据自己需求有选择的学习。因使用矢量编程的方法,矩阵的基本运算得到了较大的简化。
1.矩阵的行列式: from numpy import * # n阶方阵的行列式运算 A = mat( [[1,2,4,5,7,],[9,12,11,8,2,],[6,4,3,2,1,],[9,1,3,4,5],[0,2,3,4,1]]) print "det(A):",linalg.det(A); # 方阵的行列式 输出结果: det(A): -812.0 2.矩阵的逆: from numpy import * A = mat( [[1,2,4,5,7,],[9,12,11,8,2,],[6,4,3,2,1,],[9,1,3,4,5],[0,2,3,4,1]]) invA = linalg.inv(A) # 矩阵的逆 print "inv(A):",invA 输出结果: inv(A): [[ -7.14285714e-02 -1.23152709e-02 5.29556650e-02 9.60591133e-02 -8.62068966e-03] [ 2.14285714e-01 -3.76847291e-01 1.22044335e+00 -4.60591133e-01 3.36206897e-01] [ -2.14285714e-01 8.25123153e-01 -2.04802956e+00 5.64039409e-01 -9.22413793e-01] [ 1.66901077e-16 -4.13793103e-01 8.79310345e-01 -1.72413793e-01 8.10344828e-01] [ 2.14285714e-01 -6.65024631e-02 1.85960591e-01 -8.12807882e-02 -1.46551724e-01]] 3.矩阵的对称: from numpy import * A = mat([[1,2,4,5,7,],[9,12,11,8,2,],[6,4,3,2,1,],[9,1,3,4,5],[0,2,3,4,1]]) AT = A.T #矩阵的对称 print A*AT 输出结果: [[ 95 131 43 78 43] [131 414 153 168 91] [ 43 153 66 80 26] [ 78 168 80 132 32] [ 43 91 26 32 30]] 4.矩阵的秩: from numpy import * A = mat([[1,2,4,5,7,],[9,12,11,8,2,],[6,4,3,2,1,],[9,1,3,4,5],[0,2,3,4,1]]) print linalg.matrix_rank(A) #矩阵的秩 输出结果: 5 5.可逆矩阵求解: from numpy import * A = mat([[1,2,4,5,7,],[9,12,11,8,2,],[6,4,3,2,1,],[9,1,3,4,5],[0,2,3,4,1]]) b = [1,0,1,0,1] S = linalg.solve(A,T(b)) print S 输出结果: [-0.0270936 1.77093596 -3.18472906 1.68965517 0.25369458]