maxframe.tensor.linalg.lstsq#
- maxframe.tensor.linalg.lstsq(a, b, rcond=None)[源代码]#
返回线性矩阵方程的最小二乘解。
计算近似求解方程
a @ x = b的向量 x。该方程可能是欠定、适定或超定的(即矩阵 a 的线性无关行数可以小于、等于或大于其线性无关列数)。如果 a 是方阵且满秩,则 x`(忽略舍入误差)是该方程的“精确”解。否则,`x 会最小化欧几里得 2-范数 \(||b - ax||\)。如果有多个最小化解,则返回具有最小 2-范数 \(||x||\) 的解。- 参数:
a ((M, N) array_like) -- “系数”矩阵。
b ({(M,), (M, K)} array_like) -- 纵坐标或“因变量”值。如果 b 是二维的,则对 b 的每个 K 列计算最小二乘解。
rcond (float, optional) -- 用于判断 a 的小奇异值的截断比。在确定秩时,如果奇异值小于 a 的最大奇异值乘以 rcond,则将其视为零。默认值为机器精度乘以
max(M, N)。传递-1将使用机器精度。
- 返回:
x ({(N,), (N, K)} ndarray) -- 最小二乘解。如果 b 是二维的,则解在 x 的 K 列中。
residuals ({(1,), (K,), (0,)} ndarray) -- 残差平方和:对于
b - a @ x中的每一列,计算其平方欧几里得 2-范数。如果 a 的秩 < N 或 M <= N,则此为一个空数组。如果 b 是一维的,则形状为 (1,)。否则形状为 (K,)。rank (int) -- 矩阵 a 的秩。
s ((min(M, N),) ndarray) -- 矩阵 a 的奇异值。
- 抛出:
LinAlgError -- 如果计算不收敛。
备注
如果 b 是矩阵,则所有数组结果都以矩阵形式返回。