最小化MATLAB中公式的误差(最小二乘法?)

时间:2013-03-05 22:58:02

标签: matlab computer-vision linear-algebra

我不太熟悉MATLAB或计算数学所以我想知道如何解决涉及平方和的方程式,其中每个项包含两个向量 - 一个已知,一个未知。这个公式应该代表错误,我需要最小化错误。我想我应该使用最小二乘法,但我不太了解它,我想知道什么函数最适合这样做,什么参数代表我的等式。我的老师也提到了一些关于衍生物的问题,他用衍生物形成了一个矩阵,这让我更加困惑 - 我是否需要采用衍生物?

1 个答案:

答案 0 :(得分:2)

您必须尝试解决的问题是

Min u'u = min \ sum_i u_i ^ 2,u = y-Xbeta,其中u是误差,y是您试图解释的因变量的向量,X是自变量的矩阵,beta是你要估计的矢量。

由于和u_i ^ 2是可差的(和凸),您可以计算此表达式的最小值来计算其导数并使其等于零。

如果你这样做,你会发现beta = inv(X'X)X'y。这可以使用matlab函数回归http://www.mathworks.com/help/stats/regress.html或在Matlab中编写此公式来计算。但是,您应该小心如何评估逆(X'X),请参阅Most efficient matrix inversion in MATLAB