搜档网
当前位置:搜档网 › 基于Matlab的AR模型参数估计

基于Matlab的AR模型参数估计

基于Matlab的AR模型参数估计
基于Matlab的AR模型参数估计

*河南省自然科学基金资助项目(项目编号:03011050800)河南理工大学博士基金资助项目(项目编号:648141)

收稿日期:2004年7月

基于Matlab 的AR 模型参数估计*

陈国强 赵俊伟 黄俊杰 刘万里

河南理工大学

摘 要:基于Matlab 用时间序列的最小二乘估计和FPE 、AIC 、BIC 准则对AR(n)模型进行参数估计。用实例说明运用Matlab 进行AR(n )参数估计,编程简单,分析直观。

关键词:参数估计, 检验准则, Matlab, AR 模型

Matlab -based Parameter Estimation of AR Model

Chen Guoqiang Zhao Junwei Huang Junjie et al

Abstract:Based on Matlab,parameters of AR(n)model are estimated under the evaluation cri terions of FPE,AIC and BIC.The example shows that the parameter es timation of AR model using Matlab is convenient because of si mple programming and visual analysis.

Keywords:parameter estimation, evaluation criterion, Matlab, AR model

1 引言

模型参数估计和适用性检验是时间序列分析中极其重要的内容[1]

。在参数估计和适用性检验中,

往往要进行大量的数学运算。采用Fortran 、C 等编制程序,使用时既需要对算法进行深刻地了解,又需要熟练地掌握所用语言的语法和编程技巧,给工程应用人员的使用增加了难度。而Matlab 语言强大的计算和图形处理功能使得许多应用领域的各种计算、演算、模拟等工作变得简单,是数据处理的强有力工具[2,3]

。本文对基于Matlab 的时间序列AR(n )模型的参数估计和适用性检验进行了讨论。 2 AR(n )模型参数估计与检验准则

[2]

对于时间序列{x t },t =1,2, ,N ,其AR(n )为x t = 1x t-1+ 2x t-2+ + n x t-n +a t ,a t ~NID(0,

2a )

(1)

参数估计就是按照一定的方法估计出 1, 2,

, n , 2a 这n +1个参数。由于有

a t =x t - 1x t-1- 2x t-2- + n x t-n

(2) 2a =

1

N -n N

t=n +1(x t - n

i =1 i x t-i

)2

(3)

于是,一旦估计出 i ,就可以按照式(3)估计出 2a ,因此AR (n)模型的参数估计即是指对 1, 2, , n (t =1,2, ,n )这n 个参数的估计。

参数估计的方法分为直接法和间接法两类:直接法包括最小二乘法、解Yule -Walker 方程法、U-l

rych -Clayton 法等;间接法包括LUD 法、BSMF 法、Burg 法等。

上述方法中,用最小二乘法进行参数估计非常简单,参数估计无偏,精度高,可表示为如下方程组

Y =X +a

式中,Y =[x n +1 x n +2 x N ]T , =[ 1 2 n ]T ,a =[a n +1 a n +2 a N ]T

X =

x n

x n -1 x 1x n +1x n +

2

x 2x N -1

x N -2

x N -n

(4)

则 的最小二乘估计为

=(X T X )-1X T Y

(5)

模型的适用性检验准则有白噪声检验准则、参余平方和检验准则、Akaike 信息检验准则等。本文以直接最小二乘估计和Akaike 信息检验准则的FPE (Final Prediction Error)、AIC(An Informa tion Criterion)、BIC 准则结合具体的实例进行讨论。

FPE 准则函数:

FPE(n)=

N +n N -n 2

a

(6)

AIC 准则函数:

AIC(n)=N ln 2a +2n

(7)

BIC 准则函数:

BIC(n)=N ln 2a +n ln N

(8)

在各自的准则函数取得最小值时的模型为适用模型。

3 实例分析

由表1所示的时间序列,建立AR (n )模型;编写Matlab 程序进行计算,n 从1到30运用最小二乘

39

2005年第39卷 4

法进行计算,得到 2a 和FPE 、AIC 、BIC 准则函数曲线(见图1)。

表1 时间序列

162175162156174157154177159171166162171183163152165175167170170167171164163170164162167166153173158174170167157178163163158154149178160164160171153178160155169165161166169172169161163171171163171165159161157161175151164180162153182158166178169161174155165167165165169165162

151

171

169

157

173

163

161

168

152

(

a)

(b)

图1 2a 和准则函数曲线

从图中可以得出如下结论: 随着模型阶次的升高, 2a 的总体趋势是下降的(见图1a),在n 较小时,下降很快,随着n 的增加,下降趋势变慢,直到n =N /2(N 为偶数)时下降为0; 检验准则函数的变化趋势与

