1. 伴随矩阵
1.1 二阶矩阵的伴随矩阵
主对角线换位,副对角线编号,例如
[[1, 2]
[3, 4]]*
==>
[[4, -2]
[-3 1]]
1.2 N阶矩阵的伴随矩阵
代数余子式方法
1.3 Numpy的做法 (Numpy之前版本可能直接支持)
linala.det(A) * linalg.inv(A)
A-1 = 1 / |A| * A*
2. 逆矩阵(方阵)
2.1 Numpy的做法
linalg.inv(A)
2.2 对于方阵的互逆
AA-1=A-1A=E,如果A有逆矩阵为A-1
3. 行列式的值
3.1 算法
from numpy import * mat = [[1, 2, 3], [4, 5, 9], [4, 2, 2]] m = len(mat) print m print linalg.det(mat) s = 0 t = 0 while t < m: p = 1 q = 1 i = 0 while i < m: j = (i + t) % m; k = (m + t - i) % m; p *= mat[i][j] q *= mat[i][k] i += 1 t += 1 s += (p - q) print s
3.2 Numpy的做法
linalg.det(a)
3.3 判断是否为奇异矩阵的依据
A为奇异矩阵,那么AX=0有无穷多的解,或者无解。
A不为奇异矩阵,那么AX=0有唯一0解,AX=b有唯一解。
4 矩阵的转置
4.1 Numpy的做法
numpy.transpose(a)
4.2 Python的做法
mat = [[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12]] print map(list, zip(*mat))
5. 矩阵的稚
linalg.matrix_rank(m)