LeastSquares

LeastSquares[m,b]

求矩阵方程式 m.x==b 的可解决线性最小二乘问题的 x.

LeastSquares[a,b]

求解数组方程 a.x==b 的线性最小二乘问题的 x.

更多信息和选项

  • LeastSquares[m,b] 给出一个向量 x,它最小化 Norm[m.x-b].
  • 只有当 Length[x]==MatrixRank[m] 时,向量 x 被最小化唯一确定.
  • 自变量 b 可以为一个矩阵,在这种情况下,最小二乘最小化取决于 b 中的每列,它是最小化 Norm[m.x-b,"Frobenius"]x.
  • LeastSquares 可以处理 SparseArray 对象,以及数值矩阵和符号矩阵.
  • 对于一个 n1××nk×m 的数组 a 和一个 n1××nk×d1××dl 的数组 bLeastSquares[a,b] 给出 m×d1××dl 数组 x,这最小化了 Norm[Flatten[a.x-b]].
  • 可用选项 Methodmethod 指定 LeastSquares 使用的方法. method 的可能设置包括:
  • Automatic自动选择方法
    "Direct"对于稠密或稀疏矩阵使用直接求解的方法
    "IterativeRefinement"使用迭代细化来获取稠密矩阵的更好的解
    "LSQR"对稠密或稀疏机器数字矩阵使用 LSQR 迭代法
    "Krylov"对稀疏机器数字矩阵使用迭代法

范例

打开所有单元关闭所有单元

基本范例  (2)

求解一个简单的最小平方问题:

求最小化 TemplateBox[{{{m, ., {{, {x, ,, y}, }}}, -, b}}, Norm] 的元组

LeastSquares 最小化

与普通最小化相比较:

注意, 没有解,因此 可被视为是最好的近似解:

范围  (12)

基本用法  (7)

求机器精度矩阵的最小二乘:

复矩阵的最小二乘:

对精确的非方阵使用 LeastSquares

任意精度矩阵的最小二乘:

对符号矩阵使用 LeastSquares

高效计算大型数字矩阵的最小二乘:

LeastSquares[m,b] 中,b 可以是一个矩阵:

结果中的每一列都等于使用 b 中的相应列作为输入求出的解:

特殊矩阵  (4)

求解稀疏矩阵的最小二乘问题:

求解结构化矩阵的最小二乘问题:

使用不同类型的矩阵结构:

LeastSquares[IdentityMatrix[n],b] 给出向量

HilbertMatrix 的最小二乘:

数组  (1)

用一个 2×3×4 的数组 和一个 2×3×5×6 的数组 求解最小二乘问题:

结果是一个 4×5×6 的数组:

选项  (1)

Tolerance  (1)

m 是一个 20×20 Hilbert 矩阵,b 是一个向量,所以求出 m.x==b 的解:

用默认的公差,数字舍入是受约束的,因此错误就被分散了:

设置 Tolerance->0,数值舍入可以产生额外的错误:

指定一个较大的公差,将以产生较大的残差为代价限制舍入误差:

应用  (9)

最小二乘的几何意义  (4)

LeastSquares[m,b] 可被理解为求 的解,其中 的列空间上的正交投影. 考虑下面的

的列所生成的空间的标准正交基:

计算 生成的空间上的正交投影

可视化 、它在 的投影

求解

这与 LeastSquares 给出的结果是一致的:

比较并解释 LeastSquares[m,b]LinearSolve[m,b] 对下面的 返回的答案:

的列所生成的空间的正交基:

返回的是零向量,因为矩阵的秩小于列数:

计算 生成的空间上的正交投影

求解

给出 LeastSquares 返回的解:

尽管 xxPerp 不一样,但它们都解决了最小二乘问题,因为 m.x==m.xPerp

这两个解的不同之处在于 NullSpace[m] 的一个元素:

对于具有线性独立列的矩阵使用矩阵投影算子来求以下 LeastSquares[m,b]

的列空间上的投影算子为 p=m.TemplateBox[{{(, {TemplateBox[{m}, Transpose, SyntaxForm -> SuperscriptBox], ., m}, )}}, Inverse].TemplateBox[{m}, Transpose]

最小二乘问题的解则为 的唯一解:

LeastSquares 确认结果:

对于下面的 ,将 LeastSquares[m,b]LinearSolve 的正规方程求得的解相比较:

LeastSquares 求解:

LinearSolve 和正规方程 TemplateBox[{m}, Transpose].m=TemplateBox[{m}, Transpose].b 求解:

尽管 xxNormal 不一样,但它们都解决了最小二乘问题,因为 m.x==m.xNormal

这两个解的不同之处在于 NullSpace[m] 的一个元素:

曲线和参数拟合  (5)

可用 LeastSquares 求数据的最佳拟合曲线. 考虑以下数据:

从数据中提取 坐标:

含有列 ,因此最小化 TemplateBox[{{{m, ., {{, {a, ,, b}, }}}, -, y}}, Norm] 将拟合到直线

获取线性最小二乘拟合的系数

Fit 验证系数:

绘制数据与最佳拟合曲线:

求以下数据的最佳拟合抛物线:

从数据中提取 坐标:

含有列 ,因此最小化 TemplateBox[{{{m, ., {{, {a, ,, b, ,, c}, }}}, -, y}}, Norm] 将拟合到

获取最小二乘拟合的系数

Fit 验证系数:

绘制数据与最佳拟合曲线:

健康儿童的收缩压 (以毫米汞柱为单位)和体重 (以磅为单位)之间的关系近似为 . 利用以下实验数据点 估计一个体重为 100 磅的健康儿童的收缩压:

DesignMatrix 构建列为 的矩阵:

从数据中提取 值:

的最小二乘解:

将参数代入模型:

那么预计一个 100 磅重的孩子的血压大约是 TemplateBox[{108, "mmHg", millimeters of mercury, "MillimetersOfMercury"}, QuantityTF]

可视化数据与最佳拟合曲线:

根据开普勒第一定律,彗星的轨道满足 ,其中 是常数, 是离心率. 离心率决定了轨道的类型, 时为椭圆, 时是抛物线, 时为双曲线. 使用以下观测数据来确定彗星的轨道类型,并预测 时彗星与太阳的距离:

为了求出 ,先使用 DesignMatrix 创建列为 的矩阵:

LeastSquares 求出最小化设计矩阵中 的误差的

由于 ,轨道是椭圆形,对于每一个 值有唯一的 值:

计算 时的函数值,给出预期的距离,大约为 TemplateBox[{1.36, "au", astronomical units, "AstronomicalUnit"}, QuantityTF]

考虑以下数据:

从数据中提取 坐标:

定义以 t 为中心的三次基函数,适用于区间 [t-2,t+2]

为以 0, 1, ..., 10 为中心的基函数设置稀疏设计矩阵:

求解最小二乘问题:

可视化数据与最佳拟合分段三次曲线,即

属性和关系  (12)

如果 m.x==b 可以求解,LeastSquares 等价于 LinearSolve

如果 x=LeastSquares[m,b]n 位于 NullSpace[m] 中,则 x+n 也是最小二乘解:

LeastSquares[m,b] 可求解 ,其中 是到 的列空间上的正交投影:

因为这个特定的矩阵有平凡零空间,所以保证了相等性:

如果 是实数,x=LeastSquares[m,b] 遵守正规方程 TemplateBox[{m}, Transpose].m.x=TemplateBox[{m}, Transpose].b

对于复值矩阵,方程为 TemplateBox[{m}, ConjugateTranspose].m.x=TemplateBox[{m}, ConjugateTranspose].b

如果 x==LeastSquares[m,b],则 m.x-b 位于 NullSpace[ConjugateTranspose[m]] 内:

零空间是二维的:

m.ls-b 如预期的那样,位于两个向量生成的空间中:

LeastSquaresPseudoInverse 都可以用来求解最小二乘问题:

LeastSquaresQRDecomposition 都可以用来求解最小二乘问题:

m 为零空间为空的矩阵:

对于向量 bLeastSquares[m,b] 等价于 ArgMin[Norm[m.x-b],x]

它也等价于 ArgMin[Norm[m.x-b,"Frobenius"],x]

m 为零空间为空的矩阵:

对于矩阵 bLeastSquares 等价于 ArgMin[Norm[m.x-b,"Frobenius"],x]

如果 b 是一个矩阵,LeastSquares[m,b] 中的每一列是 b 中相应列的结果:

m 是一个 5×2 矩阵,而 b 是一个长度为 5 的向量:

求解最小二乘问题:

这是 的最小化:

它也给出了到点的最小二乘距离的线性系数:

LeastSquares 给出了有正规误差线性模型的参数估计:

LinearModelFit 拟合模型,并给出额外的拟合信息:

参数估计:

提取额外的结果:

Wolfram Research (2007),LeastSquares,Wolfram 语言函数,https://reference.wolfram.com/language/ref/LeastSquares.html (更新于 2024 年).

文本

Wolfram Research (2007),LeastSquares,Wolfram 语言函数,https://reference.wolfram.com/language/ref/LeastSquares.html (更新于 2024 年).

CMS

Wolfram 语言. 2007. "LeastSquares." Wolfram 语言与系统参考资料中心. Wolfram Research. 最新版本 2024. https://reference.wolfram.com/language/ref/LeastSquares.html.

APA

Wolfram 语言. (2007). LeastSquares. Wolfram 语言与系统参考资料中心. 追溯自 https://reference.wolfram.com/language/ref/LeastSquares.html 年

BibTeX

@misc{reference.wolfram_2024_leastsquares, author="Wolfram Research", title="{LeastSquares}", year="2024", howpublished="\url{https://reference.wolfram.com/language/ref/LeastSquares.html}", note=[Accessed: 22-November-2024 ]}

BibLaTeX

@online{reference.wolfram_2024_leastsquares, organization={Wolfram Research}, title={LeastSquares}, year={2024}, url={https://reference.wolfram.com/language/ref/LeastSquares.html}, note=[Accessed: 22-November-2024 ]}