Linalg代数库的基本使用

# n阶方阵的行列式计算
matrix = np.mat([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
print "det(A):", np.linalg.det(matrix)

输出结果:

det(A): 6.66133814775e-16

矩阵的逆

# 矩阵的逆
invA = np.linalg.inv(matrix)
print "inv(A):", invA

输出结果:

inv(A): [[ -4.50359963e+15   9.00719925e+15  -4.50359963e+15]
 [  9.00719925e+15  -1.80143985e+16   9.00719925e+15]
 [ -4.50359963e+15   9.00719925e+15  -4.50359963e+15]]

矩阵的对称

at = matrix.T
print at
print at * matrix

输出结果:

[[1 4 7]
 [2 5 8]
 [3 6 9]]
[[ 66  78  90]
 [ 78  93 108]
 [ 90 108 126]]

矩阵的秩

print np.linalg.matrix_rank(matrix)

输出结果:2

可逆矩阵求解

array = [1, 2, 1]
s = np.linalg.solve(matrix, array)
print "Solution\n:", s

输出结果:

Solution
: [  9.00719925e+15  -1.80143985e+16   9.00719925e+15]

完整代码

# -*- coding: utf-8 -*-
import numpy as np
# n阶方阵的行列式计算
matrix = np.mat([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
print "det(A):", np.linalg.det(matrix)
# 矩阵的逆
invA = np.linalg.inv(matrix)
print "inv(A):", invA
# 矩阵的对称
at = matrix.T
print at
print at * matrix
#矩阵的秩
print np.linalg.matrix_rank(matrix)
#可逆矩阵求解
array = [1, 2, 1]
s = np.linalg.solve(matrix, array)
print "Solution\n:", s

参考资料

本文版权归作者所有,禁止一切形式的转载,复制等操作
赞赏

微信赞赏支付宝赞赏

发表评论

电子邮件地址不会被公开。 必填项已用*标注