灰色预测模型介绍及MATLAB代码实现
文章目录
- 1. 按
- 2. 灰色模型介绍
- 3. 精度检验等级参照表
- 4. matlab代码
- 5. 实验数据
- 5.1. 测试一
- 5.2. 测试二
1. 按
2. 灰色模型介绍
3. 精度检验等级参照表
模型精度等级 | 均方差比值C |
---|---|
1级(好) | C<=0.35 |
2级(合格) | 0.35<C<=0.5 |
3级(勉强) | 0.5<C<=0.65 |
4级(不合格) | 0.65<C |
4. matlab代码
function []=greymodel(y)
% 本程序主要用来计算根据灰色理论建立的模型的预测值。
% 应用的数学模型是 GM(1,1)。
% 原始数据的处理方法是一次累加法。
y=input('请输入数据 ');
n=length(y);
yy=ones(n,1);
yy(1)=y(1);
for i=2:nyy(i)=yy(i-1)+y(i);
end
B=ones(n-1,2);
for i=1:(n-1)B(i,1)=-(yy(i)+yy(i+1))/2;B(i,2)=1;
end
BT=B';
for j=1:n-1YN(j)=y(j+1);
end
YN=YN';
A=inv(BT*B)*BT*YN;
a=A(1);
u=A(2);
t=u/a;
i=1:n+2;
yys(i+1)=(y(1)-t).*exp(-a.*i)+t;
yys(1)=y(1);
for j=n+2:-1:2ys(j)=yys(j)-yys(j-1);
end
x=1:n;
xs=2:n+2;
yn=ys(2:n+2);
plot(x,y,'^r',xs,yn,'*-b');
det=0;sum1=0;
sumpe=0;
for i=1:nsumpe=sumpe+y(i);
end
pe=sumpe/n;
for i=1:n;sum1=sum1+(y(i)-pe).^2;
end
s1=sqrt(sum1/n);
sumce=0;
for i=2:nsumce=sumce+(y(i)-yn(i));
end
ce=sumce/(n-1);
sum2=0;
for i=2:n;sum2=sum2+(y(i)-yn(i)-ce).^2;
end
s2=sqrt(sum2/(n-1));
c=(s2)/(s1);
disp(['后验差比值为:',num2str(c)]);
if c<0.35disp('系统预测精度好')
else if c<0.5disp('系统预测精度合格')else if c<0.65disp('系统预测精度勉强')elsedisp('系统预测精度不合格')endend
enddisp(['下个拟合值为 ',num2str(ys(n+1))]);
disp(['再下个拟合值为',num2str(ys(n+2))]);
5. 实验数据
5.1. 测试一
- 录入的数据:
[724.57, 746.62, 778.27, 800.8, 827.75,871.1, 912.37, 954.28, 995.01, 1037.2]
- 1
- 命令行结果:
run(‘D:\0COCO\Sys\Documents\MATLAB\gray.m’)
请输入数据
[724.57, 746.62, 778.27, 800.8, 827.75,871.1, 912.37, 954.28, 995.01, 1037.2]
后验差比值为:0.067811
系统预测精度好
下个拟合值为 1079.3804
再下个拟合值为1125.6546 - 绘图结果:
说明:红色的点为我们输入的数据,蓝色的点为基于灰色预测模型预测出来的数据。
5.2. 测试二
- 录入的数据:
[2.874,3.278,3.337,3.390,3.679]
- 命令行结果:
run(‘D:\0COCO\Sys\Documents\MATLAB\gray.m’)
请输入数据
[2.874,3.278,3.337,3.390,3.679]
后验差比值为:0.23876
系统预测精度好
下个拟合值为 3.7507
再下个拟合值为3.8928 - 绘图结果:
灰色预测模型介绍及MATLAB代码实现相关推荐
- matlab灰色预测弱化代码,灰色预测模型介绍及MATLAB代码实现
灰色预测模型介绍及MATLAB代码实现 灰色预测模型介绍及MATLAB代码实现 文章目录 1. 按 2. 灰色模型介绍 3. 精度检验等级参照表 4. matlab代码 5. 实验数据 5.1. 测试 ...
- 大一小白的数模比赛(灰色关联度和灰色预测)附Matlab代码
目录 文章目录 前言 一.我都干了什么 二.两个数学模型 1.灰色关联度 2.灰色系统预测 总结 前言 五一期间因为疫情出不了省,没法去玩,但也不能让自己闲着,和同学组队参加了学校的知行杯数模比赛.我 ...
- 主成分分析——KMO检验(介绍及Matlab代码)
文章目录 前言 一.主成分适用性检验 二.KMO检验 1.计算公式 2.Matlab代码 总结 前言 主成分分析已经越来越成为人们广泛应用的多元统计分析方法.但应用中盲目套用主成分分析方法的情况很多 ...
- SDM For Face Alignment 流程介绍及Matlab代码实现之训练篇
SDM 训练阶段的任务如下: 载入标准化的数据(包括400*400的正脸及特征点) 对每一张标准化的图片,模拟人脸检测仪,产生10个扰动的人脸框及相应的初始特征点x0x_0. 求解Δx\Delta x ...
- SDM For Face Alignment 流程介绍及Matlab代码实现之预处理篇
SDM全称为 Supervised Descent Method,是一种机器学习的方法,可以被用来做Face Alignment. 下面我们将通过matlab代码来梳理整个实现的过程. 预处理阶段 I ...
- matlab sdm,SDM For Face Alignment 流程介绍及Matlab代码实现之预处理篇
SDM全称为 Supervised Descent Method,是一种机器学习的方法,可以被用来做Face Alignment. 下面我们将通过matlab代码来梳理整个实现的过程. 预处理阶段 I ...
- 多变量灰色模型matlab程序,多变量灰色预测模型算法的Matlab实现
!""# 年 ! 月 引 言 自从邓聚龙教授提出灰色系统理论以来,灰色预测模型在许多领域得到了广泛应用.许多的研究工作者对 于动态微分方程模型 $%( &, &)进 ...
- 最短路径树(SPT)介绍及matlab代码
文章目录 前言 一.最短路径树是什么? 二.最短路径树的算法 1.Dijkstra算法(我比较常用和喜欢的算法) 2.Floyd算法 总结 前言 最短路径树是路由算法设计中常用到的一种树,往往我们 ...
- SDM For Face Alignment流程介绍及Matlab代码实现之测试篇
测试很简单了,只需要载入数据,然后做正则化处理,使用训练模型产生的{Rk}\{R_k\},就可以预测特征点了. face_alignment.m:用来预测特征点 function shape = fa ...
最新文章
- PostgresSQL生成UUID
- 用SERVLET进行用户名和密码验证
- linux下运行hadoop,Linux环境下hadoop运行平台的搭建
- Spring AOP用法
- Gym - 101972A Multiplication Dilemma(模拟)
- Redis——学习之路一(初识redis)
- Servlet 与 CGI 的比较
- 动态路由接收前台传值
- JS中var、let、const区别? 用3句话概括
- 无所不能java人_无所不能的java
- 包管理conda操作,常用conda命令
- 安装Visual Studio 2013以及简单使用
- 个人博客网站搭建详细视频教程和源码
- android 微信朋友圈相册封面裁剪的小秘密
- 二分法求函数零点:(递归方法和非递归方法)
- 五步就能让CentOS7联网?是的,亲测有效!!!
- 什么是Mirai僵尸网络
- 动态规划练习(1)--[编程题] 风口的猪-中国牛市
- MySQL Workbench 类似Navicat侧边栏查表名
- Ubuntu 测网速