灰色模型的malab程序

function [y,p,e]=huise_1_1(X,k)                     %灰色模型的malab程序
%Example [y,p]=gm_1_1([200 250 300 350],2) 
%接口描述: X的预测的初始数列,|X|>4,K是指向后进行预测的个数
%命令格式: 程序保存的文件名,eg:huise.m  则命令是: huise([579.8 547.5 527.0 492.3 437.0],5) 
 if nargout>3;
    error(‘Too many output argument.‘);
end
 if nargin==1,k=1;x_orig=X;
 
elseif nargin==0|nargin>2
 error(‘Wrong number of input arguments.‘);
 end
 x_orig=X;
predict=k;                                %AGO 处理,即是对初始数列进行一阶累加
 x=cumsum(x_orig);                         %计算系数(a 和 u)------------------------
 n=length(x_orig);                           %生成矩阵 B
 
for i=1:(n-1);
  B(i)=-(x(i)+x(i+1))/2;
 end
 B=[B‘ ones(n-1,1)];                            %生成矩阵 Y
 
for i=1:(n-1);
  y(i)=x_orig(i+1);
 end
 Y=y‘;                                     %计算系数 a=au(1) u=au(2)
 
au=(inv(B‘*B))*(B‘*Y);            %--------------------------------------------------------
                                             %把huise模型公式转换成符号
 coef1=au(2)/au(1);
 coef2=x_orig(1)-coef1;
 coef3=0-au(1);
 costr1=num2str(coef1);
 costr2=num2str(abs(coef2));
 costr3=num2str(coef3);
 eq=strcat(costr1,‘+‘,costr2,‘e^‘,costr3,‘*(t-1))‘);            %计算每一个值
 
for t=1:(n+predict)
 mcv(t)=coef1+coef2*exp(coef3*(t-1));
 end
 x_mcv0=diff(mcv);
 x_mcve=[x_orig(1) x_mcv0]                         %输出图形中的各点
 x_mcv=diff(mcv(1:end-predict));
 x_orig_n=x_orig(2:end);
 x_c_error=x_orig_n-x_mcv;
 x_error=mean(abs(x_c_error./x_orig_n));
 
if x_error>0.2                                      %相对误差的均值
disp(‘model disqualification!‘);
 elseif x_error>0.1
 disp(‘model check out‘);
 else
 disp(‘model is perfect!‘);
 end                                    
 plot(1:n,x_orig,‘o‘,1:n+predict,x_mcve);
 p=x_mcve(end-predict+1:end);                      %画出预测模型和初始数列的点
 xlabel(‘年份(从第一个数据年份起)‘);
ylabel(‘产水量(万吨)‘);
 title(‘灰度模型    GM(1,1)‘);
 grid on
 y=eq;
 e=x_error;
 p=x_mcve(end-predict+1:end);

灰色模型的malab程序,布布扣,bubuko.com

时间: 2024-10-14 23:19:40

灰色模型的malab程序的相关文章

GM11灰色模型

作者:桂. 时间:2017-08-12  08:34:06 链接:http://www.cnblogs.com/xingshansi/p/7348714.html 前言 灰色模型(Gray model)常用来对数据进行预测,这里简要记录其思路. 一.名称由来 灰色模型(Gray Model),邓聚龙教授1982年提出. 常见系统分类: 白色系统是指一个系统的内部特征是完全 已知的,即系统的信息是完全充分的. 黑色系统是指一个系统的内部信息对外界来说是一无所知的,只能通过它与外界的联系来加以观测研

MATLAB解灰色模型

目前,灰色模型已经成为社会.经济.科教.技术等很多领域进行预测.决策.评估.规划.控制.系统分析和建模的重要方法之一.特别是它对时间序列短.统计数据少.信息不完全系统的建模与分析,具有独特的功效. 其实灰色模型很简单,具体的步骤我就不再一一赘述,我就灰色模型用MATLAB的解法与大家分享一下.我以一组简单的数据为例,如下: 例: 近几年,某种商品的价格如下表: 年份 2006 2007 2008 2009 2010 2011 2012 价格 71.1 72.4 72.4 72.1 71.4 72

0729------Linux网络编程----------使用 select 、poll 和 epoll 模型 编写客户端程序

