task 9 线性代数
矩阵运算
函数 | 注释 | |
---|---|---|
矩阵乘法 | numpy.dot() | |
特征值 | numpy.linalg.eigvals() | |
特征向量 | a,b = numpy.linalg.eig() | 返回特征值和特征向量 |
奇异值分解(SVD) | u, s, v =numpy.linalg.svd(a,<br />full_matrices=True,<br />compute_uv=True,<br />hermitian=False) | - a 是一个形如(M,N)矩阵 - full_matrices 的取值是为False或者True,默认值为True,这时u 的大小为(M,M),v 的大小为(N,N)。否则u 的大小为(M,K),v 的大小为(K,N) ,K=min(M,N)。 - compute_uv 的取值是为False或者True,默认值为True,表示计算u,s,v 。为False的时候只计算s 。 总共有三个返回值u,s,v ,u 大小为(M,M),s 大小为(M,N),v 大小为(N,N),a = u*s*v 。 其中s 是对矩阵a 的奇异值分解。s 除了对角元素不为0 ,其他元素都为0 ,并且对角元素从大到小排列。s 中有n 个奇异值,一般排在后面的比较接近0,所以仅保留比较大的r 个奇异值。 |
QR分解 | q,r = numpy.linalg.qr(a, mode='reduced') | - a 是一个(M, N)的待分解矩阵。 - mode = reduced :返回(M, N)的列向量两两正交的矩阵q ,和(N, N)的三角阵r (Reduced QR分解)。 - mode = complete :返回(M, M)的正交矩阵q ,和(M, N)的三角阵r (Full QR分解) |
Cholesky分解 | L = numpy.linalg.cholesky(a) | 返回正定矩阵a 的 Cholesky 分解a = L*L.T ,其中L 是下三角 |
范数 | numpy.linalg.norm(x, ord=None, axis=None, keepdims=False) | 根据ord 参数的不同,计算不同的范数 |
行列式 | numpy.linalg.det(a) | |
秩 | numpy.linalg.matrix_rank(M, tol=None, hermitian=False) | |
迹 | numpy.trace(a, offset=0, axis1=0, axis2=1, dtype=None, out=None) | |
逆 | numpy.linalg.inv(a) | |
求解线性方程组 | numpy.linalg.solve(a, b) |