时间序列用MATLAB最小二乘拟合年份 2003 2004 2005 2006 2007 2008观测值68664800 69071220 73317128 81746580 88924831 93049977以上是某地的电力负荷值,能给出个用最小二乘拟合出直线的程序不,
来源:学生作业帮助网 编辑:六六作业网 时间:2024/12/24 02:23:32
时间序列用MATLAB最小二乘拟合年份 2003 2004 2005 2006 2007 2008观测值68664800 69071220 73317128 81746580 88924831 93049977以上是某地的电力负荷值,能给出个用最小二乘拟合出直线的程序不,
时间序列用MATLAB最小二乘拟合
年份 2003 2004 2005 2006 2007 2008
观测值68664800 69071220 73317128 81746580 88924831 93049977
以上是某地的电力负荷值,能给出个用最小二乘拟合出直线的程序不,
时间序列用MATLAB最小二乘拟合年份 2003 2004 2005 2006 2007 2008观测值68664800 69071220 73317128 81746580 88924831 93049977以上是某地的电力负荷值,能给出个用最小二乘拟合出直线的程序不,
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('某地电力负荷')
>>x=2003:2008; >>y=[68664800 69071220 73317128 81746580 88924831 93049977]; >>plot(x,y) 从图形可以看出是近似是一个直线,用一次拟合 >>a=polyfit(x,y,1) a = 1.0e+010 * 0.0005 -1.0803 >>hold on >>Y=a(1)*x+a(2); >>plot(x,Y,'r:'); 图像如下: