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

solving lower triangular matrix using least square fashion matlab

请问在Matlab中用以下两种方式求解x的区别:

方式一:x = A\b

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

(p.s:逆矩阵可逆)

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

非常感谢您的意见!

最小二乘公式,即

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

inv() 函数中,A.'A 之间的乘积不是元素级乘积。
此外,根据 PEMDAS 规则,将 A.'b 加入括号内是不正确的,相对于前者,给予此类术语优先权。

综上所述,LS的Matlab公式为:

x=inv((A.')*A)*(A.')*b;

最后,您还可以通过计算 Moore-Penrose Pseudoinverse 的 pinv() 函数简化上述公式,即 inv((A.')*A)*(A.')。实际上 pinv(A) 会导致与 inv((A.')*A)*(A.') 相同的结果,因此您可以将 LS 解决方案重写为

x=pinv(A)*b;