初等变换
a = np.array([[1,2,3],
[2,3,-5],
[4,7,1]])
b = np.array([[3,2,0,5,0],[3,-2,3,6,-1],[2,0,1,5,-3],[1,6,-4,-1,4]])
#计算秩
r1 = np.linalg.matrix_rank(a)
r2 = np.linalg.matrix_rank(b)
print(r1)
print(r2)
2
3
a = np.array([[3,-2,0,-1],[0,2,2,1],[1,-2,-3,-2],[0,1,2,1]])
print(np.linalg.inv(a))
print(np.linalg.det(a))
print(np.linalg.matrix_rank(a))
[[ 1. 1. -2. -4.]
[ 0. 1. 0. -1.]
[ -1. -1. 3. 6.]
[ 2. 1. -6. -10.]]
1.0000000000000004
4
a = np.array([[3,-2,0,-1],[0,2,2,1],[1,-2,-3,-2],[0,1,2,1]])
print(np.linalg.inv(a))
print(np.linalg.det(a))
print(np.linalg.matrix_rank(a))
[[ 1. 1. -2. -4.]
[ 0. 1. 0. -1.]
[ -1. -1. 3. 6.]
[ 2. 1. -6. -10.]]
1.0000000000000004
4
a = np.array([[-1,1,0],[-4,3,0],[1,0,2]])
print(np.linalg.eigvals(a))
print(np.linalg.eig(a))
[2. 1. 1.]
(array([2., 1., 1.]), array([[ 0. , 0.40824829, 0.40824829],
[ 0. , 0.81649658, 0.81649658],
[ 1. , -0.40824829, -0.40824829]]))
a = np.array([[-2,1,1],[0,2,0],[-4,1,3]])
print(np.linalg.eigvals(a))
#对角化
np.diag(np.linalg.eigvals(a))