数学建模_灰色预测模型

灰色预测模型

Matlab基础知识补充

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

将多个图像做在一张图上
plot(x,y,‘s’,xx,yy,‘s’)

在这里插入图片描述
灰色预测模型GM(1,1)单序列灰色一阶模型

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

例题

在这里插入图片描述

Matlab代码如下

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.0 144.1 157.0 162.6 171.8 180.7 173.5 176.5;]
%计算前六年的平均值
T=A(1:6,1:12);
x0=mean(T');    %mean只对列求平均,因此需要转置
%计算累加序列
x1=zeros(length(x0));
x1(1)=x0(1);
n=length(x0);
for i=2:n
    x1(i)=x1(i-1)+x0(i);
end
%生成均值序列
af=0.4;
z=zeros(length(x1));
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;
Para=B\Y;
a=Para(1);
b=Para(2);
%GM模型的离散解
%直接写出2003年的
Pred=[x0(1)-b/a]*exp(-a*n)*(1-exp(a));
%预测第n+1的值(2003年)
Total=Pred*12;
%估计个月所占比重
r=sum(T)/sum(sum(T));
%预测2003年各月销售量
Px=Total*r;
fprintf('输出2003年预测值与实际值:\n');
Px
fprintf('输出2003年的实际值\n');
A(7,:)
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);
grid on
title('原始数据');
subplot(2,1,2);
plot(1:12,A(7,:),'b*',1:12,Px,'r');
title('2003年对比数据');
grid on

结果

在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值