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,)。矩阵a
的rank
是一个整数。a
的奇异值是s
。- 返回类型:
警告
此函数调用一个或多个 cuSOLVER 例程,如果输入条件不满足,可能会产生无效结果。为了检测这些无效结果,您可以将 linalg 配置设置为
cupyx.errstate()
或cupyx.seterr()
中非 ignore 的值。另请参阅