主要内容

lsqminnorm

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

描述

例子

X = lsqminnorm(一个B返回一个数组X解线性方程Ax = b的值最小化规范(*取向).如果这个问题有几种解决金宝搏官方网站方案,那么lsqminnorm返回求最小值的解规范(X)

例子

X = lsqminnorm(一个B托尔额外指定的公差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 = 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 = table([A*x_a-b);规范(* x_b-b)]、[规范(x_a);规范(x_b)),“RowNames”s1,“VariableNames”s2)
T =2×2表norm_Ax_minus_b norm_x  _______________ ______ 反斜杠0 2.6667 lsqminnorm 8.8818 e-16 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检查溶液的质量。

x = lsqminnorm(A,b);规范(*取向)
Ans = 0.0014
规范(x)
Ans = 0.1741

现在给矩阵添加少量的噪声一个再解一次线性方程组。噪声影响解向量x线性系统的不成比例。

噪声= A + 1e-12*randn(200,100);xnoise = lsqminnorm(噪声,b);范数(噪声*噪声- b)
Ans = 0.0010
规范(xnoise)
Ans = 1.1215e+08

的低秩近似受到噪声的影响,这是导致两种解存在较大差异的原因金宝搏官方网站一个.换句话说,lsqminnorm是否处理对角线上的小值R矩阵的QR分解一个比他们本身更重要。理想情况下,这些对角线上的小值R应该被视为零。

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

[Q,R,p] = qr(噪声,0);semilogy (abs(诊断接头(R)),“o”

图中包含一个轴对象。axis对象包含一个line类型的对象。

解决这个问题的方法是增加所使用的公差lsqminnorm这是一个低秩近似声音吵醒计算中采用误差小于1e-8的方法。这使得结果更不容易受到噪音的影响。使用公差的解非常接近原解x

xnoise = lsqminnorm(Anoise, b, 1e-8);范数(噪声*噪声- b)
Ans = 0.0014
规范(xnoise)
Ans = 0.1741
范数(x - xnoise)
Ans = 1.0811e-14

求解一个包含低秩系数矩阵且开启警告的线性系统。

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

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

求问题的最小范数-最小二乘解 斧头 b ,在那里 b 等于里面的第二列 一个 .指定“警告”国旗为lsqminnorm如果检测到,则显示警告一个地位很低。

b = A(:,2);x = lsqminnorm(A,b,“警告”
警告:Rank不足,Rank = 2, tol = 1.072041e-14。
x =3×1-0.3333 0.6667 0.3333

输入参数

全部折叠

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

数据类型:|
复数支持:金宝app是的

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

数据类型:|
复数支持:金宝app是的

等级公差,指定为非负标量。指定公差有助于防止解受系数矩阵中随机噪声的影响。默认情况下,lsqminnorm计算托尔的QR分解一个

lsqminnorm计算的秩一个的对角线元素的个数R矩阵的QR分解[Q,R,p] = qr(A,0)绝对值大于托尔.如果的秩一个k,则函数形成的低秩近似一个通过乘以第一个k首先kR.改变公差会影响的低秩近似一个

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

数据类型:

低秩矩阵的警告切换,指定为任意一种“nowarn”“警告”.指定“警告”为了表明lsqminnorm是否应产生警告系数矩阵一个是等级缺陷。

例子:X = lsqminnorm(A,B,'warn')

提示

  • 最小范数解由lsqminnorm在存在多个解的情况下尤其值得关注。金宝搏官方网站这个方程Ax = b有很多解决方案金宝搏官方网站一个未确定(行比列少)或秩低。

  • lsqminnorm (A, B, tol)通常比pinv (tol) * B用于计算线性系统的最小范数和最小二乘解。金宝搏官方网站lsqminnorm使用完全正交分解(COD)来找到的低秩近似一个,而pinv采用奇异值分解(SVD)。因此,结果pinv而且lsqminnorm不完全匹配。

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

扩展功能

版本历史

在R2017b中引入

另请参阅

||