10.行列式
🚩 行列式其实在机器学习中用的并不多,一个矩阵必须是方阵,才能计算它的行列式
行列式是把矩阵变成一个标量
import numpy as np A = np.array([[1,3],[2,5]]) display(A) print('矩阵A的行列式是:\n',np.linalg.det(A))
行列式在求解,逆矩阵的过程中,起到了作用,行列式 不为0,才可以求解逆矩阵!
import numpy as np A = np.array([[1,3],[2,6]]) display(A) print('矩阵A的行列式是:\n',np.linalg.det(A)) # 无法求解行列式,报错信息:LinAlgError: Singular matrix print('矩阵A的逆矩阵为:\n',np.linalg.inv(A))
11.伴随矩阵
11.1 代数余子式
🚩 代数余子式定义:
代数余子式计算
计算过程如下:
11.2 伴随矩阵定义
🚩 设有一矩阵A:
称为矩阵 A 的 伴随矩阵
11.3 伴随矩阵性质
11.4 伴随矩阵与逆矩阵
import numpy as np # 声明矩阵 A = np.array([ [1, 2, 3], [2, 2, 1], [3, 4, 3]]) A_bs = [] # 伴随矩阵 n = 3 # A方阵的行、列数量 for i in range(n): for j in range(n): row = [0, 1, 2] # 行索引 col = [0, 1, 2] # 列索引 row.remove(i) # 去除行 col.remove(j) # 去除列 # 代数余子式 A_ij = A[np.ix_(row, col)] A_bs.append(((-1) ** (i + j)) * np.linalg.det(A_ij)) A_bs = np.array(A_bs).reshape(3, 3).T print('根据伴随矩阵求逆矩阵:\n', A_bs / np.linalg.det(A)) print('用NumPy模块求逆矩阵:\n', np.linalg.inv(A))