lsqminnorm

线性方程的最小范数最小二乘解

描述

例子

X = lsqminnorm (一个,B)返回一个数组X这是线性方程的解AX = B最小化。的价值规范(*取向)。如果有几种解决这个问题万博 尤文图斯的方法,那么lsqminnorm返回最小化的解决方案规范(X)

例子

X = lsqminnorm (一个,B,TOL)另外指定容差lsqminnorm用于确定的秩一个

例子

X = lsqminnorm (___,rankWarn)指定显示警告的可选标志,如果一个较低等级。您可以在以前的语法中使用任何输入参数组合。rankWarn可以'nowarn'(默认)或'警告'

例子

全部收缩

解决与反斜杠无穷多解的线性系统(万博 尤文图斯\)和lsqminnorm。比较结果使用2规范的解决方案。万博 尤文图斯

当无限的解决方案存在万博 尤文图斯 斧头 = b ,它们中的每最小化 斧头 - b 。反斜杠命令(\)计算一个这样的解决方案,但这个解决方案通常不会最小化 x 。计算的解lsqminnorm最小化不仅规范(*取向),但也规范(X)

考虑一个简单的线性系统具有一个方程和两个未知数, 2 x 1 + 3. x 2 = 8 。这个系统是欠定的既然有公式比未知数少。同时使用反斜线解方程和lsqminnorm

A = [2 3];b = 8;x_a = \ b
x_a =2×10 2.6667
x_b = lsqminnorm(A,B)
x_b =2×11.2308 1.8462

这两种方法得到不同的解决方案,因为反斜杠只是为了最小化万博 尤文图斯规范(*取向),而lsqminnorm目的也是为了减少规范(X)。计算这些规范,并把结果以表格,便于比较。

s1 = {“反斜杠”;'lsqminnorm'};s2 = {“norm_Ax_minus_b”,“norm_x”};T =表([范数(A * x_a-b)的范数(A * x_b-b)中],[范数(x_a);范数(x_b)]“RowNames”s1,“VariableNames”s2)
T =2×2表norm_Ax_minus_b norm_x售予______反斜杠0 2.2188 1.7764 2.6667 lsqminnorm e15汽油

这个数字说明了情况,并显示每个方法返回的解决方案。万博 尤文图斯蓝线代表解方程的无穷多万博 尤文图斯 x 2 = - 2 3. x 1 + 8 3. 。橙色圆圈表示从原点到溶液的线的最小距离,并将该溶液通过返回万博 尤文图斯lsqminnorm正好位于直线和圆之间的切点上,表示它是最接近原点的解。

显示如何为秩计算指定容忍lsqminnorm可以帮助确定问题的规模,使随机噪声不会破坏解决方案。

创建等级5的低秩矩阵和右手侧矢量b

RNG默认的%的再现性U = randn (200 5);V = randn (100 5);= U * V ';b = U*randn(5,1) + 1e-4*randn(200,1);

求解线性系统 斧头 = b 使用lsqminnorm。计算规范A *取向x检查解决方案的质量。

X = lsqminnorm(A,B);规范(*取向)
ANS = 0.0014
规范(X)
ans = 0.1741

现在给矩阵添加一点噪声一个再解一次线性方程组。噪声会影响解向量x线性系统的不相称的。

Anoise = A + 1E-12 * randn(200100);xnoise = lsqminnorm(Anoise,B);规范(声音吵醒* xnoise - b)
ANS = 0.0010
规范(xnoise)
ans = 1.1215 e + 08年

由于噪声影响了的低秩近似,导致了两种解之间存在较大的差异万博 尤文图斯一个。换句话说,lsqminnorm在对角线上的治疗小值R矩阵的QR分解一个作为更重要的不是他们。理想情况下,对角线这些小值R应该被视为零。

情节的对角线元素R矩阵的QR分解声音吵醒。大量对角元素的数量级为1e-10。

[Q,R,P] = QR(Anoise,0);semilogy(ABS(DIAG(R)),'O')

这个问题的解决方法是增加使用的公差lsqminnorm从而使低等级近似声音吵醒误差小于1E-8在计算中被使用。这使得结果更容易受到噪音。用宽容的解决方案是非常接近原来的解决方案x

xnoise = lsqminnorm(Anoise, b, 1e-8);规范(声音吵醒* xnoise - b)
ANS = 0.0014
规范(xnoise)
ans = 0.1741
规范(X  -  xnoise)
ANS = 1.0811e-14

求解一个带有警告的低秩系数矩阵的线性系统。

创建一个3×3的矩阵,它的秩是2。在这个矩阵中,可以通过将前两列相加得到第三列。

A = [1 2 3;4 5 9;6 7 13]
一个=3×31 2 3 4 5 9 6 7 13

找到最小范数最小二乘问题的解决 斧头 = b ,其中 b 等于第二列 一个 。指定'警告'国旗为lsqminnorm如果检测显示警告一个是低级的。

b = (:, 2);x = lsqminnorm (A, b,'警告')
警告:秩亏,秩= 2,tol = 1.072041e-14。
x =3×1-0.3333 0.6667 0.3333

输入参数

全部收缩

系数矩阵。系数矩阵出现在左边的线性方程组中,为Ax = B。系数矩阵可以是满的,也可以是稀疏的。

数据类型:|
复数的支持:万博1manbetx是的

输入数组,指定为向量或矩阵。B在右边的线性方程组中表示为Ax = B。如果B是一个矩阵,那么矩阵的每一列表示右边的一个不同的向量。

数据类型:|
复数的支持:万博1manbetx是的

秩容差,指定为一个非负标量。确定容差可以防止解受系数矩阵中随机噪声的影响。默认情况下,lsqminnorm单位计算TOL基于对QR分解一个

lsqminnorm的秩一个中的对角线元素的个数R矩阵的QR分解[Q,R,P] = QR(A,0)绝对值大于TOL。如果的秩一个k,则该函数形成的低秩近似一个乘以第一k由第一个kR。更改公差影响的这种低等级近似一个

例:X = lsqminnorm (A, B, 1飞行)

数据类型:

低秩矩阵的警告切换,指定为任意一个'nowarn'要么'警告'。指定'警告'以表明lsqminnorm应产生如果系数矩阵的警告一个排名是有缺陷的。

例:X = lsqminnorm(A,B, '警告')

提示

  • 最小范数解计算由lsqminnorm特别感兴趣的是,当几种解决方案存在。万博 尤文图斯方程Ax = b有很多解决方案万博 尤文图斯一个是欠定(比列的行数少)或低秩的。

  • lsqminnorm (A, B, tol)通常比pinv (tol) * B用于计算最小范数最小二乘解线性系统。万博 尤文图斯lsqminnorm使用完整正交分解(COD)找到的低阶近似一个,而PINV使用奇异值分解(SVD)。因此,结果PINVlsqminnorm不完全匹配。

  • 对于稀疏矩阵,lsqminnorm使用不同的算法比稠密矩阵,并且因此可以产生不同的结果。

另请参阅

||

介绍了R2017b