没事玩了一下matlab

发现现在网上的代码都是一组数据预测

所以我就写个批量数据的预测

顺便学习下matlab

----------------------------------我是快乐的分割线------------------------------------

灰色预测的主要思想是:

1、给定一组数据

2、进行累加,即

X(1)1=x(0)1

X(1)2=x(0)1+x(0)2

X(1)3=x(0)1+x(0)2+x(0)3

3、最终目的是为了构造预测方程:

其中:

而为了求得上式,需要:

好的,就是这样子灰色预测就写完了,下面就是各种循环各种写了

----------------------------------我是快乐的分割线------------------------------------

为了批量对多组数据进行预测

所以加入了一个打开excel:

%读取excel的数据,data = xlsread(filename, sheet, range)
data=xlsread('D:\MATLAB\GM.xlsx', 1, 'A1:E2');

然后写个大大的for循环:

m=ndims(data);%维度
for i = 1:m
...
end

省略号里面就是一组数据的预测程序了

灰色预测的思想很简单

我就不分段解释了

全部代码如下

function GM(t)
clc; %清屏,以使计算结果独立显示
format long g; %设置计算精度 %读取excel的数据,data = xlsread(filename, sheet, range)
data=xlsread('D:\MATLAB\GM.xlsx', 1, 'A1:E2'); %fprintf(data(1,:));
%x=data(1,:)
%n=length(data)%长度
%加了;分号表示不将结果显示出来 m=ndims(data);%维度 t=input('你要预测多少期?');
for i = 1:m
z=0;
x=data(i,:);
%下面的全部内容都在这个循环里面进行
%注意下面的那个end
%每一行的长度
n=length(data);
for j = 1:n
z = z + x(j);
be(j,:)=z;
end
%matlab的变量定义好乱,可以随便定义,都是局部变量
%本文这里除了i之外其他都算局部变量吧 %计算数据矩阵B的第一列和第二列数据
for j = 1:n-1
%第一列
c(j,:)=-0.5*(be(j,:)+be(j+1,:));
%第二列
e(j,:)=1;
%代入矩阵B中
B(j,1)=c(j,:);
B(j,2)=e(j,:);
end %对原始数列平行移位
for j=2:n
y(j-1,:)=x(1,j);
end %计算参数α、μ矩阵
alpha=inv(B.'*B)*B.'*y; %计算数据估计值的累加数列
for k = 0:n-1+t
ago(k+1,:)=(be(1)-alpha(2,:)/alpha(1,:))*exp(-alpha(1,:)*(k))+alpha(2,:)/alpha(1,:);
end %估计值的累加数列的还原,并计算出下一预测值
for j=1:n-1+t
var(j+1,:)=ago(j+1,:)-ago(j,:);
end %给出预测结果
result(i,:)=var(n+t,1);
%计算残差
for j=2:n
error(j,:)=var(j,:)-x(1,j);
end
%调用统计工具箱的标准差函数计算后验差的比值c
S1=std(x)
S2=std(error)
c=S2/S1
end
disp('预测结果为:')
disp(result(:,1))

花了一个下午复习了一下matlab

发现编写m文件不是很难

但是matlab的语言逻辑有点乱

要不是我的逻辑有点乱

---------------------------------------orz-----------------------------------

matlab批量灰色预测的更多相关文章

  1. [matlab] 21.灰色预测、线性回归分析模型与最小二乘回归 (转载)

    灰色预测的主要特点是只需要4个数据,就能解决历史数据少,序列的完整性以及可靠性低的问题,能将无规律的原始数据进行生成得到规律性较强的生成序列,易于检验 但缺点是只适合中短期的预测,且只适合指数级增长的 ...

  2. 灰色预测--matlab&python实现

    function SGrey X0 = input('请输入原始负荷数据:'); %输入原始数据 n = length(X0); %原始n年数据 %累加生成 X1 = zeros(1,n); for ...

  3. R实现灰色预测

    1.简介 预测就是借助于对过去的探讨去推测.了解未来.灰色预测通过原始数据的处理和灰色模型的建立,发现.掌握系统发展规律,对系统的未来状态做出科学的定量预测.对于一个具体的问题,究竟选择什么样的预测模 ...

  4. 灰色预测原理及JAVA实现

    最近在做项目时,用户不想使用平均值来判断当前数据状态,想用其他的方式来分析数据的变化状态,在查找了一些资料后,想使用灰色预测来进行数据的预测.下面的内容是从网上综合下来的,java代码也做了一点改动, ...

  5. matlab批量读取一个文件夹里类似命名的mat文件

    参考网址: Matlab读取同一路径下多个txt或mat文件总结 matlab 批量读取数据文件.mat .dat 整理:matlab批量读入数据文件的方法 首先命名方式体现在只是名字里数字有变化,其 ...

  6. 灰色预测 GM11模型

    灰色预测实现见:https://www.jianshu.com/p/a35ba96d852b from pandas import Series from pandas import DataFram ...

  7. 使用matlab批量处理图像后在指定文件夹存储

    使用matlab批量处理图像后在指定文件夹存储 clear;clc;close all; Files=dir('D:\文件及下载相关\文档\MATLAB\postgraduate\Kodak\*.jp ...

  8. MATLAB批量修改图片名称

    申明:转载请注明出处. 设在“D:\UserDesktop\pic\”目录下有很多张格式为jpg照片,命名不规则,如图. 现在用MATLAB批量修改所有图片的命名格式,改为1.jpg,2.jpg,.. ...

  9. python 实现 灰色预测 GM(1,1)模型 灰色系统 预测 灰色预测公式推导

    来源公式推导连接 https://blog.csdn.net/qq_36387683/article/details/88554434 关键词:灰色预测 python 实现 灰色预测 GM(1,1)模 ...

随机推荐

  1. 升级IOS 9 和 XCode 7 引起的问题

    问题一: 升级xcode 7最低的系统配置要求 升级了ios9 后使用 xcode 6.1 已经不能用了,必须升级 xcode 7才行,原先的系统是OSX 10.10.1 版本.而xcode 7.0 ...

  2. Android白天/夜间模式Day/Night Mode标准原生SDK实现

     Android白天/夜间模式Day/Night Mode标准原生SDK实现 章节A:Android实现白天/夜间模式主要控制器在于UiModeManager,UiModeManager是Andr ...

  3. MySQL 仅保留7天、一个月数据

    /************************************************************************** * MySQL 仅保留7天.一个月数据 * 说明 ...

  4. Gitlab. Disable user creation on welcome page

    Login to your Gitlab > Admin area > settings > Features > remove the check mark "Si ...

  5. Redis 设计与实现读书笔记一 Redis字符串

    1 Redis 是C语言实现的 2 C字符串是 /0 结束的字符数组 3 Redis具体的动态字符串实现 /* * 保存字符串对象的结构 */ struct sdshdr { // buf 中已占用空 ...

  6. Python 新手常犯错误(第一部分)

    转载自:http://blog.jobbole.com/42706/ 在之前几个月里,我教一些不了解Python的孩子来慢慢熟悉这门语言.渐渐地,我发现了一些几乎所有Python初学者都会犯的错误,所 ...

  7. hdu 2334 March of the Penguins

      题意大意 在X,Y坐标系中有N(N<=100)个冰块,有些冰块上有1若干只企鹅,每只企鹅一次最多跳M距离,一个冰块在有Mi个企鹅离开,就会消失,问有哪些冰块可以作为集合点,就是所有企鹅都能成 ...

  8. ZOJ 1089 Lotto

    原题链接 题目大意:有一种抽奖游戏乐透(Lotto),规则是从1到49这49个自然数中随机抽取6个数.现在有一种简化版的游戏,先在49个数里面选出k(6<k<13)个数,然后再从这k个数里 ...

  9. Gulp 总结

    Gulp介绍 Gulp是一个前端开发的自动化构建工具.前端开发往往需要把LESS/SCSS文件进行编译成CSS文件,javascript多文件合并成一个文件并压缩以及一些其他需要重复性操作的工作.而G ...

  10. CSS基础知识点(二)——居中

    水平居中 (1) 对于块级元素,最常用的自适应水平居中为:margin:0px auto; (与 margin:auto; 效果相同) (2) 对于行内元素(a, img, input等),最常用的水 ...