首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Matlab,运算符A\B

Matlab,运算符A\B
EN

Stack Overflow用户
提问于 2012-11-14 22:10:06
回答 2查看 13.5K关注 0票数 9

运算A\B的结果是什么,其中A(1,m)和B (1,m)?

在手册中写道:

代码语言:javascript
复制
A\B returns a least-squares solution to the system of equations A*x= B.

所以它意味着x= inv (A'*A)*A'*B?然而,矩阵A'*A是奇异的.

让我们假设:

代码语言:javascript
复制
A=[1 2 3]
B=[6 7 6]
A\B

0         0         0
0         0         0
2.0000    2.3333    2.0000

如果我们使用MLS:

代码语言:javascript
复制
C = inv (A'*A)   singular matrix
C = pinv(A'*A)

0.0051    0.0102    0.0153
0.0102    0.0204    0.0306
0.0153    0.0306    0.0459

D= C*A'*B

0.4286    0.5000    0.4286
0.8571    1.0000    0.8571
1.2857    1.5000    1.2857

所以结果A\B和inv (A'*A)*A'*B是不同的...

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-11-14 23:22:12

我的MATLAB (R2010b)很好地说明了A\B的作用:

mldivide(A,B)和等效的A\B执行矩阵左除(反斜杠)。AB必须是行数相同的矩阵,除非A是标量,在这种情况下,A\B执行元素除法,即A\B = A.\B

如果A是一个方阵,则A\Binv(A)*B大致相同,只是计算方式不同。如果An-by-n矩阵,B是具有n元素的列向量,或者是具有多个这样的列的矩阵,则X = A\B是等式AX = B的解。如果A缩放不佳或接近单一,则会显示一条警告消息。

如果A是具有m ~= nm-by-n矩阵,并且B是具有m分量的列向量,或者是具有多个这样的列的矩阵,则X = A\B是欠定或超定方程组AX = B在最小二乘意义下的解。换句话说,X最小化了norm(A*X - B),也就是向量AX - B的长度。A的秩k是由列旋转的QR分解确定的。计算解决方案X每列最多有k个非零元素。如果为k < n,则这通常与返回最小二乘解的x = pinv(A)*B不同。

mrdivide(B,A)和等效的B/A执行矩阵右除(正斜杠)。BA必须具有相同的列数。

如果A是一个方阵,那么B/AB*inv(A)大致相同。如果An- by -n矩阵,B是具有n元素的行向量,或者是具有几个这样的行的矩阵,则X = B/A是通过部分旋转高斯消元法计算的方程XA = B的解。如果A缩放不佳或接近单一,则会显示一条警告消息。

如果B是具有m ~= nm-by-n矩阵,并且A是具有m分量的列向量,或者是具有几个这样的列的矩阵,则X = B/A是欠定或超定方程组XA = B的最小二乘意义上的解。

票数 5
EN

Stack Overflow用户

发布于 2012-11-14 23:12:54

x = inv (A'*A)*A'*B适用于过度确定的系统(即,将A作为带有n>mn x m矩阵;在这些情况下,A'A是可逆的)。

在你的例子中,你有一个不确定的系统。

那么,会发生什么呢?

我的意见,虽然你可以检查,至少在你的情况下:

当你这样做时,A\B解决了反向意义上的优化问题w.r.t。通常的最小二乘,即

代码语言:javascript
复制
 X = argmin_{X \in S} ||X||,

其中S是一组解决方案。换句话说,它给出了系统具有最小L^2范数的解。(考虑到您可以手动处理问题,至少在您的情况下是这样)。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13380420

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档