昨晚算一道线性代数的题目的时候,算了半天,答案错了。验算了一下,觉得错误应该是出在矩阵求逆的地方。但是真的求逆太慢了,(主要是头晕),那怎么办呢?
突然想起numpy这个超强大的科学计算库,于是乎就用几行代码写了一个矩阵求逆的程序。
import numpy as np
import fractions
a = np.array([[1, 1, 1], [0, 0.5, -2], [0, 1, 1]])
#设置以分数形式显示
np.set_printoptions(formatter={'all': lambda x: str(fractions.Fraction(x).limit_denominator())})
print('原矩阵:\n')
print(a)
print('-----------')
print('逆矩阵:\n')
print(np.linalg.inv(a))
输出结果:
原矩阵:
[[1 1 1]
[0 1/2 -2]
[0 1 1]]
-----------
逆矩阵:
[[1 0 -1]
[0 2/5 4/5]
[0 -2/5 1/5]]
我输入的是一个3*3的矩阵,上面这串代码大伙儿应该是能看懂的我相信。毕竟python这么直观。就这样吧哈哈哈哈,千万不要不经思考就拿这个代码来完成线代作业啊哈哈哈哈。数学作业还是要自己完成的