灰色预测练习解答
x(0)={183,189,207,234,220,256,270,285};
X(1)={183,372,579,813,1033,1289,1559,1844};
Matlab操作程序:
x0=[183,189,207,234,220,256,270,285];
>> format long; %(表示设计精度)
>> n=length(x0); %(输入数据长度)
>> x1=[ ]; %(表示x1是一矩阵)
>> x1(1)=x0(1);
>> for i=2:n;
x1(i)=x1(i-1)+x0(i);
end
>> for i=1:n-1;
B(i,1)=-0.5*(x1(i)+x1(i+1)); %(矩阵B的第一列)
B(i,2)=1; %(矩阵B的第二列)
Y(i)=x0(i+1); %(表示Yn数据)
end
>> alpha=(B'*B)^(-1)*B'*Y';
>> a=alpha(1,1);
>> b=alpha(2,1);
>> d=b/a; %(计算时间响应函数参数)
>> c=x1(1)-d;
>> x2(1)=x0(1);
>> x(1)=x0(1);
>> for i=1:n+4;%包括未来5年水质污染数据
求出后5个原始数据:
x(9)=305.7517; x(10)=326.4882; x(11)=348.6311;
x(12)=372.2757; x(13)=397.5239
未来5年长江水质污染趋势,并给出曲线拟合:
2005 |
2006 |
2007 |
2008 |
2009 |
305.7517 |
326.4882 |
348.6311 |
372.2757 |
397.5239 |
令:
w=[1997,1998,1999,2000,2001,2002,2003,2004,2005,2006,2007,2008,2009];
z=[183,189,207,234,220,256,270,285,305,326,348,372,397];
>> plot(w,z)
这个曲线类似
分布图形,因此进行非线性曲线拟合
x=[1997,1998,1999,2000,2001,2002,2003,2004,2005,2006,2007,2008,2009];
y=[183,189,207,234,220,256,270,285,305,326,348,372,397];
b0=[50,0.2,-0,1];
fun=inline('b(1)*(1-b(2)*exp(b(3)*x))','b','x');
[b,r,j]=nlinfit(x,y,fun,b0);
R=sum(r.^2)
求出相对误差检验,并说明精度级别
>> for i=1:n;
error(i)=x(i)-x0(i); %(残差)
error1(i)=abs(error(i));%(计算残差,abs表示绝对值)
error2(i)=error1(i)/x0(i); %(计算相对误差)
end
>>error2(i)= 0.004674778262144
相对误差:0.00467,良好。