lsqminnorm

最小范数的最小平方解线性方程

描述

X = lsqminnorm(一个返回一个数组X一种解决线性方程AX = B并最小化的值范数(A * X-B)。如果不存在这个问题的几万博 尤文图斯种解决方案,然后lsqminnorm返回的解决方案,最小化规范(X)

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

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

例子

全部收缩

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

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

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

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

这两种方法获得不同的解决方案,因为只有反斜杠旨在减少万博 尤文图斯范数(A * X-b)的,而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.6667 lsqminnorm 1.7764e-15 2.2188

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

显示如何指定在排序计算的公差lsqminnorm可以帮助确定问题的规模,使随机噪声不会损坏的解决方案。

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

RNG默认%,持续重现U = randn(200,5);V = randn(100,5);A = U * V';B = U * randn(5,1)+ 1E-4 * randn(200,1);

求解线性系统 斧头 = b 运用lsqminnorm。计算规范A * X-BX检查解决方案的质量。

X = lsqminnorm(A,B);范数(A * X-b)的
ANS = 0.0014
规范(X)
ANS = 0.1741

现在添加噪音少量的基体一个并再次求解线性系统。噪声影响解向量X的线性系统的不成比例。

Anoise = A + 1E-12 * randn(200100);xnoise = lsqminnorm(Anoise,B);规范(Anoise * xnoise  -  B)
ANS = 0.0010
规范(xnoise)
ANS = 1.1215e + 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);规范(Anoise * 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]
A =3×31 2 3 4 5 9 6 7 13

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

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

输入参数

全部收缩

系数矩阵。系数矩阵中出现的线性方程系统在左侧为Ax = b的。系数矩阵可以是全或稀疏。

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

输入阵列,指定为矢量或矩阵。出现在线性方程系统,如右图Ax = b的。如果是一个矩阵,则矩阵中的每个列表示右手侧上的不同载体。

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

排名容忍,指定为非标。指定容差可以帮助防止溶液从易受在系数矩阵的随机噪声。默认,lsqminnorm单位计算TOL基于对QR分解一个

lsqminnorm计算的排名一个作为对角元素的数量[RQR分解的矩阵[Q,R,P] = QR(A,0)与绝对值大于TOL。如果军衔一个ķ,则该函数形成的低秩近似一个乘以第一ķQ由第一ķ[R。更改公差影响的这种低等级近似一个

例:X = lsqminnorm(A,B,1E-2)

数据类型:

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

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

提示

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

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

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

也可以看看

||

介绍了在R2017b