【问题标题】:Matlab fitting error using lsqcurvefit使用 lsqcurvefit 的 Matlab 拟合错误
【发布时间】:2016-12-20 09:12:21
【问题描述】:

我正在开发代码以将 Gompertz 方程拟合到细菌生长曲线,并正在使用以下网站提供的一些示例数据进行练习:

http://www.math.tamu.edu/~phoward/m442/ia3sol.pdf

根据此代码,拟合应该几乎与数据匹配(上面网页中给出的图表,第 3 页)。但是,当我运行代码时,实际数据绘制正确,但 lsqcurve 拟合非常差,并给出以下消息:

Local minimum possible.

lsqcurvefit stopped because the size of the current step is less than
the default value of the step size tolerance.

是不是我做错了什么?

感谢您的宝贵时间,

劳拉

【问题讨论】:

    标签: matlab model-fitting function-fitting


    【解决方案1】:

    问题在于链接的document

    Gompertz 函数的参数化方式如下:

    %with parameters p(1) = K and p(2) = initial population
    %p(3) = r.
    V = p(1).*(p(2)/p(1)).^exp(-p(3)*t);
    

    但是,曲线拟合的初始参数是针对p 向量中的不同参数顺序给出的([r, K, p0] 而不是[K, p0, r])。而且文档中的结果向量也是乱七八糟的。

    通过将p0 更改为[1000, 3.93, 0.01],曲线拟合将收敛,您将得到一个很好的拟合:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-14
      • 2013-06-16
      相关资源
      最近更新 更多