---
title: linalg.lstsq
description: "返回线性矩阵方程的最小二乘解。"
url: https://www.hikunpeng.com/document/detail/zh/kunpenghpcs/hpckit/devg/kunpengaccel_kml_1117.html
sourcePath: /source/zh/kunpenghpcs/hpckit/devg/kunpengaccel_kml_1117.html
indexId: 5ce75a86004981c760c1f5c97807261c6723c8f799f36c1211f9d37f9418e08861
---
# linalg.lstsq

#### 功能描述

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

该方程可能未确定、良好或过度确定（即a的线性独立行数可以小于、等于或大于其线性独立列数）。如果a是方阵且为满秩，则x（但对于舍入误差）是等式的“精确”解。否则，x最小化欧几里得2范数。如果有多个最小化解，则返回具有最小2范数的解。


#### 必选输入参数

| 参数名 | 类型 | 说明 |
| --- | --- | --- |
| a | (M, N) array\_like | 系数矩阵。 |
| b | {(M,), (M, K)} array\_like | 纵轴或因变量值。如果b是二维的，则为b的每个K列计算最小二乘解。 |


#### 可选输入参数

| 参数名 | 类型 | 默认值 | 说明 |
| --- | --- | --- | --- |
| rcond | float | None | a 的小奇异值的截止比率。为了确定秩，当奇异值小于 rcond 乘以 a 的最大奇异值时，将它们视为零。 |


#### 返回数据

| 名称 | 类型 | 说明 |
| --- | --- | --- |
| x | {(N,),(N,K)} ndarray | 最小二乘解。如果b是二维的，则解在x的K列中。 |
| residuals | {(1,), (K,), (0,)} ndarray | 平方残差之和：b中每列的平方欧几里得2范数\-a @ x。如果a的秩是<N或M <= N，这是一个空数组。如果b是一维的，这是一个（1,）形状数组。否则形状是（K，）。 |
| rank | int | 矩阵a的秩。 |
| s | (min(M, N),) ndarray | a的奇异值。 |


#### 示例

```
>>> import numpy as np
>>> # y = mx + c
>>> x = np.array([0,1,2,3])
>>> y = np.array([-1,0.2,0.9,2.1])
>>> 
>>> # 令 y = Ap, 其中 A = [[x1]], p = [[m], [c]]
>>> A = np.vstack([x, np.ones(len(x))]).T
>>> A
array([[0., 1.],
       [1., 1.],
       [2., 1.],
       [3., 1.]])
>>> 
>>> m, c = np.linalg.lstsq(A, y, rcond=None)[0]
>>> m, c
(1.0000000000000002, -0.9499999999999996)
>>>
```
