【发布时间】:2015-07-17 23:00:35
【问题描述】:
是否可以在 Python 中做更高精度的矩阵指数?我的意思是获得比双浮点数更高的精度。
我有以下测试代码:
import sympy
from sympy import N
import random
n = 100
#A = sympy.Matrix([[random.random(),random.random()],
# [random.random(),random.random()]])
A = sympy.Matrix([[1,2],[3,4]])
dlt = 1000
e1 = A.exp()
e1 = N(e1, n)
ee2 = (A/dlt).exp()
ee2 = N(ee2, n)
e2 = sympy.eye(2)
for i in range(dlt):
e2 = e2*ee2
print(N(max(e1-e2)))
理论上,最终结果应该为零。使用 scipy,误差约为 1e-14。
通过sympy,如果矩阵像[[1,2],[3,4]],前面代码的输出大约是1e-98。然而,对于随机矩阵,误差在 1e-14 左右。 随机矩阵是否有可能得到 1e-100 这样的结果?
速度不是问题。
【问题讨论】: