gpt4 book ai didi

python - numpy.linalg.lstsq 和 scipy.linalg.lstsq 有什么区别?

转载 作者:IT老高 更新时间:2023-10-28 22:15:26 28 4
gpt4 key购买 nike

lstsq 尝试解决 Ax=b 最小化 |b - Ax|。 scipy 和 numpy 都提供了一个具有非常相似接口(interface)的 linalg.lstsq 函数。文档没有提到使用哪种算法,scipy.linalg.lstsq 也没有。也不为numpy.linalg.lstsq ,但它似乎做的几乎一样。

scipy.linalg.lstsq 的实现似乎有所不同和 numpy.linalg.lstsq .两者似乎都使用 LAPACK,两种算法似乎都使用 SVD。

区别在哪里?我应该使用哪一个?

注意:不要将 linalg.lstsq 与同样可以解决非线性优化问题的 scipy.optimize.leastsq 混淆。

最佳答案

如果我正确阅读了源代码(Numpy 1.8.2,Scipy 0.14.1), numpy.linalg.lstsq() 使用 LAPACK 例程 xGELSDscipy.linalg.lstsq() 使用 xGELSS.

LAPACK Manual Sec. 2.4状态

The subroutine xGELSD is significantly faster than its older counterpart xGELSS, especially for large problems, but may require somewhat more workspace depending on the matrix dimensions.

这意味着 Numpy 速度更快但使用更多内存。

2017 年 8 月更新:

Scipy 现在默认使用 xGELSD https://docs.scipy.org/doc/scipy/reference/generated/scipy.linalg.lstsq.html

关于python - numpy.linalg.lstsq 和 scipy.linalg.lstsq 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29372559/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com