2a

十分相似(见图1b); 不论用哪种准

则进行检验,都是在n =16时模型最为合适。

AR(16)模型参数估计如下:

=[-0 0294 -0 0477 0 2240 0 0990 -0 1068

0 3678 -0 2224 0 2454 0 0979 -0 0022 0 0262 -0 0250 0 0990 -0 0041 0 0793 0 1972]T

2a =0

3686 4 Matlab 程序

数据文件data.txt 为一文本文件,其内容如表1

所示。主要计算程序如下:

N=100; %数据个数fn=fopen( data.txt , r );%打开文件xt=fscanf(fn, %f );%读如数据fclose(fn);%关闭文件

for n=1:30 Y=xt; Y(1:n)=[]; m=N -n;X=[];%构造系数矩阵X for i=1:m for j=1:n

X(i,j)=xt(n+i-j); end end

%待估计参数

fai=inv(X *X)*(X *Y) %方差

Delta(n)=(Y -X*fai) *(Y -X*fai)/(N -n); %FPE 准则

cri ter i on(n,1)=(N+n)*Delta/(N -n); %AIC 准则

cri ter i on(n,2)=N*log(Delta)+2*n; %BIC 准则

cri ter i on(n,3)=N*log(Delta)+n*log(log(N));end

5 结语

(1)对于AR(n )模型适用性检验,运用Akaike

信息检验准则的FPE 、AIC 和BIC 准则得出的模型阶次相差不大,准则函数的趋势基本相同。

(2)Matlab 具有强大的数据和图形处理功能,运用Matlab 进行时间序列分析,思路简单,编程方便,可显著提高数据处理的效率。

参考文献

1 杨叔子,吴 雅等.时间序列分析.武汉:华中理工大学出版社,1994

2 导向科技.MATLAB 6.0程序设计与实例应用.北京:中国铁道出版社,2001

3 董言治,刘松涛等.基于Matlab 的时间序列分析和动态数据建模.计算机工程,2003,29(12):170~172第一作者:陈国强:硕士,河南理工大学机械工程系,454000河南省焦作市

40

工具技术

云模型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

matlab程序设计与应用(第二版)第三章部分课后答案

第三章1. (1)A=eye(3) (2)A=100+100*rand(5,6) (3)A=1+sqrt(0.2)*randn(10,50) (4)B=ones(size(A)) (5)A+30*eye(size(A)) (6)B=diag(diag(A)) 2. B=rot90(A) C=rot90(A,-1) 3. B=inv(A) ;A的逆矩阵 C=det(A) ;A的行列式的值 D=A*B E=B*A D=E 因此A与A-1是互逆的。 4. A=[4 2 -1;3 -1 2;12 3 0]; b=[2;10;8]; x=inv(A)*b x = -6.0000 26.6667 27.3333 5. (1) diag(A) ;主对角线元素 ans = 1 1 5 9 triu(A) ;上三角阵

ans = 1 -1 2 3 0 1 -4 2 0 0 5 2 0 0 0 9 tril(A) ;下三角阵 ans = 1 0 0 0 5 1 0 0 3 0 5 0 11 15 0 9 rank(A) ;秩 ans = 4 norm(A) ;范数 ans = 21.3005 cond(A) ;条件数 ans = 11.1739 trace(A) ;迹 ans = 16 (2)略 6. A=[1 1 0.5;1 1 0.25;0.5 0.25 2] A = 1.0000 1.0000 0.5000 1.0000 1.0000 0.2500 0.5000 0.2500 2.0000

[V,D]=eig(A) V = 0.7212 0.4443 0.5315 -0.6863 0.5621 0.4615 -0.0937 -0.6976 0.7103 D = -0.0166 0 0 0 1.4801 0 0 0 2.5365

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

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

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

MATLAB程序设计基础

第三章MATLAB程序设计基础 chapter 3: Foundation of MATLAB program design 一、数据及数据文件(Data and Data file) 1. 数据类型:(Data mode)为适应各种不同计算和处理的需求,MATLAB提供了多种数据类型,主要有: 数值数组(Numeric array)— 包括整形(int8,uint8,int16,uint16,int32,uint32)单精度 (signal), 双精度(duble)(MATLAB最常用的变量类型), 稀疏(sparce)数组。按维数分有一维、二维和多维数 组。 Int---Integrate. Uint---Unsigned Integer data 字符数组(Character array):由字符串组成的数组 单元数组(Cell array):用不同类型和大小的数组组成的数组,同 一个元胞数组中各元胞的内容可以不同。 结构数组(Structure array):与单元数组类似,但其数据的组织能 力更强,更富于变化。 Java类(Java class):由JavaAPI或第三方定义的类函数。 函数句柄(Function handle):可以在一个参数列表中传递,并使 用feval运行. 在工作空间浏览器中不同的数据类型有着不同的图标标识。2. 数据文件(Data file) MATLAB支持的各种数据文件(Readable file formats of MATLAB)的主要类型及其存取方法如下述: (1)二进制数据文件:(Binary date file)以.mat为扩展名。是标准的MATLAB数据文件,以二进制编码形式存储。.mat文件可以由MATLAB提供的save和load命令直接存取。 (2)ASCⅡ码数据文件:(ASCⅡcode data file)扩展名为.txt, .dat

