用最小二乘法时尚matlab求解下三角矩阵

时间:2016-04-20 17:28:42

标签: matlab algebra least-squares

我可以问一下在Matlab中以下两种方式解决x的区别:

方式1:x = A\b

方式2:x = inv((A.').*A)*(A.'*b)

(p.s:倒置矩阵是可逆的)

我认为这两种方式应该给出相同的结果,但我无法实现这种匹配。我想应用最小的方形时尚。然而,它包括许多不同类型的矩阵(转置,反转,然后多个),当用Matlab语言编写时,我感到困惑。请你帮我指出错误的方法2.

非常感谢您的评论!

1 个答案:

答案 0 :(得分:1)

最小二乘公式,

enter image description here

拼写错误。在后者b<-->yp<-->x

inv()函数内,A.'A之间的产品不是元素产品。
此外,根据PEMDAS规则,在括号内加入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解决方案重写为

x=pinv(A)*b;