【问题标题】:Least squares fit, unknown intercerpt最小二乘拟合,未知截取
【发布时间】:2014-09-03 04:53:48
【问题描述】:

我有三个数据点,我必须通过这些数据点拟合 Y=m*X+C 形式的直线。我希望该线具有预先确定的斜率“m”,但常数“C”可以更改以在使用 matlab 进行拟合时获得最小的误差。有人可以帮帮我吗?

【问题讨论】:

  • 什么错误指标?绝对差?
  • 标准错误。总和(Ymeasured-Ypredicted)。^2

标签: matlab least-squares


【解决方案1】:

算一算吧:

C=均值(Y)-m*均值(X)

假设 Y 是包含 y 坐标的向量,X 是 x 坐标。

参考:http://hotmath.com/hotmath_help/topics/line-of-best-fit.html

【讨论】:

    【解决方案2】:

    如果您选择使用曲线拟合工具箱,解决方案如下。

    开始生成一些数据

    m = 3;
    x = (1:10).';
    y = m*x + 2 + randn(size(x));
    

    然后选择要拟合的模型并设置其系数的界限

    ft = fittype('poly1');
    opts = fitoptions('Method', 'LinearLeastSquares');
    opts.Lower = [m -Inf];
    opts.Upper = [m  Inf];
    

    最后调用拟合例程

    [fitresult, gof] = fit(x, y, ft, opts);
    

    拦截存储在fitresult.p2

    【讨论】:

      猜你喜欢
      • 2013-01-21
      • 1970-01-01
      • 2012-08-29
      • 2014-03-05
      • 1970-01-01
      • 2020-10-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多