【问题标题】:Minimizing error of a formula in MATLAB (Least squares?)最小化 MATLAB 中公式的误差(最小二乘?)
【发布时间】:2013-02-20 13:28:11
【问题描述】:

我对 MATLAB 或计算数学不太熟悉,所以我想知道如何求解一个涉及平方和的方程,其中每个项都涉及两个向量——一个已知的,一个未知的。这个公式应该代表错误,我需要最小化错误。我想我应该使用最小二乘,但我不太了解它,我想知道什么函数最适合这样做,什么参数可以代表我的方程。我的老师还提到了一些关于取导数的事情,他用导数形成了一个矩阵,这让我更加困惑——我需要取导数吗?

【问题讨论】:

  • 实际上有几十种工具可以解决 MATLAB 中的各种回归问题,在文件交换方面还有更多。然而,教你如何做到这一点,对于一个不知道自己在做什么的人来说,将比大多数人愿意付出的努力多得多,尤其是因为你很少告诉我们你的实际问题。因此,任何答案都需要详尽无遗,让您从头开始。我已经看到整个课程都教授了这些问题。我什至教过一个。

标签: matlab computer-vision linear-algebra


【解决方案1】:

你必须要解决的问题是

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-20
    • 1970-01-01
    • 2018-12-27
    • 1970-01-01
    • 2015-09-24
    相关资源
    最近更新 更多