作业帮 > 综合 > 作业

时间序列用MATLAB最小二乘拟合

来源:学生作业帮 编辑:搜搜考试网作业帮 分类:综合作业 时间:2024/06/10 10:06:24
时间序列用MATLAB最小二乘拟合
年份 2003 2004 2005 2006 2007 2008
观测值68664800 69071220 73317128 81746580 88924831 93049977
以上是某地的电力负荷值,能给出个用最小二乘拟合出直线的程序不,
时间序列用MATLAB最小二乘拟合
x=[2003 2004 2005 2006 2007 2008];
y=[68664800 69071220 73317128 81746580 88924831 93049977];
p=polyfit(x,y,1); % 多项式最小二乘拟合,1次为直线
xx=2002:2009; % 直线的横坐标.因为是直线,取2点就可以,用多个点也没问题.曲线的话取点越多越平滑.
yy=polyval(p,xx); % 直线的纵坐标
plot(x,y,'o',xx,yy); % 画图,原始数据用圈,直线用线.
legend('原始数据','拟合直线',0) % 图示
xlabel('年份')
ylabel('观测值')
title('某地电力负荷')