【问题标题】:Curve fitting for exponential functions指数函数的曲线拟合
【发布时间】:2012-02-23 11:49:20
【问题描述】:

等式如下:

y=|A-B*exp(-x/C)|

其中||表示绝对值。

【问题讨论】:

    标签: matlab curve-fitting


    【解决方案1】:

    最简单的方法是使用curve fitting 工具箱,您可以在其中定义自己的自定义拟合函数。

    另一种选择是安装ezyfit toolbox 可用的here

    【讨论】:

    • 我尝试了曲线拟合工具箱,并使用了我自己的自定义拟合函数,但是我不知道表达式exp(-x/c)怎么写,导致在Matlab中出错。而且我也不知道怎么表达绝对值。
    • 你的方程必须这样写abs(a-b*exp(-x/c)),其中abs()是绝对值。你会得到哪种错误?在curve fitting 工具箱中,您是否定义了您想要适应的dataset?作为一个额外的说明:你确定你的拟合方程吗?看起来有点奇怪,可能绝对值放错了位置,正确的方程是a-b*exp(-abs(x)/c),它围绕零对称。
    • >> x=[25 50 100 180 300 500 750 1100 1500]; >> y=[3088 2284 908 592 2124 3293 3807 3963 3976];这是数据。但拟合曲线似乎是错误的。我确实听从了你的指示。它有什么问题?
    • 您不能使用拟合函数a-b*exp(-abs(x)/c),因为x 数据不为零!考虑到沿 x 轴的水平平移引入了一个额外的参数x0,我得到了一个不错的选择。所以修改后的函数是a-b*exp(-abs(x-x0)/c)。使用您提供的数据,我得到了这些参数(括号中的置信区间):a = 3905 (3265, 4545); b = 3931 (2432, 5431); c = 140.1 (25.82, 254.3); x0 = 162.5 (127.5, 197.6) 拟合并不好,但就是这样。
    【解决方案2】:

    尝试查看cftool 命令

    【讨论】:

      猜你喜欢
      • 2016-02-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-01
      • 2015-03-22
      • 1970-01-01
      • 2018-10-07
      • 2015-06-20
      相关资源
      最近更新 更多