昨晚算一道线性代数的题目的时候,算了半天,答案错了。验算了一下,觉得错误应该是出在矩阵求逆的地方。但是真的求逆太慢了,(主要是头晕),那怎么办呢?

突然想起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这么直观。就这样吧哈哈哈哈,千万不要不经思考就拿这个代码来完成线代作业啊哈哈哈哈。数学作业还是要自己完成的

你也可能喜欢

发表评论