西北工业大学 数学建模课程——灰色预测模型代码

题目: 

 

代码视频地址:9.1 灰色系统模型_哔哩哔哩_bilibili

 具体代码:

A=[83.0 79.8 78.1 85.1 86.6 88.2 90.3 86.7 93.3 92.5 90.9 96.9
     101.7 85.1 87.8 91.6 93.4 94.5 97.4 99.5 104.2 102.3 101.0 123.5
	92.2 114.0 93.3 101.0 103.5 105.2 109.5 109.2 109.6 111.2 121.7 131.3
	105.0 125.7 106.6 116.0 117.6 118.0 121.7 118.7 120.2 127.8  121.8 121.9
	139.3 129.5 122.5 124.5 135.7 130.8 138.7 133.7 136.8 138.9 129.6 133.7
	137.5 135.3 133.0 133.4 142.8 141.6 142.9 147.3 159.6 162.1 153.5 155.9
	163.2 159.7 158.4 145.2 124 144.1 157.0 162.6 171.8 180.7 173.5 176.5];
T=A(1:6,1:12);
x0=mean(T');
x1=zeros(size(x0));
n=length(x0);
x1(1)=x0(1);
for i=2:n
	x1(i)=x1(i-1)+x0(i);
end
z=zeros(size(x0));
af=0.4;
for i=2:n
	z(i)=af*x1(i)+(1-af)*x1(i-1);
end
Y=zeros(n-1,1);
B=zeros(n-1,2);
for i=2:n
	Y(i-1,1)=x0(i);
	B(i-1,1)=-z(i);
	B(i-1,2)=1;
end
Para=inv(B'*B)*B'*Y;
a=Para(1);
b=Para(2);
Pred=(x0(1)-b/a)*exp(-a*n)*(1-exp(a));
Total=12*Pred;
r=sum(T)/sum(sum(T));
Px=Total*r;
fprintf("输出2003年预测值与实际值.\n");
for i=1:12
    fprintf('%5d',i);
end
fprintf('\n');
for i=1:12
    fprintf('%6.1f',Px(i));
end
fprintf('\n');
for i=1:12
    fprintf('%6.1f',A(7,i));
end
fprintf('\n');
Error = sum(Px(4:6)) - sum(A(7,4:6));
fprintf("2003年4,5,6月SARS导致减少的销售额为%6.2f亿元\n", Error);

subplot(2,1,1);
PA = [A(1,:),A(2,:),A(3,:),A(4,:),A(5,:),A(6,:),A(7,:)];
plot(PA);
title("原始数据");
grid on;
subplot(2,1,2);
plot(1:12,A(7,:),'b*',1:12,Px,'r');
title("2003年对比数据");
grid on;

输出结果:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值