正向云发生器代码(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程序设计基础介绍

第一讲MATLAB编程基础 随机计算技术的发展,各种各样的应用软件越来越多,比如能够支持数学计算的软件就有多种:MATLAB、Mathmatica、Scilab等。MATLAB以其强大的矩阵计算能力使它在科学计算与工程设计中更具备竞争力,MATLAB集成了众多基本的数据处理功能,可以完美支持数值与非数值运算,本小节学习基于MATLAB的基本编程语法。 1、M文件 由MATLAB语句构成的程序通常作为文件保存在后缀为.m的文件中,称为M文件,可以使用任何一种文本编辑器来编写M文件。M文件的文件名不能用汉字,也不能用数字开头,只能用英文字符开头,后缀数字等,长度可达255个字符。M文件一般有两种类型:script文件(称为正本文件)与function文件(称为函数文件)。 1.1正本文件 正本文件是由用户编写的一个包含一系列MATLAB正本的文本文件,在MATLAB工作空间的命令行提示符“>>”后敲入这个M文件的文件名就可以依次执行这个M文件中的每条语句。当需要从命令行中执行多条命令时可以使用script文件,为此你只需要将希望执行的命令逐行写入script文件中,并保存在MATLAB工作目录下。概括起来正本文件有如下特点:(1)不需要任何实参代入,也不能返回任何输出参数;(2)其中的变量作用于整个工作空间; (3)使用工作空间中的数据;(4)不需要用到任何MATLAB关键字,直接在其中写可以执行的MATLAB语句;(5)可以利用百分号作注释。(6)不能包含任何自定义函数。

例题1本例说明一个script文件。如下语句计算一些三角函数在不同弧度时的函数值,并绘制花瓣的图象。由于语句较多,不方便在命令行中一条一条地执行,现在将这些语句利用文本编辑器逐行写入一个M文件petals.m 中,则形成了一个典型的script文件,并把它保存在MATLAB工作目录下。%文件名:petals.m theta=-pi:0.01:pi;%角大小 rho(1,:)=2*sin(5*theta).^2;%第一个花瓣 rho(2,:)=cos(10*theta).^3;%第二个花瓣 rho(3,:)=sin(theta).^2;%第三个花瓣 rho(4,:)=5*cos(3.5*theta).^3;%第四个花瓣 for k=1:4 polar(theta,rho(k,:))%Graphics output pause end 在命令行提示符后敲入文件名petals,则可以执行其中的每一条语句,结果产生四幅花瓣图象,见图1。如果你在命令行中敲入whos并回车,则可以看到这个文件中的所有变量,这说明script文件中的变量作用域为整个MATLAB工作空间。

云模型实现图形-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

《MATLAB程序设计》复习题

《MATLAB程序设计》复习题 一填空题 1 已知A=[ 2 5 6;1 7 8];B=[1 4 3;4 7 0];写出下列各指令运行的结果。 A & B 的运行结果为[1 1 1;1 1 0] 。 A== B的运行结果为[0 0 0 ;0 1 0] 。 2 产生3阶单位阵的命令为eye(3) ;产生4阶全1方阵的命令为ones(4)。 3 A=rand(5,8);b=size(A);c=length(A);则b和c的值分别为[5,8]和8。 4 求矩阵的特征值的指令为eig 。 5符号;可以使命令行不显示运算结果,% 用来表示该行为注释行。6在线形图型格式的设置中,字符r表示什么颜色(红色) 7fix函数四舍五入对数组[3.17,5.34,8.90,2.52]取整,结果为[3 5 8 2] 。 8 P, Q分别是个多项式的系数矢量,求P对应的多项式的根,使用的命令是roots(P) 9使2个plot的图形在同一个坐标显示,使用hold on 命令进行图形保持,使用grid on 命令为图形添加网格。 10 数据拟合采用___polyfit___函数;求不定积分采用___ int ___函数。 11 A=rand(2,5);b=size(A);c=length(A);则b和c的值分别为_2 5和5__ 12已知A是矩阵,求A的对角矩阵函数是___diag(A)____,求A的下三角矩阵函数是__tril(A)____。 13条形图由函数__bar___来实现。 14已知s=‘显示“hey”’,则s的元素个数是9 二解答题 1、A=[71,3,-8; 2,-9,8; 0,4,5] B=A’

灰色系统预测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)

