1.矩阵的幂计算(设计思想:递归)
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import numpy as np
def matrixPow(Matrix,n):if(type(Matrix)==list):Matrix=np.array(Matrix)if(n==1):return Matrixelse:return np.matmul(Matrix,matrixPow(Matrix,n-1))
2.求逆矩阵/伴随矩阵
设A是数域上的一个n阶方阵,若在相同数域上存在另一个n阶矩阵B,使得: AB=BA=E。 则我们称B是A的逆矩阵,而A则被称为可逆矩阵。当矩阵A的行列式|A|不等于0时才存在可逆矩阵。
import numpy as np
A = np.array([[1, -2, 1], [0, 2, -1], [1, 1, -2]])
#np.linalg.det求方阵的行列式(如果行列式不等于0才存在可逆矩阵),使用linalg.inv求得方阵的逆矩阵
if np.linalg.det(A):B = np.linalg.inv(A)
print(B)#伴随矩阵C = np.linalg.det(A) * np.linalg.inv(A)
3.矩阵的秩
import numpy as np
A = np.array([[1, -2, 1], [0, 2, -1], [1, 1, -2]])
#返回矩阵的秩
B = np.linalg.matrix_rank(A)
print(B)
4.单位矩阵&反向单位矩阵
# 单位矩阵,type是ndarray
A = np.eye(3)
"""
[[1. 0. 0.][0. 1. 0.][0. 0. 1.]]
"""
print(A)
# 自定义:斜对角矩阵(可构建数量矩阵)aE
B = np.eye(3)*3.14
"""
[[3.14 0. 0. ][0. 3.14 0. ][0. 0. 3.14]]
"""
print(B)
# 反向单位矩阵
C = np.fliplr(A)
"""
[[0. 0. 1.][0. 1. 0.][1. 0. 0.]]
"""
print(C)
5.矩阵乘法
矩阵乘法的相关数学定义参考
import numpy as npdef matrixDot(p1, p2):return np.dot(p1, p2)