1.select 模型 1.1 select 函数原型如下,其中 nfds 表示的描述符的最大值加1(因为这里是左闭右开区间),中间三个参数分别表示要监听的不同类型描述符的集合,timeout用来表示轮询的时间间隔,这里用NULL表示无限等待. 1.2 使用 select函数编写客户端程序的一般步骤: a)初始化参数,包括初始化监听集合read_set并添加fd,以及初始化监听的最大描述符 maxfd 和select的返回值 nready: b)将read_set 赋值给 ready_set,因

灰色模型GM(1,1) 代码及存在的问题

  “客观世界的很多实际问题,其内部的结构.参数以及特征并未全部被人们了解,人们不可能象研究白箱问题那样将其内部机理研究清楚,只能依据某种思维逻辑与推断来构造模型.对这类部分信息已知而部分信息未知的系统,我们称之为灰色系统.灰色系统的本征即灰色,研究在信息大量缺乏或紊乱的情况下,如何对实际问题进行分析和解决. GM(1,1)模型适用于具有较强指数规律的序列,多只能描述单调的变化过程.” 但是可以说应用最普遍了.多种灰色模型具体的理论推导及应用条件见<算法大全  第二十八章灰色系统理论及其应用>

数学建模 数学模型 GM模型 灰色模型 灰色预测(一)

灰色模型能够有效地进行预测 , 尤其是在数据比较模糊的时候 , 比如预测什么时候下雨 , 先讲解一个简单并且最常用的GM模型 GM(1,1) 生成列 设原始时间序列为x1(t) t为时间t=0,1,2,3-.. , 生成列x0(t)就是原始序列的差分 即 任取t>=1 有: x0(t)=x1(t)-x1(t-1) 紧邻均值列 顾名思义 , 就是取平均值. z1=0.5*x1(t) + 0.5*x1(t-1) GM(1,1)模型 其实 生成列就是原始序列的导数即: x1(t)'=x0(t) =x1

灰色模型

1.灰色模型为预测模型.预测模型一般用回归分析(需要大量数据,数据较少会造成较大误差) 优点:灰色模型需要的数据较少,运算方便,是处理小样本预测的有效工具. 缺点:不考虑系统内在机理,有所会出现较大错误.在内在机理明确的系统中,不推荐使用. 2.特点: (1)用灰色数学处理不确定量,使之量化 (2)充分使用已知信息寻求系统的运动规律 (3)能处理贫信息系统 例题:

灰色理论预测模型

灰色理论 通过对原始数据的处理挖掘系统变动规律,建立相应微分方程,从而预测事物未来发展状况.  优点:对于不确定因素的复杂系统预测效果较好,且所需样本数据较小:  缺点:基于指数率的预测没有考虑系统的随机性,中长期预测精度较差. 灰色预测模型 在多种因素共同影响且内部因素难以全部划定,因素间关系复杂隐蔽,可利用的数据情况少下可用,一般会加上修正因子使结果更准确.  灰色系统是指“部分信息已知,部分信息未知“的”小样本“,”贫信息“的不确定系统,以灰色模型(G,M)为核心的模型体系. 灰色预测模型

灰色系统理论与应用

现实生活中的很多实际问题的内部结构,参数以及特征等并不是完全已知的,人们只能根据思维逻辑推断来构造模型研究.这种部分信息已知而部分信息未知的系统被称为灰色系统.作为实际问题的研究,灰色系统是最为常见,本文主要围绕灰色系统展开一系列的学习. 一 灰色系统概述 1.灰色系统 听到灰色系统,相信大家肯定会想为什么要是“灰色”系统,那是不是也有个白色.黑色系统?对,确实如此,白色系统用来指那些信息完备,发展变化规律明显,定量描述较方便,结构和参数较具体的系统:对应的黑色系统就是那些内部结构完全未知的系统

socket阻塞与非阻塞,同步与异步、I/O模型,select与poll、epoll比较

1. 概念理解 在进行网络编程时,我们常常见到同步(Sync)/异步(Async),阻塞(Block)/非阻塞(Unblock)四种调用方式: 同步/异步主要针对C端: 同步:      所谓同步,就是在c端发出一个功能调用时,在没有得到结果之前,该调用就不返回.也就是必须一件一件事做,等前一件做完了才能做下一件事. 例如普通B/S模式(同步):提交请求->等待服务器处理->处理完毕返回 这个期间客户端浏览器不能干任何事 异步:      异步的概念和同步相对.当c端一个异步过程调用发出后,调