标签: matlab algebra least-squares
我可以问一下在Matlab中以下两种方式解决x的区别:
x
方式1:x = A\b
x = A\b
方式2:x = inv((A.').*A)*(A.'*b)
x = inv((A.').*A)*(A.'*b)
(p.s:倒置矩阵是可逆的)
我认为这两种方式应该给出相同的结果,但我无法实现这种匹配。我想应用最小的方形时尚。然而,它包括许多不同类型的矩阵(转置,反转,然后多个),当用Matlab语言编写时,我感到困惑。请你帮我指出错误的方法2.
非常感谢您的评论!
答案 0 :(得分:1)
最小二乘公式,
拼写错误。在后者b<-->y而p<-->x。
b<-->y
p<-->x
在inv()函数内,A.'和A之间的产品不是元素产品。 此外,根据PEMDAS规则,在括号内加入A.'和b是不正确的,因此该术语优先于前者。
inv()
A.'
A
b
总之,LS的Matlab公式是:
x=inv((A.')*A)*(A.')*b;
最后,您还可以通过pinv()函数简化上述公式,该函数评估Moore-Penrose Pseudoinverse,即inv((A.')*A)*(A.')。确实pinv(A)将导致与inv((A.')*A)*(A.')相同的结果,因此您可以将LS解决方案重写为
pinv()
inv((A.')*A)*(A.')
pinv(A)
x=pinv(A)*b;