检查numpy.linalg.lstsq找到收敛的速度有多快

时间:2012-07-19 19:11:49

标签: numpy

我有一个关于NumPy模块linalg.lstsq(a,b)的问题。有没有可能检查这种方法找到收敛的速度有多快?我的意思是一些特征表明计算会有多快收敛? 谢谢你提前了解脑风暴。

1 个答案:

答案 0 :(得分:5)

Numpy函数linalg.lstsq使用奇异值分解(SVD)来解决最小二乘问题。因此,如果您的矩阵An n,则需要n^3个触发器。

更确切地说,我认为该函数使用Householder Bidiagonalization来计算SVD,因此,如果您的矩阵是m n,则复杂性将为O(max(m, n) * min(m, n)^2)