灰色系统模型

灰色系统模型在数据处理和预测中经常使用。
灰色系统理论建模特点:原始数据必须等时间间距。
处理思路:首先对原始数据进行累加,弱化原始时间序列数据的随
机因素.然后建立生成数的微分方程。
GM(1,1)模型是灰色系统理论中的单序列一阶灰色微分方程

Matlab实现程序


%1997--2003年数据
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');%对前6年求平均
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));
%预测第n+1年数值(2003年)
Total=12*Pred; %2003年总平均值
%估计各月所占比重;
r=sum(T)/sum(sum(T));
%预测2003年各月销售量
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)); %输出2003年预测值
end
fprintf('\n');
for i=1:12
fprintf('%6.1f ',A(7,i)); %输出2003年实际值
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); grid on
title('原始数据');
subplot(2,1,2);
plot(1:12,A(7,:),'b*',1:12,Px,'r');
title('2003年对比数据');
grid on

三、实例计算
根据某地6年每年12个月的交通死亡数据。预测未来一年每个月的交通死亡人数。数据见表一。

Matlab程序


x=[9007,8106,8928,9137,10017,10826,11317,10744,9713,9938,9161,8927,7750,6981,8038,8422,8714,9512,10120,9823,8743,9129,8710,8680,8162,7306,8124,7870,9387,9556,10093,9620,8285,8433,8160,8034,7717,7461,7776,7925,8634,8945,10078,9179,8037,8488,7874,8647,7792,6957,7726,8106,8890,9299,10625,9302,8314,8850,8265,8796,7836,6892,7791,8129,9115,9434,10484,9827,9110,9070,8633,9240];
D=[9007,8106,8928,9137,10017,10826,11317,10744,9713,9938,9161,8927;
7750,6981,8038,8422,8714,9512,10120,9823,8743,9129,8710,8680;
8162,7306,8124,7870,9387,9556,10093,9620,8285,8433,8160,8034;
7717,7461,7776,7925,8634,8945,10078,9179,8037,8488,7874,8647;
7792,6957,7726,8106,8890,9299,10625,9302,8314,8850,8265,8796;
7836,6892,7791,8129,9115,9434,10484,9827,9110,9070,8633,9240];
aver=mean(D');
st=zeros(6,12);
for i=1:6
for j=1:12
st(i,j)=D(i,j)-aver(i);
end
end
NST=zeros(1,12);
nst=sum(st)/6; %对6年月平均作为st的估计
nx=zeros(72,1);
for i=1:6
for j=1:12
k=(i-1)*12+j; nx(k)=x(k)-nst(j);
end
end
%对消去季节项后数据nx
%进行线性拟合并预测
Y=zeros(72,1);
A=zeros(72,2);
for i=1:72
Y(i)=nx(i);
A(i,1)=1; A(i,2)=i;
end
coef=inv(A'*A)*A'*Y;
py=zeros(1,84);
for i=1:84
py(i)=coef(1)+coef(2)*i;
end
subplot(2,1,1);
plot(1:72,nx,1:72,py(1:72));
xx=zeros(1,84);
for i=1:7
for j=1:12
k=(i-1)*12+j;
xx(k)=py(k)+nst(j); %预测各月数值
end
end
subplot(2,1,2);
plot(1:72,x,'*',1:84,xx);

神经网络

x=[1.24,1.36,1.38,1.38,1.38,1.40,1.48,1.54,1.56,1.14,1.18,1.20,1.26,1.28,1.30;
1.72,1.74,1.64,1.82,1.90,1.70,1.82,1.82,2.08,1.78,1.96,1.86,2.0, 2.0,1.96];
y=[1,1,1,1,1,1,1,1,1,0,0,0,0,0,0;
0,0,0,0,0,0,0,0,0,1,1,1,1,1,1];
xmin=min(x'); %求各指标最小值
xmax=max(x'); %求各指标最大值
net.trainParam.epochs=2500; %设定迭代步数
net=newff([xmin',xmax'],[5,2],{'logsig','logsig'}); %初始化网络
net=train(net,x,y); %进行网络训练
x1=[1.24,1.28,1.40;
1.80,1.84,2.04];%待分样本
y1=sim(net,x1); %数据泛化
plot(x(1,1:9),x(2,1:9),'*',x(1,10:15),x(2,10:15),'o',x1(1,:),x1(2,:),'p') %画数据图
grid on

建模之数据处理常用方法相关推荐

  1. 数学建模中数据处理类型题目的主要处理流程与方法

    本文首发于zhengfei.xin 文章目录 曲线插值与拟合 一维插值 例题1 二维插值 例题2 曲线拟合 多项式拟合 最小二乘拟合 数值微分与积分 数值积分 数值微分 求解常微分方程 标准形式 sc ...

  2. matlab 百鸡问题,数学建模知识及常用方法-精选.pdf

    数学建模知识及常用方法-精选 数学建模知识 --之新手上路 一.数学模型的定义 现在数学模型还没有一个统一的准确的定义,因为站在不同的角度可以有不同的定 义.不过我们可以给出如下定义: "数 ...

  3. 数仓建模—增量数据处理

    增量数据处理 这一节我们不讲技术,讲一个故事,关于数据同步这一块的落地方案可以参考我们之前的文章 数仓建模-数据集成 数仓建模-数据同步方案设计 数仓建模-美团DB数据同步到数据仓库的架构与实践 因为 ...

  4. matlab中离开网格的流量,数学建模【数据处理方法(一维、二维插值方法;数据拟合方法;插值and拟合的MATLAB实现)】...

    [学习网址:MOOC---郑州轻工业大学---数学建模与实验]数学建模专栏 笔记01[第1.2章][概述.软件介绍] 笔记02[第3章][数据处理方法] 笔记03[第4章][规划模型] 笔记04[第5 ...

  5. 【数学建模】数据处理问题

    一.插值与拟合 常用于数据的补全以及趋势分析 1.插值 总的思想,就是利用函数f (x)若干已知点的函数值,求出适当的特定函数g(x).这样f(x)其他未知点上的值,就可以用g(x)在这一点的值来近似 ...

  6. pandas进行数据处理常用方法与属性

    参考文章链接

  7. python数据处理常用方法

    文章目录 1.读取指定sheet和指定列的内容 2.遍历数据,对两列数据相似度比较 3.遍历数据,统计每类分类变量的数量 4.遍历数据,删除某列为特定值的数据 5.正则去掉字符串左边或者右边的内容 6 ...

  8. 数据处理常用方法(python)

    1. numpy 是Numerical Python的简称,它是目前Python数值计算中最为重要的基础包.大多数计算包都提供了基于NumPy的科学函数功能,将NumPy的数组对象作为数据交换的通用语 ...

  9. 数学建模【数据处理方法(一维、二维插值方法;数据拟合方法;插值and拟合的MATLAB实现)】

最新文章

  1. 多分辨率适配—字体大小适配 sp与dp区别
  2. mysql DATE_FORMAT 年月日时分秒格式化
  3. SocketAPI,CAsyncSocket,CSocket内幕及其用法
  4. 【JavaScript】jQuery Ajax 实例 全解析
  5. java 读取txt文件指定行_在Java中读取txt文件中的特定行
  6. oracle 精度异常01438,序列值超过字段精度导致ORA-01438
  7. matlab波形反白,基于MATLAB的海岸污染物浓度扩散实验分析
  8. 关于css中class属性多值问题(亲测,各种情况,附详细代码)
  9. CCF NOI1019 分段函数
  10. css3制作旋转动画
  11. 第 3 章 MCS-51 单片机指令系统
  12. 图片无损压缩是真的吗?GIF动图也能轻松压缩
  13. 一天天学WG--第一天
  14. windows10中charles设置代理,android手机无法上网
  15. 除了方文山,用TA你也能帮周杰伦写歌词了
  16. 字节跳动如何用7年,成为腾讯最可怕的对手?张一鸣一语道破
  17. 元代家谱上的名字是以数字命名的?这里面蕴含了哪些历史特色?
  18. CMap如何使用,如何实例化?
  19. 预算一万以内的机器学习台式机/主机配置推荐
  20. Verilog HDL设计方法

热门文章

  1. 大规模MIMO技术概述
  2. 关于csdn写的博文未显示,待审核状态
  3. centos7中ifconfig没有ens33
  4. ArcGIS教程:半变异函数与协方差函数
  5. typeScript学习(二)
  6. 菜鸟网管的入门之路-前言
  7. 计算广告第一章——在线广告综述
  8. 坐标转换软件OpenCoord
  9. html5文字图片垂直居中代码,css实现文字图片垂直居中效果
  10. matlab正交余弦变换矩阵,7. matlab图像处理基础——几何变换+正交变换