文档库 最新最全的文档下载
当前位置:文档库 › GM(1,1)模型中的MATLAB程序

GM(1,1)模型中的MATLAB程序

GM(1,1)模型中的MATLAB程序
GM(1,1)模型中的MATLAB程序

GM (1,1)模型中的MATLAB 程序

一、GM (1,1)模型的建立:

(1)、一次累加生成序列的MA TLAB 命令:

>> X0=[142 340 200 500 900 800 490 980 463 1100];

>> X1(1)=X0(1)

X1 =

142

>> for k=2:10

X1(k)=X1(k-1)+X0(k)

end

X1 =142 482 682 1182 2082

2882 3372 4352 4815 5915

(2)、由一次累加生成序列紧邻均值生成的)1(Z 的MA TLAB 命令:

>> X0=[142 340 200 500 900 800 490 980 463 1100];

>> X1(1)=X0(1);

>> for k=2:10

X1(k)=X1(k-1)+X0(k)

Z(k)=(1/2)*(X1(k)+X1(k-1))

End

X1 =142 482 682 1182 2082

2882 3372 4352 4815 5915

Z =

1.0e+003 *

0 0.3120 0.5820 0.9320 1.6320 2.4820 3.1270

3.8620

4.5835

5.3650

(3)、GM (1,1)的灰微分方程模型为:b k aZ k X =+)()()1()0(。

设∧α为待估计参数向量,???

???=∧

b a α。

利用最小二乘法得到Y B B B ')'(1-∧

=α,MA TLAB 程序如下:

>> B=[-Z(2:10)',ones(9,1)];

>> Y=(X0(2:10))';

>> alfa=inv(B'*B)*B'*Y

alfa =

-0.1062

371.6018

(4)、GM (1,1)的灰微分方程模型 b k aZ k X =+)()()1()0(的时间相应序列为:

a

b e a b X k X ak +?-=+-∧))1(()1()0()1( 由.6018.371,1062

.0=-=b a 令.)1(,)0(u X v a b u -== 计算得到1.3499-=u , 1.3641=v 。

MATLAB 程序如下:

>> a=-0.1062;

>> b=371.6018;

>> X0=[142 340 200 500 900 800 490 980 463 1100];

>> u=b/a

u =

-3.4991e+003

>> v=X0(1)-u

v =

3.6411e+003

>> for n=0:9

X2(n+1)=v*exp(-a*n)+u

end

>>X2 =

1.0e+003 *

0.1420 0.5500 1.0036 1.5081 2.0692 2.6931 3.3868 4.1584 5.0163 5.9705

(5)、将∧)1(X 进行一次累减得到预测值序列∧∧∧

-+=+)()1()1()

1()1()0(k X k X k X ,将∧

+)1()0(k X 记作)3(X ,利用MATLAB 计算,程序如下: >> X3(1)=X2(1)

X3 =

142

>> for m=1:9

X3(m+1)=X2(m+1)-X2(m)

End

X3 = 142.0000 407.9616 453.6714 504.5026 561.0293 623.8894 693.7926 771.5281 857.9734 954.1044

二、模型的检验——后验差检验:

(1)、原始序列的均值:[]

)10(...)2()1(101)0()0()0()0(X X X X

+++?=,计算结果得到)0(X 的MA TLAB 命令如下:

>> X0mean=mean(X0)

X0mean =

591.5000 (2)、原始序列的均方差1])([(1012)0()0(1--=

∑=n X i X S i ,计算的MATLAB 命令: >> X0std=std(X0)

X0std =

333.6516

(3)、计算预测值)3(X 与原始序列)0(X 的残差绝对值的序列)

3()0()0(X X -=?,得到的残

差序列的命令如下:

>> diata0=abs(X0-X3)

diata0 =0 67.9616 253.6714 4.5026 338.9707 176.1106 203.7926 208.4719 394.9734 145.8956

(4)、残差序列的均值)0(?[]

)10(...)2()1(101)0()0()0(?++?+??=,得到残差均值的命令如下:>> diata0mean=mean(diata0)

diata0mean =

179.4350

残差序列的均方差1])([(1012)0()0(2-?-?=

∑=n i S i ,计算的命令如下:

>> diata0std=std(diata0)

diata0std =

131.3251

(5)、1

2S S c =,命令如下: >> c=diata0std/X0std

c =

0.3936

(6)、计算小残差概率:

}6745.0)({1)0()0(S i p p ?

>> S0=0.6745*X0std

S0 =

225.0480

>> e=abs(diata0-diata0mean)

e =

179.4350 111.4734 74.2363 174.9324 159.5357 3.3244 24.3575 29.0369 215.5383 33.5394

云模型matlab程序

1.绘制云图 Ex=18 En=2 He=0.2 hold on for i=1:1000 Enn=randn(1)*He+En; x(i)=randn(1)*Enn+Ex; y(i)=exp(-(x(i)-Ex)^2/(2*Enn^2)); plot(x(i),y(i),'*') end Ex=48.7 En=9.1 He=0.39 hold on for i=1:1000 Enn=randn(1)*He+En; x(i)=randn(1)*Enn+Ex; y(i)=exp(-(x(i)-Ex)^2/(2*Enn^2)); plot(x(i),y(i),'*')

end 2.求期望、熵及超熵 X1=[51.93 52.51 54.70 43.14 43.85 44.48 44.61 52.08]; Y1=[0.91169241573 0.921875 0.96032303371 0.75737359551 0.76983848315 0.7808988764 0.78318117978 0.9143258427]; m=8; Ex=mean(X1) En1=zeros(1,m); for i=1:m En1(1,i)=abs(X1(1,i)-Ex)/sqrt(-2*log(Y1(1,i))); end En=mean(En1); He=0; for i=1:m He=He+(En1(1,i)-En)^2; end En=mean(En1) He=sqrt(He/(m-1)) 3.平顶山so2环境: X1=[0.013 0.04 0.054 0.065 0.07 0.067 0.058 0.055 0.045]; Y1=[0.175675676 0.540540541 0.72972973 0.878378378

DEA的Matlab程序(数据包络分析)

模型((P C2R)的MATLAB程序 clear X=[]; %用户输入多指标输入矩阵X Y=[]; %用户输入多指标输出矩阵Y n=size(X',1); m=size(X,1); s=size(Y,1); A=[-X' Y']; b=zeros(n, 1); LB=zeros(m+s,1); UB=[]; for i=1:n; f= [zeros(1,m) -Y(:,i)']; Aeq=[X(:,i)' zeros(1,s)]; beq=1; w(:,i)=LINPROG(f,A,b,Aeq,beq,LB,UB); %解线性规划,得DMU;的最佳权向量w; E(i, i)=Y(:,i)'*w(m+1:m+s,i); %求出DMU i的相对效率值E ii end w %输出最佳权向量 E %输出相对效率值E ii Omega=w(1:m,:) %输出投入权向量。 mu=w(m+1:m+s,:) %输出产出权向量。 模型(D C2R)的MATLAB程序 clear X=[]; %用户输入多指标输入矩阵X Y=[]; %用户输入多指标输出矩阵Y n=size(X',1); m=size(X,1); s=size(Y,1); epsilon=10^-10; %定义非阿基米德无穷小 =10-10 f=[zeros(1,n) -epsilon*ones(1,m+s) 1]; %目标函数的系数矩阵: 的系数为0,s-,s+的系数为- e, 的系数为1; A=zeros(1,n+m+s+1); b=0; %<=约束; LB=zeros(n+m+s+1,1); UB=[]; %变量约束; LB(n+m+s+1)= -Inf; %-Inf表示下限为负无穷大。 for i=1:n; Aeq=[X eye(m) zeros(m,s) -X(:,i) Y zeros(s,m) -eye(s) zeros(s,1)]; beq=[zeros(m, 1 ) Y(:,i)]; w(:,i)=LINPROG (f,A,b,Aeq,beq,LB,UB); %解线性规划,得DMU的最佳权向量w; end w %输出最佳权向量 lambda=w(1:n,:) %输出 s_minus=w(n+1:n+m,:) %输出s- s_plus=w(n+m+1:n+m+s,:) %输出s+ theta=w(n+m+s+1,:) %输出

云模型简介及个人理解matlab程序

云模型简介及个人理解m a t l a b程序 集团档案编码:[YTTR-YTPT28-YTNTL98-UYTYNN08]

随着不确定性研究的深入,越来越多的科学家相信,不确定性是这个世界的魅力所在,只有不确定性本身才是确定的。在众多的不确定性中,和是最基本的。针对和在处理不确定性方面的不足,1995年我国工程院院士教授在概率论和模糊数学的基础上提出了云的概念,并研究了模糊性和随机性及两者之间的关联性。自李德毅院士等人提出云模型至今,云模型已成功的应用到、、、智能控制、等众多领域. 设是一个普通集合。 , 称为论域。关于论域中的模糊集合,是指对于任意元素都存在一个有稳定倾向的随机数,叫做对的隶属度。如果论域中的元素是简单有序的,则可以看作是基础变量,隶属度在上的分布叫做隶属云;如果论域中的元素不是简单有序的,而根据某个法则,可将映射到另一个有序的论域上,中的一个且只有一个和对应,则为基础变量,隶属度在上的分布叫做隶属云[1] 。 数字特征

云模型表示自然语言中的基元——语言值,用云的数字特征——期望Ex,熵En和超熵He表示语言值的数学性质 [3] 。 期望 Ex:云滴在论域空间分布的期望,是最能够代表定性概念的点,是这个概念量化的最典型样本。 熵 En:“熵”这一概念最初是作为描述热力学的一个状态参量,此后又被引入统计物理学、信息论、复杂系统等,用以度量不确定的程度。在云模型中,熵代表定性概念的可度量粒度,熵越大,通常概念越宏观,也是定性概念不确定性的度量,由概念的随机性和模糊性共同决定。一方面, En是定性概念随机性的度量,反映了能够代表这个定性概念的云滴的离散程度;另一方面,又是定性概念亦此亦彼性的度量,反映了在论域空间可被概念接受的云滴的取值范围。用同一个数字特征来反映随机性和模糊性,也必然反映他们之间的关联性。 超熵 He:熵的不确定性度量,即熵的熵,由熵的随机性和模糊性共同决定。反映了每个数值隶属这个语言值程度的凝聚性,即云滴的凝聚程度。超熵越大,云的离散程度越大,隶属度的随机性也随之增大,云的厚度也越大。

云模型简介及个人理解matlab程序文件

随着不确定性研究的深入,越来越多的科学家相信,不确定性是这个世界的魅力所在,只有不确定性本身才是确定的。在众多的不确定性中,随机性和模糊性是最基本的。针对概率论和模糊数学在处理不确定性方面的不足,1995年我国工程院院士李德毅教授在概率论和模糊数学的基础上提出了云的概念,并研究了模糊性和随机性及两者之间的关联性。自李德毅院士等人提出云模型至今,云模型已成功的应用到自然语言处理、数据挖掘、 设是一个普通集合。 , 称为论域。关于论域中的模糊集合,是指对于任意元素都存在一个有稳定倾向的随机数,叫做对的隶属度。如果论域中的元素是简单有序的,则可以看作是基础变量,隶属度在上的分布叫做隶属云;如果论域中的元素不是简单有序的,而根据某个法则,可将映射到另一个有序的论域上,中的一个且只有一个和对应,则为基础变量,隶属度在上的分布叫做隶属云[1] 。 数字特征 云模型表示自然语言中的基元——语言值,用云的数字特征

——期望Ex,熵En和超熵He表示语言值的数学性质[3] 。 期望 Ex:云滴在论域空间分布的期望,是最能够代表定性概念的点,是这个概念量化的最典型样本。 熵 En:“熵”这一概念最初是作为描述热力学的一个状态参量,此后又被引入统计物理学、信息论、复杂系统等,用以度量不确定的程度。在云模型中,熵代表定性概念的可度量粒度,熵越大,通常概念越宏观,也是定性概念不确定性的度量,由概念的随机性和模糊性共同决定。一方面, En是定性概念随机性的度量,反映了能够代表这个定性概念的云滴的离散程度;另一方面,又是定性概念亦此亦彼性的度量,反映了在论域空间可被概念接受的云滴的取值范围。用同一个数字特征来反映随机性和模糊性,也必然反映他们之间的关联性。 超熵 He:熵的不确定性度量,即熵的熵,由熵的随机性和模糊性共同决定。反映了每个数值隶属这个语言值程度的凝聚性,即云滴的凝聚程度。超熵越大,云的离散程度越大,隶属度的随机性也随之增大,云的厚度也越大。 1.绘制云图 Ex=18

基于云模型的粒计算方法研究

第6章从云模型理解模糊集合的争论与发展

第1章基于云模型的粒计算方法应用 云模型是一个定性定量转换的双向认知模型,正向高斯云和逆向高斯云算法实现了一个基本概念与数据集合之间的转换关系;本文基于云模型和高斯变换提出的高斯云变换方法给出了一个通用的认知工具,不仅将数据集合转换为不同粒度的概念,而且可以实现不同粒度概念之间的柔性切换,构建泛概念树,解决了粒计算中的变粒度问题,有着广阔的应用前景。 视觉是人类最重要的感觉,人类所感知的外界信息至少有80%以上都来自于视觉[130]。图像分割[131]是一种最基本的计算机视觉技术,是图像分析与理解的基础,一直以来都受到人们的广泛关注。目前图像的分割算法有很多,包括大大小小的改进算法在内不下千种,但大致可以归纳为两类[132]。第一类是采用自顶向下的方式,从数学模型的选择入手,依靠先验知识假定图像中的部分属性特征符合某一模型,例如马尔科夫随机场、引力场等,利用模型描述图像的邻域相关关系,将图像低层的原始属性转换到高层的模型特征空间,进而建模优化求解所采用模型的参数,通常是一个复杂度非常高的非线性能量优化问题。在特征空间对图像建模,其描述具有结构性、分割结果也一般具有语义特征,但是由于对数据的未知性、缺乏足够先验知识的指导,导致模型的参数选择存在一定的困难。第二类是采用自底向上的方式,从底层原始数据入手,针对图像灰度、颜色等属性采用数据聚类的方法进行图像分割,聚类所采用的理论方法通常包括高斯变换、模糊集、粗糙集等;或者预先假设图像的统计特性符合一定的分类准则,通过优化准则产生分割结果,例如Otsu方法的最大方差准则[133][134]、Kapur方法的最大熵准则[135][136]等。这类方法虽然缺乏语义信息表达,但是直接在数据空间建模,方法更具普适性和鲁棒性。 随着计算机视觉研究的深入,简单的图像分割已经不能满足个性化的需求,有时候人们恰恰兴趣的是图像中亦此亦彼的那些不确定性区域,基于云模型的粒计算方法是一种不确定性计算方法,发现图像中存在的不确定性区域是它的一个重要能力。如何模拟人类自然视觉中的认知能力进行图像分割一直以来都是一个难点问题,而基于高斯云变换的可变粒计算正是用来模拟人类认知中的可变粒计算过程,因此可以利用高斯云变换对自然视觉认知能力中选择性注意能力进行形式化。武汉大学秦昆教授等曾基于云综合、云分解等云运算实现图像分割,正如第5章中的分析结果,基于内涵的概念计算方法随着层次的提升,概念脱离原始数据会增加误分率,甚至失效,而且无法实现自适应地概念数量和粒度优化。

正向云发生器代码(matlab)

正向云发生器matlab代码 %正向云算法:由数字特征到定量数据表示 %直接在程序中固定EX/EN/HE的值 Ex=0; En=1; He=0.2; n=2000; X = zeros(1,n); %产生一个1*n型矩阵,其元素都为0 Y = zeros(1,n); X= normrnd ( En, He, 1, n); %产生一个1*n型正态随机数矩阵,EX为期望,ENN为方差for i=1:n Enn=X(1,i); X(1, i) = normrnd ( Ex, Enn, 1) ; %产生一个正态随机数,EX为期望,ENN为方差(1*1型) Y(1, i) = exp ( - (X(1, i) - Ex) ^2 / (2* Enn^2) ) ; end plot(X(1,:),Y(1,:),'r.'); %画图语句 %倘若X(1,i)是确定的随机数时,本代码是自己输入确定值 %保存为.m文件时,文件名要是字母名,不要中文名 disp('- - - - -云发生器程序开始- - - - -'); Ex = input('输入期望值Ex:'); En = input('输入熵值En:'); He = input('输入超熵值He:'); n = input('输入需重复计算次数:'); X = zeros(1,n); %产生一个1*n型矩阵,其元素都为0 Y = zeros(1,n); X= normrnd ( En, He, 1, n); %产生一个1*n型正态随机数矩阵,EX为期望,He为方差Xi = input('输入随机数X(1,i):'); %手动输入固定随机数X for i=1:n

云模型实现图形-MATLAB程序

一维云模型 程序: clc clear Ex=170;En=5;He=0.5; n=5000; for i=1:n Enn=randn(1)*He+En; x(i)=randn(1)*Enn+Ex; y(i)=exp(-(x(i)-Ex)^2/(2*Enn^2)); end plot(x,y,'.r') title('5000个男生身高的一维云图') ylabel('确定度'); xlabel('身高值'); axis([150,190,0,1]) grid on 一维: clear vars;clc;close all; Ex1=-8; En1=0.7; He1=0.2; n1=200; Ex2=2.2; En2=2; He2=0.5; n2=800; Ex3=18; En3=4; He3=0.7; n3=1500; En1_t = normrnd(En1,He1,n1,1); data1 = normrnd(Ex1,En1_t,n1,1);

mu1 = exp(-0.5*((data1-Ex1)./En1_t).^2); En2_t = normrnd(En2,He2,n2,1); data2 = normrnd(Ex2,En2_t,n2,1); mu2 = exp(-0.5*((data2-Ex2)./En2_t).^2); En3_t = normrnd(En3,He3,n3,1); data3 = normrnd(Ex3,En3_t,n3,1); mu3 = exp(-0.5*((data3-Ex3)./En3_t).^2); figure(1); plot(data1,mu1,'.b',data2,mu2,'*r',data3,mu3,'+k'); axis equal; 二维云模型 程序: clc clear Ex1=170;En1=5;He1=0.5; Ex2=65;En2=3;He2=0.2; n=5000; for i=1:n

灰色系统预测GM(1,1)模型及其Matlab实现

灰色系统预测GM(1,1)模型及其Matlab 实现 预备知识 (1)灰色系统 白色系统是指系统内部特征是完全已知的;黑色系统是指系统内部信息完全未知的;而灰色系统是介于白色系统和黑色系统之间的一种系统,灰色系统其内部一部分信息已知,另一部分信息未知或不确定。 (2)灰色预测 灰色预测,是指对系统行为特征值的发展变化进行的预测,对既含有已知信息又含有不确定信息的系统进行的预测,也就是对在一定范围内变化的、与时间序列有关的灰过程进行 预测。尽管灰过程中所显示的现象是随机的、杂乱无章的,但毕竟是有序的、有界的,因此得到的数据集合具备潜在的规律。灰色预测是利用这种规律建立灰色模型对灰色系统进行预测。 目前使用最广泛的灰色预测模型就是关于数列预测的一个变量、一阶微分的GM(1,1)模型。它是基于随机的原始时间序列,经按时间累加后所形成的新的时间序列呈现的规律可用一阶线性微分方程的解来逼近。经证明,经一阶线性微分方程的解逼近所揭示的原始时间序列呈指数变化规律。因此,当原始时间序列隐含着指数变化规律时,灰色模型GM(1,1)的预测是非常成功的。 1 灰色系统的模型GM(1,1) 1.1 GM(1,1)的一般形式 设有变量X (0)={X (0)(i),i=1,2,...,n}为某一预测对象的非负单调原始数据列,为建立灰色预测模型:首先对X (0)进行一次累加(1—AGO, Acumulated Generating Operator)生成一次累加序列: X (1)={X (1)(k ),k =1,2,…,n} 其中 X (1) (k )= ∑ =k i 1 X (0)(i) =X (1)(k -1)+ X (0)(k ) (1) 对X (1)可建立下述白化形式的微分方程: dt dX )1(十) 1(aX =u (2) 即GM(1,1)模型。 上述白化微分方程的解为(离散响应): ∧ X (1)(k +1)=(X (0)(1)- a u )ak e -+a u (3) 或 ∧ X (1)(k )=(X (0)(1)- a u ))1(--k a e +a u (4)

-word版本hslogic_利用云模型估计车速

1.在隧道内放置多个地感线圈(间距相同),车辆通过时、对通过的相邻两个线圈(或单线圈)的脉冲信号数据进行实时采集,首先利用云模型算法(正向云与逆向云算法结合)或其他,计算得到车速的估计值,将车速估计结果与行车时间作为车辆行驶位置判定的依据,再采用云推理得到车辆行驶位置的估计值,对所估计的结果验证,实现对车辆位置的实时精确估计。 2.最后还想验证一下估计结果的准确度 3.做一下参数寻优,对比结果 4.补充要求:我想用脉冲频率波形数据哦,因为有个原始波形的图更好的。。 (我当时说给你一篇论文,用那个上面的数据。。不知道能不能用。。。见附带的论文) 二、课题解决思路简介 基于"隧道内放置多个地感线圈",主要是汽车通过多个线圈,产生不同时刻的脉冲,然后计算每个脉冲之间的时间差,来获得车速的计算。 这里,我们主要需要的数据时每个线圈之间的距离参数以及每个脉冲之间的时间间隔,然后我们通过云模型来算法得到车速的估计值。根据得到的车速,我们可以得到最后的位置。 然后,我们可以根据论文最后一章的分析方法来分析最后结果的准确度。 对于参数优化,主要是针对云模型的初始参数,我们使用随机数,然后通过PSO进行迭代优化,从而获得最佳的参数,并估算得到最佳的值。 最后,将普通算法得到的结果和PSO优化之后的结果进行对比,从而验证优化算法的优势。 最后,你需要的是脉冲频率波形,这个,我们在设计的时候,进行处理,可以保证。 三、课题设计介绍和仿真说明 3.1正向云和逆向云 首先介绍一下基本的云模型,正向云和逆向云,其基本的理论如下所示: 云模型的发生器就是指云的生成算法,发生器的形式可以有很多种,一般都采用软件的形式加以实现。云的发生器大体上可以分为正向云发生器和逆向云发生器。正向发生器是指从定性到定量之间的转换模型,即由云的三个数字特征产生云滴的具体过程。图1为正向云模型发生器示意图。

Matlab编程实例

Matlab非线性方程求解器fsolve总结 fsolve是采用最小二乘法来求解非线性方程。它的一般求解方式为: X=FSOLVE(FUN,X0,OPTIONS) 其中,fun是要求解的非线性方程,X0是变量初值,options由optimset函数产生的结构体,用于对优化参数的设置,可以省略(采用默认值)。 Fsolve可以求解简单的一维非线性方程,如: x = fsolve(@myfun,[0.5 2 4],optimset('Display','iter')); %求解在初值分别为0.5,2和4时方程的解 其中,函数myfun的定义为: function F = myfun(x) F = sin(x); Fsolve还可以求解大型的非线性方程组,如 x0 = [51.6;rand;unifrnd(-1,1);rand]; h=optimset; h.MaxFunEvals=20000; h.MaxIter=5000; h.Display='off'; [p,fval] = fsolve(@f,x0,options); 此时,方程组可以写成矩阵形式: function F=f(x) F=[x(1)+x(2)*(1-exp(-(x(3)*(0)^x(4))))-51.61; x(1)+x(2)*(1-exp(-(x(3)*(9.78)^x(4))))-51.91; x(1)+x(2)*(1-exp(-(x(3)*(30.68)^x(4))))-53.27; x(1)+x(2)*(1-exp(-(x(3)*(59.7)^x(4))))-59.68;]; 自编基于龙格库塔法的Matlab数值积分函数 function varargout = rkkt(varargin) %============================================== % 采用四阶龙格库塔法数值积分 % rkkt(F,x0,t0,tfinal,ts) % F为函数名 % x0为积分变量的初始值 % t0为积分初始时刻 % tfinal为积分终止时刻 % ts为积分步长 % example,如果有一个函数名为foo,则,求解指令为 % rkkt(@foo,x0,t0,tfinal,tspan);

相关文档