cupy.linalg.lstsq#

cupy.linalg.lstsq(a, b, rcond='warn')[源码]#

返回线性矩阵方程的最小二乘解。

通过计算使欧几里得2范数 || b - a x ||^2 最小化的向量 x 来求解方程 a x = b。该方程可能是欠定的、适定的或超定的(即,a 的线性独立行数可以小于、等于或大于其线性独立列数)。如果 a 是方阵且满秩,则 x(忽略舍入误差)是方程的“精确”解。

参数
  • a (cupy.ndarray) – “系数”矩阵,维度为 (M, N)

  • b (cupy.ndarray) – “因变量”值,维度为 (M,)(M, K)

  • rcond (float) – 用于小奇异值的截止参数。为了稳定性,它计算最大的奇异值 s,并将所有小于 s 的奇异值设置为零。

返回值

一个元组 (x, residuals, rank, s)。请注意,x 是最小二乘解,其形状取决于 b 是否为二维,可能为 (N,)(N, K)residuals 的和是 b - a*x 中每列的欧几里得2范数的平方。如果 a 的秩小于 N 或 M <= N,residuals 是一个空数组;但如果 b 是一维的,则其形状为 (1,),否则形状为 (K,)。矩阵 arank 是一个整数。a 的奇异值是 s

返回类型

tuple

警告

此函数调用一个或多个 cuSOLVER 例程,如果输入条件不满足,可能会产生无效结果。为了检测这些无效结果,您可以将 linalg 配置设置为 cupyx.errstate()cupyx.seterr() 中非 ignore 的值。

另请参阅

numpy.linalg.lstsq()