matlab - matlab中给定函数的时间序列逼近
问题描述
我正在尝试在 matlab 中拟合遵循这种函数的温度时间序列
我需要检索函数的 8 个参数,将边界 lambda=0 和 sigma 设为正数。我尝试在 matlab 中使用 lsqcurvefit 函数,但如果我有一个 for 循环,我不能在这个内置的 matlab 函数中使用 y 函数。
Torontoless=xlsread('temp.xlsx',2);
xdata=zeros(1,6576);
x=[0,0,0,0,0,0];
ydata=Torontoless';
Toronto=[zeros(size(ydata,1),1) ydata];
fun=zeros(1,6576);
for i=1:6576
fun(i)=(1-x(1))*(Toronto(i)-(x(2)+x(3)*Toronto(i)+x(4)*(sin(x(5)*Toronto(i)+x(6)))))+x(2)+x(3)*Toronto(i+1)+x(4)*(sin(x(5)*Toronto(i+1)+x(6)))+(randn-x(7))*x(8);
end
x0=[0,0,0,0,0,0];
lb=[-1000,-1000,-1000,-1000,-1000,-1000,0,0];
ub=[1000,1000,1000,1000,1000,1000,0,1000];
现在,我不知道如何使用函数内部的乐趣x=lsqcurvefit(fun,x0,xdata,ydata,lb,ub)
我不知道是否有更好的方法来适应这种时间序列,但如果您有解决问题的想法,请告诉我。非常感谢。
PS临时向量的大小是1x6576。因为我希望温度从 0 开始,所以我首先添加了一个额外的列。
解决方案
推荐阅读
- unicode - 如何在 Flutter 中组合 unicode 字符?
- c# - ListView 为空时不会发生 Xamarin.Forms PullToRefresh?
- python-3.x - Python抓取在提取价值方面的麻烦
- asp.net-core - 使用 ASP.NET Core 网站将文件夹上传到文件共享
- php - 'where 子句'(codeigniter)中的未知列'items'
- java - Spring属性解密
- c# - 如何使用 NSwag 的 UseSwaggerUi3 加载自定义样式表
- ios - 如何在 Swift 中的 UI 标签栏上应用渐变?
- c# - launchSettings.json launchUrl 不起作用“api/values”
- flutter - 在 lwidget 中显示 ListView 和 Map 函数