7分钟
lstsq
lstsq比solve更一般化,它不要求矩阵 A 是方阵。 它找到一组解 x,使得 ||b-Ax|| 最小,我们称得到的结果为最小二乘解。
scipy.linalg.lstsq(a, b, cond=None, overwrite_a=False, overwrite_b=False,
check_finite=True, lapack_driver=None)a:为矩阵,形状为(M,N)b:一维向量,形状为(M,)。它求解的是线性方程组 Ax=b。如果有 k 个线性方程组要求解,且a,相同,则b的形状为(M,k)cond:一个浮点数,去掉最小的一些特征值。当特征值小于cond * largest_singular_value时,该特征值认为是零overwrite_a:一个布尔值,指定是否将结果写到a的存储区。overwrite_b:一个布尔值,指定是否将结果写到b的存储区。check_finite:如果为True,则检测输入中是否有nan或者inflapack_driver:一个字符串,指定求解算法。可以为:'gelsd'/'gelsy'/'gelss'。默认的'gelsd'效果就很好,但是在许多问题上'gelsy'效果更好。
返回值:
x:最小二乘解,形状和b相同residures:残差。如果 rank(A) 大于N或者小于M,或者使用了gelsy,则是个空数组;如果b是一维的,则它的形状是(1,);如果b是二维的,则形状为(K,)rank:返回矩阵a的秩s:a的奇异值。如果使用gelsy,则返回None
学员评价