MATLAB程序设计与应用

实验一 MATLAB 运算基础 第二题:已知 A=??????????7653877344-3412 B=??? ? ??????72-33021-31 求下列问题: 1) A+6*B 和A-B+I 2) A*B 和A.*B 3) A^3 A.^3 4) A/B B\A 5) [A,B] [A(1,3),:B.^2] 解: >> A=[12 34 -4;34 7 87;3 65 7]; B=[1 3 -1;2 0 3;3 -2 7]; I=[1 0 0;0 1 0;0 0 1]; (1) >> A+6*B ans = 18 52 -10 46 7 105 21 53 49 >> A-B+I ans = 12 31 -3 32 8 84 0 67 1 (2) >> A*B ans = 68 44 62 309 -72 596 154 -5 241 >> A.*B

ans = 12 102 4 68 0 261 9 -130 49 (3) >> A^3 ans = 37226 233824 48604 247370 149188 600766 78688 454142 118820 >> A.^3 ans = 1728 39304 -64 39304 343 658503 27 274625 343 (4) >> A/B ans = 16.4000 -13.6000 7.6000 35.8000 -76.2000 50.2000 67.0000 -134.0000 68.0000 >> B\A ans = 109.4000 -131.2000 322.8000 -53.0000 85.0000 -171.0000 -61.6000 89.8000 -186.2000 (5) >> [A,B] ans =

第三章 MATLAB 的程序设计基础

第三章 MATLAB程序设计基础 chapter 3: Foundation of MATLAB program design 1、数据及数据文件(Data and Data file) 1. 数据类型:(Data mode)用于编程和计算的数据类型 数组: 字符数组(Character array)、 (Numeric array)— 包括整形(int8,uint8,int16,uint16,int32,uint32)单精度 (signal), 双精度(duble)(MATLAB最常用的变量类 型),稀疏(sparce)数组。、 Int---Integrate. Uint---Unsigned Integer data 单元数组(Cell array)、 结构数组(Structure array) Java类(Java class) 函数句柄(Function handle) 在工作空间浏览器中不同的数据类型有着不同的图标标识, 2. 数据文件(Data file) MATLAB支持的各种数据文件(Readable file formats of MATLAB)及其调用方法和返回值见(表 3—2) (1)二进制数据文件:(Binary date file)以.mat为扩展名。是标准的 MATLAB数据文件,以二进制编码形式存储。.mat文件可以由 MATLAB提供的save和load命令直接存取。 (2)ASCⅡ码数据文件:(ASCⅡcode data file)扩展名为.txt, .dat 等,可以是在MATLAB环境下存储的,也可能是其他软件的计算结

果,可以被MATLAB调用,也可以用文本编辑器打开进行观察与修改。可以用save和load命令进行读入和存取。 (3).图象文件:(Graphics file)扩展名为.bmp, .jpg .tif等,用于图形图象处理,可以用imread和imwrite命令进行读入和存取。 (4).声音文件:(Sound file) 扩展名为.wav ,用waveread和wavwrite命令进行读入和存取。 Readable file formats. Data formats Command Returns MAT- MATLAB workspace load Variables in file. CSV- Comma separated numbers csvread Double array. DAT- Formatted text importdata Double array. DLM- Delimited text dlmread Double array. TAB- Tab separated text dlmread Double array. Spreadsheet formats XLS - Excel worksheet xlsread Double array and cell array. WK1- Lotus 123 worksheet wk1read Double array and cell array. Scientific data formats CDF - Common Data Format cdfread Cell array of CDF records FITS- Flexible Image Transport System fitsread Primary or extension table data HDF - Hierarchical Data Format hdfread HDF or HDF-EOS data set Movie formats AVI - Movie aviread MATLAB movie. Image formats TIFF - TIFF image imread Truecolor, grayscale or indexed image(s). PNG - PNG image imread Truecolor, grayscale or indexed image. HDF - HDF image imread Truecolor or indexed image(s). BMP - BMP image imread Truecolor or indexed image. JPEG - JPEG image imread Truecolor or grayscale image. GIF - GIF image imread Indexed image. PCX - PCX image imread Indexed image. XWD - XWD image imread Indexed image. CUR - Cursor image imread Indexed image. ICO - Icon image imread Indexed image. RAS - Sun raster image imread Truecolor or indexed. PBM - PBM image imread Grayscale image. PGM - PGM image imread Grayscale image. PPM - PPM image imread Truecolor image. Audio formats

-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);

相关主题