Matlab:如何用某种类型的函数拟合时间序列
Matlab: how to fit time series with a funcion of a certain type
我有一个时间序列,需要用一些易于计算的函数来近似它。看起来该行类似于
(a*x*x + b*x + c) / (d*x + e)
有没有办法自动找到系数(使用 Matlab 或其他),以便获得的函数最适合系列?
提前致谢!
使用 Matlab 的最简单方法(如果您有曲线拟合工具箱)是使用 cftool
。这为您提供了一个图形用户界面,您可以在其中导入数据并以最合适的方式播放。
如果您需要将其构建到代码中,那么您可以使用从 cftool
中找到的最佳函数,使用 curvefit
工具箱中的 fit
。您可以定义适合
之类的自定义函数
f = @(a, b, c, d, e, x) (a*x.*x + b*x + c) / (d*x + e)
fit(x, y, f, 'StartPoint', [0.,0.,0.,0.,0], 'Robust', 'LAR')
我有一个时间序列,需要用一些易于计算的函数来近似它。看起来该行类似于
(a*x*x + b*x + c) / (d*x + e)
有没有办法自动找到系数(使用 Matlab 或其他),以便获得的函数最适合系列?
提前致谢!
使用 Matlab 的最简单方法(如果您有曲线拟合工具箱)是使用 cftool
。这为您提供了一个图形用户界面,您可以在其中导入数据并以最合适的方式播放。
如果您需要将其构建到代码中,那么您可以使用从 cftool
中找到的最佳函数,使用 curvefit
工具箱中的 fit
。您可以定义适合
f = @(a, b, c, d, e, x) (a*x.*x + b*x + c) / (d*x + e)
fit(x, y, f, 'StartPoint', [0.,0.,0.,0.,0], 'Robust', 'LAR')