Curve fitting for exponential functions
公式如下:
其中||表示绝对值。
最简单的方法是使用curve fitting工具箱,您可以在其中定义自己的自定义拟合函数。
另一种选择是在此处安装ezyfit toolbox。
-
我尝试了曲线拟合工具箱,并使用了自己的自定义拟合函数,但是我不知道如何编写表达式exp(-x / c),这会导致Matlab中出现错误。而且我也不知道如何表达绝对价值。
-
您的方程式必须以abs(a-b*exp(-xc))的方式编写,其中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];这是数据。但是拟合曲线似乎是错误的。我确实听了你的指示。它出什么问题了?
-
您不能使用fit函数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)拟合度不是很好,但仅此而已。
尝试看看cftool命令