股票做线性预测的数学建模毕业设计.doc_第1页
股票做线性预测的数学建模毕业设计.doc_第2页
股票做线性预测的数学建模毕业设计.doc_第3页
股票做线性预测的数学建模毕业设计.doc_第4页
股票做线性预测的数学建模毕业设计.doc_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

股票做线性预测的数学建模毕业设计目录第一章绪论一本设计研究的目的及意义.1二主要研究内容及其发展现状.2三论文的主要内容及章节安排.2第二章股票线性预测方法 一关于线性预测及其FIR滤波器.3二股票线性预测原理.3三预测模型.5第三章. MATLAB及图形用户界面简介一MATLAB简介.7二GUI 图形用户界面简介.9三GUI建立的两大方法及其比较.10第四章. MATLAB程序设计及预测结果一主要程序编辑.14二计算机仿真股票线性预测模型.15结论.22致谢.23参考文献.24附录.25前言随着计算机技术和信息科学的飞速发展,信号处理已经逐渐成为信息科学的重要组成部分。所谓的信号处理就是对信号或数据进行分析、变换、综合等加工处理,以便更好地识别与应用。信号处理的应用已经深入到经济、金融等各种领域中,在涉及语音编码、地震和频率建模应用的时间序列分析中,线性预测是最为广泛的一种方法。本毕业设计借助MATLAB的技术工具软件对股票价格的数据信号图进行分析,来构造一个线性预测器。并用MATLAB生成一个豪华的界面,把线性预测的结果直观、明了的变现出来。本设计内容在理解信号与系统基本原理的前提下,利用MATLAB设计了一个线性预测系统,该系统利用一个离散时间有限脉冲响应(FIR)滤波器来解决属于预测建模等问题。预测股票市场反面的滤波器设计问题与大多数滤波器设计问题的频域特性相反,是完全用一种最小二乘预测问题的形式在时域给予表征的,这个最小二乘预测问题是用MATLAB算子来求解的。这是一个基于MATLAB计算机仿真的股票线性预测模型,它用股票的开盘、收盘、最高、最低四种价位为源信号进行预测,可以用选择滤波器的阶数来调整它的精确度,能够做到预测误差最小。第一章 绪论一选题目的及意义 股票是股份有限公司在筹集资本时向出资人发行的股份凭证,代表着其持有者(即股东)对股份公司的所有权。股票至今已有将近似400年的历史,它伴随着股份公司的出现而出现。随着企业经营规模扩大与资本需求不足要求一种方式来让公司获得大量的资本金,从而了以股份公司形态出现的,股东共同出资经营的企业组织。股份公司的变化和发展产生了股票形态的融资活动;股票融资的发展产生了股票交易的需求;股票的交易需求促成了股票市场的形成和发展;而股票市场的发展最终又促进了股票融资活动和股份公司的完善和发展。股票最早出现于资本主义国家。世界上最早的股份有限公司制度诞生于1602年在荷兰成立的东印度公司。股份公司这种企业组织形态出现以后,很快为资本主义国家广泛利用,成为资本主义国家企业组织的重要形式之一。伴随着股份公司的诞生和发展,以股票形式集资入股的方式也得到发展,并且产生了买卖交易转让股票的需求。这样,就带动了股票市场的出现和形成,并促使股票市场完善和发展。1611年,东印度公司的股东们在阿姆斯特丹股票交易所就进行着股票交易,并且后来有了专门的经纪人撮合交易。阿姆斯特丹股票交易所形成了世界上第一个股票市场。目前,股份有限公司已经成为最基本的企业组织形式之一;股票已经成为大企业筹资的重要渠道和方式,亦是投资者投资的基本选择方式;股票市场(包括股票的发行和交易)与债券市场成为证券市场的重要基本内容。股份公司、股票和股票市场无疑对资本主义国家的企业的经济发展起到了积极的作用。 股份公司,股票和股票市场不是资本主义所特有的。我国是一个社会主义国家,在发展有计划商品经济的条件下,同样可以利用股份公司的企业组织形式、股票筹资的方式和股票市场的调节机制,为发展社会主义的有计划的商品经济服务,它的积极做用是:1.可以广泛地动员、积聚和集中社会的闲散资金,为国家经济建设发展服务,扩大生产建设规模,推动经济的发展,并收到“利用内资不借内债”的效果。 2.可以充分发挥市场机制,打破条块分割和地区封闭,促进资金的横向融通和经济的横向联系,提高资源配置的总体效益。 3.可以为改革完善我国的企业组织形式探索一条新路子,有利于不断完善我国的全民所有制企业、集体企业、个人企业、三资企业和股份制企业的组织形式,更好地发挥股份经济在我国国民经济中的地位和作用,促进我国经济的发展。4.可以促进我国经济体制改革的深化发展,特别是股份制改革的深入发展,有利于理顺产权关系,使政府和企业能各就其位、各司其职、各用其权、各得其利。 5.可以扩大我国利用外资的渠道和方式,增强对外的吸纳能力,有利于更多地利用外资和提高利用外资的经济效益,收到“用外资而不借外债”的效果。在世界经济金融化和“金融工具/ 体制”创新化的推动下,以及随着我国金融体制改革的不断深入,股票市场越来越成为经济活动中最为活跃的成分之一,深入研究我国股票市场的运动规律和对股票的预测具有重大的现实意义。二发展现状股票和股票市场对国家企业的经济发展起到了积极的作用,如可以为投资者开拓投资渠道,增强投资的流动性和灵活性等。但股票价格的形成机制是颇为复杂的,股票价格既受到多种因素,诸如:政治,经济,市场因素的影响,亦受技术和投资者行为因素的影响,个别因素的波动作用都可能会影响到股票价格的剧烈波动。因此,股票价格和各影响因素之间很难直接建立明确的函数关系表达式。针对这一情况,国内外对股票的预测做出了很大的研究和贡献。 例如基于组合预测模型的股票预测方法的研究,基于BP算法的股票均价预测技术研究,基于神经网络的证券预测技术研究等,都对股票的预测相当完善。三论文的主要内容及其章节安排本文的研究工作为采用线性预测的方法对股票进行预测,采用MATLAB软件实现的方法,利用其功能强大的模块集或工具箱和简单的编程环境以及方便的数据可视化功能,对中国股票市场数据进行线性预测。本文的研究工作使用MATLAB对股票线性预测仿真的主要方法是:以股票的开盘、收盘、最高、最低四个价位为信号源,对未来的股票市场进行预测仿真研究。本文的主要内容可以分为一下几个部分:第一章首先简要介绍了股票的起源发展及其在社会中的现实作用,然后给出了论文的研究的内容和国内外发展概况,以及今后的发展趋势;最后给出了论文的章节安排和主要内容。第二章重点讲线性预测方法,首先说明本设计在股票预测中用到的线性预测方法及其原理,然后说明利用MATLAB软件实现预测的的方法,利用其功能强大的模块集或工具箱和简单的编程环境以及方便的数据可视化功能,对中国股票市场数据进行线性预测,说明编程思想。第三章重点介绍MATLAB相关知识。首先介绍本毕业设计用到的软件MATLAB的特点和使用意义,然后介绍其中的GUI图形用户界面使用方法和建立GUI的两种方法及其比较,说明本设计是以程序编写方法建立GUI对象,最后简述本设计利用该软件进行线性预测的相关内容。第四章重点介绍计算机仿真股票线性的预测模型,然后介绍程序编辑过程和调试,最终出现预期的预测结果,说明本设计完成预期的任务。第二章 股票线性预测方法一关于线性预测及其FIR滤波器线性预测是根据已有采样点按照线性函数计算未来某一离散信号的数学方法。在数字信号处理中,线性预测经常称为线性预测编码(LPC),因此也可以看作是数字滤波器的一部分。能够单独的根据过去的值预测信号的将来值,对线性预测而言,系统是一个FIR数字滤波器,即根据过去值的一种线性组合算出一个预测值。FIR数字滤波器是一种用来过滤时间离散信号的数字系统,通过对抽样数据进行数学处理来达到频域滤波的目的。FIR 滤波器是在数字信号处理(DSP)中经常使用的两种基本的滤波器之一,根据其单位冲激响应函数的时域特性可分为两类:无限冲激响应(IIR)滤波器和有限冲激响应(FIR)滤波器。FIR是有限冲激响应(Finite Impulse Response)的简称。每一种都有优缺点,但总得来说, FIR滤波器的优点远大于缺点,因此在实际运用中,FIR滤波器比IIR滤波器使用的比较多。相较于IIR滤波器, FIR滤波器有以下的优点:1. 可以很容易地设计线性相位的滤波器。线性相位滤波器延时输入信号,却并不扭曲其相位。2. 实现简单.。在大多数DSP处理器,只需要对一个指令进行循环就可以完成FIR计算。3. 适合于多采样率转换,它包括抽取(降低采样率), 插值(增加采样率)操作。无论是抽取或者插值,运用FIR滤波器可以省去一些计算,提高计算效率。相反,如果使用IIR滤波器,每个输出都要逐一计算,不能省略,即使输出要丢弃。 4. 具有理想的数字特性。在实际中,所有的DSP滤波器必须用有限精度(有限bit数目)实现,而在IIR滤波器中使用有限精度会产生很大的问题,由于采用的是反馈电路,因此IIR通常用非常少的bit实现,设计者就能解决更少的与非理想算术有关的问题。5.可以用小数实现. 不像IIR滤波器,FIR滤波器通常可能用小于1的系数来实现。(如果需要,FIR滤波器的总的增益可以在输出调整)。当使用定点DSP的时候,这也是一个考虑因素,它能使得实现更加地简单。 相比较于IIR滤波器,有时FIR滤波器为了得到一个给定的滤波响应特性,需要花费更多的存储器或者计算。 当然,用FIR滤波器去实现某些响应也是不实际的。与IIR滤波器相比,FIR的实现是非递归的,总是稳定的;更重要的是,FIR滤波器在满足幅频响应要求的同时,可以获得严格的线性相位特性。因此,它在高保真的信号处理,如数字音频、图像处理、数据传输、生物医学等领域得到广泛应用。二股票的线性预测原理(一).线性预测最常见的表示是 (2-1)其中 是预测的信号值,x(n -i) 是前面观测到的值,ai是预测系数。这种预测产生的误差是 (2-2)其中xn是真正的信号值。这个等式对于所有类型的一维线性预测都是有效的,它们的不同之处是参数ai选择方式的不同。对于多维信号,误差经常定义为 (2-3)其中 | | . | | 是适当选择的矢量范数。(二).预测参数在参数ai优化中最常见的选择是均方根准则,也称为自相关准则。在这种方法中减小了最小均方误差 Ee2(n) 的期望值,这样就得到等式 (2-4)对于 1 j p, 其中 R 是信号xn的自相关,定义为 (2-5)其中 E 是 期望值。在多维情况下,这相当于最小化L2 范数。上面的方程称为 normal 方程或者 Yule-Walker 方程,在矩阵形式下这个方程也可以写作 Ra=-r, (2-6)其中自相关矩阵 R是元素为ri,j = R(i - j)的对称轮换矩阵(en:circulant matrix),矢量r是自相关矢量 rj = R(j),矢量 a 是参数矢量。另外一个更为通用的实现是最小化 (2-7)其中通常使用 a0 = 1 约束参数ai以避免 trivial 解。这个约束产生与上面同样的预测,但是 normal 方程是 (2-8)其中索引 i 的范围是从 0 到 p,并且 R 是 (p+1) (p+1) 矩阵。参数优化是一个非常广泛的话题,人们已经提出了大量的其它实现方法。但是,自相关方法仍然是最为常用的方法,例如在GSM标准中的语音编码就在使用这种方法。矩阵方程Ra = r的求解计算上工作量很大,高斯消去法求矩阵的逆可能是最为古老的解法了,但是这种方法没有有效地利用 R 和 r 的对称性。一种更快的算法是 Norman Levinson 在1947年提出的Levinson 递归法(en:Levinson recursion),它递归地计算方成的解。后来 Delsarte et al. 提出了一种称为 split Levinson recursion 的改进方法,它仅需要一半的乘除计算量,它在随后的递归层面上使用了参数矢量的特殊对称特性。本文希望设计一个系统,它能够单独的根据过去的值预测xn信号的将来值。对于线性预测来说,这个系统是一个FIR滤波器,它根据过去值的一种线性组合算出一个预测量: (2-9)式2-9中的就是的预测值。因为用了信号先前的p个值构成这种预测,所以这是一个p阶预测器。给定某一固定的滤波器阶p,线性预测问题就是要确定一组滤波器系数,以使得“最好的”实现2-9的预测确实这个“最好”系数的最常用的准则是某些系数,是的总的平方预测误差达到最小: (2-10)式2-10中,假设序列xn的长度为N,有几个途径可以用来对求解以使式2-10中E最小。最简单的方法是利用MATLAB来解这个联力线性方程组。假设NP,这个线性预测问题可以转换成式2-11所的矩阵形式 (2-11)式2-11还可以紧凑一些写成-Xa+e=x。这个方程能用来对向量a求解,以使总平方预测误差e*e最小。式2-11左边放一半儿减号的约定是为了让“预测误差滤波器”能表示成e=Xa+x。二设计预测流图利用MATLAB实现股票市场线性预测的编程流程如图2-1首先根据信源Xn构造矩阵X,x,求出滤波器的系数,得到第一个预测值,后重新构造矩阵X1,然后根据X1在循环回重新构造下一个矩阵X,x。得到最终的预测值。若已知信源xn,求解系数,则可根据上述流程求出xn+1,xn+2等一系列预测值。 根据信源xn构造矩阵X,x得到预测值求解滤波器系数得到第一个预测值重新构造矩阵X1图2-1第三章 MATLAB及图形用户界面简介一MATLAB简介 MATLAB 是美国Math Works公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。MATLAB是矩阵实验室(Matrix Laboratory)的简称,和Mathematica、Maple并称为三大数学软件。它在数学类科技应用软件中在数值计算方面首屈一指。MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完相同的事情简捷得多,并且math work也吸收了像Maple等软件的优点,使MATLAB成为一个强大的数学软件。在新的版本中也加入了对C,FORTRAN,C+ ,JAVA的支持。可以直接调用,用户也可以将自己编写的实用程序导入到MATLAB函数库中方便自己以后调用,此外许多的MATLAB爱好者都编写了一些经典的程序,用户可以直接进行下载就可以用。20世纪70年代,美国新墨西哥大学计算机科学系主任Cleve Moler为了减轻学生编程的负担,用FORTRAN编写了最早的MATLAB。1984年由Little、Moler、Steve Bangert合作成立了的Math Works公司正式把MATLAB推向市场。到20世纪90年代,MATLAB已成为国际控制界的标准计算软件。(一)MATLAB运用特点1.MATLAB语言的优越性在当今计算机时代,通常的做法是借助高级语言Basic、Fortran或C语言等编制计算程序,输入计算机做近似计算。但是这需要熟练的掌握所运用的语法规则与编制程序的相关规定,而且编制程序不容易,费时费力。 所以本设计采用预测仿真软件是MATLAB。1980年美国的Cleve Moler 博士研制的MATLAB环境(语言)对控制系统的理论及计算机辅助设计技术起到了巨大的推动作用。由于MATLAB的使用极其容易,不要求使用者具备高深的数学与程序语言的知识,不需要使用者深刻了解算法与编程技巧,且提供了丰富的矩阵处理功能,更体现出它巨大的优越性和简易性。MATLAB将高性能的数值计算和可视化集成在一起,并提供了大量的内置函数,从而被广泛的应用科学计算、控制系统、信息处理等领域的分析、仿真和设计工作而且利用MATLAB产品的开放式结构,可以非常容易的对MATLAB的功能进行扩充。目前MATLAB可以用来完成一下功能:数据分析;数值和符号计算;工程与科学绘图;控制系统的设计与仿真;数字图像处理;建模、仿真、原型开发;数字信号处理、通信系统设计与仿真;图形用户界面设计。(二)MATLAB的特点如下:1语言简洁紧凑,使用方便灵活,库函数极其丰富。2.运算符丰富。3.MATLAB既具有结构化的控制语句(如for循环,while循环,break语句和if语句),又有面向对象编程的特性。4.程序限制不严格,程序设计自由度大。5.程序的可移植性很好,基本上不做修改就可以在各种型号的计算机和操作系统上运行。6.MATLAB的图形功能强大。7.拥有完备和强大的工具箱。8.源程序的开放性。除内部函数以外,所有MATLAB的核心文件和工具箱文件都是可读可改的源文件,用户可通过对源文件的修改以及加入自己的文件构成新的工具箱。(三)MATLAB的优势1工作平台和编程环境MATLAB由一系列工具组成。这些工具方便用户使用MATLAB的函数和文件,其中许多工具采用的是图形用户界面。包括MATLAB桌面和命令窗口、历史命令窗口、编辑器和调试器、路径搜索和用于用户浏览帮助、工作空间、文件的浏览器。随着MATLAB的商业化以及软件本身的不断升级,MATLAB的用户界面也越来越精致,更加接近Windows的标准界面,人机交互性更强,操作更简单。而且新版本的MATLAB提供了完整的联机查询、帮助系统,极大的方便了用户的使用。简单的编程环境提供了比较完备的调试系统,程序不必经过编译就可以直接运行,而且能够及时地报告出现的错误及进行出错原因分析。2.简单易用的程序语言MATLAB一个高级的矩阵/阵列语言,它包含控制语句、函数、数据结构、输入和输出和面向对象编程特点。用户可以在命令窗口中将输入语句与执行命令同步,也可以先编写好一个较大的复杂的应用程序(M文件)后再一起运行。新版本的MATLAB语言是基于最为流行的C语言基础上的,因此语法特征与C语言极为相似,而且更加简单,更加符合科技人员对数学表达式的书写格式。使之更利于非计算机专业的科技人员使用。而且这种语言可移植性好、可拓展性极强,这也是MATLAB能够深入到科学研究及工程计算各个领域的重要原因。3.强大的科学计算机数据处理能力MATLAB是一个包含大量计算算法的集合。其拥有600多个工程中要用到的数学运算函数,可以方便的实现用户所需的各种计算功能。函数中所使用的算法都是科研和工程计算中的最新研究成果,而前经过了各种优化和容错处理。在通常情况下,可以用它来代替底层编程语言,如C和C+ 。在计算要求相同的情况下,使用MATLAB的编程工作量会大大减少。MATLAB的这些函数集包括从最简单最基本的函数到诸如矩阵,特征向量、快速傅立叶变换的复杂函数。函数所能解决的问题其大致包括矩阵运算和线性方程组的求解、微分方程及偏微分方程的组的求解、符号运算、傅立叶变换和数据的统计分析、工程中的优化问题、稀疏矩阵运算、复数的各种运算、三角函数和其他初等数学运算、多维数组操作以及建模动态仿真等。4.出色的图形处理功能MATLAB自产生之日起就具有方便的数据可视化功能,以将向量和矩阵用图形表现出来,并且可以对图形进行标注和打印。高层次的作图包括二维和三维的可视化、图象处理、动画和表达式作图。可用于科学计算和工程绘图。新版本的MATLAB对整个图形处理功能作了很大的改进和完善,使它不仅在一般数据可视化软件都具有的功能(例如二维曲线和三维曲面的绘制和处理等)方面更加完善,而且对于一些其他软件所没有的功能(例如图形的光照处理、色度处理以及四维数据的表现等),MATLAB同样表现了出色的处理能力。同时对一些特殊的可视化要求,例如图形对话等,MATLAB也有相应的功能函数,保证了用户不同层次的要求。另外新版本的MATLAB还着重在图形用户界面(GUI)的制作上作了很大的改善,对这方面有特殊要求的用户也可以得到满足。5应用广泛的模块集合工具箱MATLAB对许多专门的领域都开发了功能强大的模块集和工具箱。一般来说,它们都是由特定领域的专家开发的,用户可以直接使用工具箱学习、应用和评估不同的方法而不需要自己编写代码。目前,MATLAB已经把工具箱延伸到了科学研究和工程应用的诸多领域,诸如数据采集、数据库接口、概率统计、样条拟合、优化算法、偏微分方程求解、神经网络、小波分析、信号处理、图像处理、系统辨识、控制系统设计、LMI控制、鲁棒控制、模型预测、模糊逻辑、金融分析、地图工具、非线性控制设计、实时快速原型及半物理仿真、嵌入式系统开发、定点仿真、DSP与通讯、电力系统仿真等,都在工具箱(Toolbox)家族中有了自己的一席之地。6.实用的程序接口和发布平台新版本的MATLAB可以利用MATLAB编译器和C/C+数学库和图形库,将自己的MATLAB程序自动转换为独立于MATLAB运行的C和C+代码。允许用户编写可以和MATLAB进行交互的C或C+语言程序。另外,MATLAB网页服务程序还容许在Web应用中使用自己的MATLAB数学和图形程序。MATLAB的一个重要特色就是具有一套程序扩展系统和一组称之为工具箱的特殊应用子程序。工具箱是MATLAB函数的子程序库,每一个工具箱都是为某一类学科专业和应用而定制的,主要包括信号处理、控制系统、神经网络、模糊逻辑、小波分析和系统仿真等方面的应用。7.应用软件开发(包括用户界面)在开发环境中,使用户更方便地控制多个文件和图形窗口;在编程方面支持了函数嵌套,有条件中断等;在图形化方面,有了更强大的图形标注和处理功能,包括对性对起连接注释等;在输入输出方面,可以直接向Excel和HDF5进行连接。二GUI 图形用户界面简介(一).GUI图形用户界面介绍图形用户界面(Graphical User Interfaces ,GUI)是一种图形化的沟通界面,通过此界面可以很方便地达到一些特定控制的操作,而这些界面又是由按钮、窗口、工具栏、键盘操作等对象所构成的,以方便借助这些界面调用MATLAB来运行运算处理操作。在MATLAB中,GUI编程和M文件编程相比,除了要编写程序功能的内核代码外,还需要编写前台界面。MATLAB图形用户界面程序的前台界面由一系列交互组件组成,主要包括按钮、单选按钮、框架、复选框、文本标签、编辑文本框、滚动条、下拉菜单、列表框和双位按钮等。也就是说GUI图形用户界面是由窗口、光标、按键、菜单、文字说明等对象(Objects)构成的一个用户界面。用户通过一定的方法(如鼠标或键盘)选择、激活这些图形对象,使计算机产生某种动作或变化,比如实现计算、绘图等。使用MATLAB来分析数据,求解问题,绘制结果常使用GUI 工具。因为GUI可以在MATLAB中生成非常有效的工具和应用程序,或是建立演示工作的交互式界面。(二)创建MATLAB 用户图形界面必须由三个基本元素: 1 组件. 在MATLAB GUI 中的每一个项目(按钮,标签,编辑框等)都是一个图形化组件.组件可分为三类:图形化控件(按钮,编辑框,列表,滚动条等),静态元素(窗口和文本字符串),菜单和坐标系. 图形化控件和静态元素由函数uicontrol 创建,菜单由函数uimenu 和uicontextmenu 创建,坐标系经常用于显示图形化数据,由函数axes 创建. 2图象窗口(Figure).GUI 的每一个组件都必须安排图象窗口中。以前,我们在画数据图象时,图象窗口会被自动创建。但我们还可以用函数figure 来创建空图象窗口,空图象窗口经常用于放置各种类型的组件。 3回应。最后,如果用户用鼠标单击或用键盘键入一些信息,那么程序就要有相应的动作。鼠标单击或键入信息是一个事件,如果MATLAB 程序运行相应的函数,那么MATLAB函数肯定会有所反应。例如,如果用户单击一按钮,这个事件必然导致相应的MATLAB语句执行。这些相应的语句被称为回应。只要执行GUI 的单个图形组件,必须有一个回应。(三).GUI层次结构实现一个GUI的过程包括两个基本任务:一是GUI的组建布局,另一个是GUI组件编程。另外用户还必须能够保存并发布自己的GUI,使得用户开发的图形用户界面能够真正得到应用。在MATLAB中GUIDE是一个组建布局工具集,能够生成用户所需的组件资源并保存在一个FIG文件中;其次,GUIDE还可以生成一个包含GUI初始化和发布控制代码的M文件,该文件为回调函数提供了一个框架。GUIDE可以首先在布局GUI的同时生成两个文件1FIG文件。该文件包括GUI的图像窗口和所有子对象的完全描述以及所有对象的属性值。2M文件。该文件包括用户用来发布和控制界面和回调函数的各种函数。该文件不含任何组件的布置信息三.GUI建立的两大方法及其比较MATLAB中GUI的建立有两大方式。(一)通过GUIDE编辑快速生成GUI编辑界面 直接通过MATLAB的GUI编辑界面GUIDE来建立GUI。这个界面当前已经改善的很实用,对于实用过窗口程序的用户或新手而言,是个非常好的选择,它直接通过鼠标拖拽到达目的地,就可以快速的建构出整个的GUI;此外,这种方式在M文件管理上也比较好,如果要修改部分程序代码,也可以快速容易的找到被修改部分。具体方法在Command 里面输入 GUIDE 或者从菜单里面,或者从快捷按钮均可进入GUIDE。新建并且保存后,会生成相应的fig文件和m文件,在Layout编辑视图,可以使用如Layout Editor(布局编辑器):添加和安排图形窗口中的对象;Alignment Tool(对齐工具):排列对象的相对次序;Property Inspector(对象属性观察器):检查和设置属性值;Object Browser(对象浏览器):观察本次运行中图形对象句柄的层次关系;Menu Editor(菜单编辑器):创建图形窗口菜单等工具进行编辑。这些工具集中在布局编辑器界面中,使用GUIDE命令可以显示该界面,如图3-1GUIDE启动对话框图3-1如图3-2可以看到,创建新的GUI程序时可以使用四种不同的GUIDE模板。选择空白GUI,将会打开如图3-2所示的空白GUIDE设计界面,在此界面下用户可以通过单击和拖拽鼠标的方式轻松创建自己的GUI程序界面。同时也可以选择其他模板项,在这种情况下打开的GUIDE设计界面下会有模板预先安排的一些交互组件,可以很大减少工作量。打开空白GUI所示的界面如图3-2图3-2前台界面由一系列交互式组件组成,主要包括按钮、单选按钮、框架、复选框、文本标签、编辑文本框、滑动条、下拉菜单、列表框和双位按钮。用户以某种方式选择或激活这些对象,通常引起动作或发生变化。用鼠标激活或者其他单击设备去控制屏幕上鼠标指针的运动。按下鼠标按钮,标志着对象的选择或者其他动作。(二)编写程序使用 .m 文件直接动态添加控件直接通过程序编写的方式产生对象,即利用uicontrol 、uimenu 、uicontextmenu等函数编写M文件的方式来开发整个GUI。此方式的优点在于GUI菜单的建立比较齐全,并且不会额外产生一个.fig文件,并且程序代码的通用性非常高,因此当完成一个GUI后,该程序就可以复制到一般的MATLAB的M文件中使用,也可以复制到GUIDE的M文件中使用,如已通过编写的方式编写好一系列的uimenu菜单选项,因此就可以直接将这些程序复制输入到GUIDE的Opening Function中,直接在GUIDE中运用这些菜单选项,如此就可以节省额外开发相同或类似对象的时间。程序编写来建立GUI对象的最大缺点就是GUI对象位置的配置,若不是非常熟悉的用户可能会比较难以控制。本设计是直接利用uicontrol 、uimenu 、uicontextmenu等函数编写M文件的方式来开发预测界面的。首先说明使用程序编写建立GUI环境的方式,必须一一通过uicontrol 、uimenu 、uicontextmenu函数逐渐建构出需要的GUI,步骤如下所示:第一步:建立figure对象以座位种鸽GUI的基础窗口,并设置该窗口的相关属性,假设后续需要建立uimenu,做必须更改窗口Menubar属性为menubar或figure。第二步:决定需要建立的axes或者uicontrol 、uimenu 、uicontextmenu对象,并设置相关属性及callback。其中uicontrol用以建立用户控制图形对象,当用户激活该对象后,MATLAB将执行相对应的Callback函数。第四章 MATLAB程序设计及其预测结果一计算机仿真股票线性预测模型在整个预测模型中,信源取自于MATLAB工具箱中的Finance文件中的Dow jones industrial average(道.琼斯工业平均)指数自1994年3月4日至1996年2月26日之间以周为间隔的采样值。其中有四组数据open,close,high,low, 即为该股票的开盘价、收盘价、最高价、最低价。因此在此模型中对每一种价位都可以进行预测,同时可以选择预测周数,还可以选择滤波器的阶数以提高其精确度。(1)开盘价: 上午9:15-9:25为集合竞价时间,在集合竞价期间内,交易所的自动撮合系统只储存而不撮合,当申报竞价时间一结束,撮合系统将根据集合竞价原则,产生该股票的当日开盘价。按上海证券交易所规定,如开市后半小时内某证券无成交,则以前一天的收盘价为当日开盘价。有时某证券连续几天无成交,则由证券交易所根据客户对该证券买卖委托的价格的走势,提出指导价格,促使其成交后作为开盘价。首日上市买卖的证券经上市前一日柜台转让平均价或平均发售价为开盘价。 (2)收盘价: 收盘价是指某种证券在证券交易所一天交易活动结束前最后一笔交易的成交价格。如当日没有成交,则采用最近一次的成交价格作为收盘价,因为收盘价是当日行情的标准,又是下一个交易日开盘价的依据,可据以预测未来证券市场行情;所以投资者对行情分析时,一般采用收盘价作为计算依据。 (3)最高价: 是指当日所成交的价格中的最高价位。有时最高价只有一笔,有时也不止一笔。(4)最低价: 是指当日所成交的价格中的最低价位。有时最低价只有一笔,有时也不止一笔。(一).模型简介本模型一共有两个主程序,分别做出主界面“股票线性预测”与预测界面“预测现场”。主界面程序为feimain.m,它调用了预测器界面程序highpan.m 在highpan.m中又分别调用了子程序xtxs.m来求解滤波器系数ak,子程序hpy-wav.m来求解预测值,子程序Geet.m载入数据和四个信源,即开盘价open.m、收盘价close.m、最高价high.m与最低价low.m。(二).使用简介当执行feimain.m时,将出现一个主界面,如图所示4-1图4-1点击“欢迎进入股市预测”按钮就可调出预测器界面,如图所示4-2图4-2二主要编辑程序(一)主界面程序%主界面程序clc;nandy1=0.5 0.5 0.5;nandy=1 1 1;nandy2=0.7 0.7 0.7;%设定图形界面h_mm=figure(name,股票预测界面,.units,normalized,position,0.2 0.2 0.5 0.3,. menubar,none,numbertitle,off,Color,nandy);%设定图形句柄的各项属性set(h_mm,defaultuicontrolfontsize,13);set(h_mm,defaultuicontrolbackgroundcolor,nandy2);set(h_mm,defaultuicontrolunits,normalized);set(h_mm,defaultuicontrolfontunits,pixels);set(h_mm,defaultuicontrolfontname,隶书);h_text=uicontrol(h_mm,style,text,string,Welcome to you!,position,. 0.29 0.4 0.45 0.4,backgroundcolor,w,fontsize,24);h_push=uicontrol(h_mm,style,push,string,欢迎进入股票预测,position,. 0.31 0.3 0.4 0.18,backgroundcolor,.0.7 0.7 0.7,fore,k,fontsize,18,call,close,highpan);运行主程序后如图4-1点击“欢迎进入股市预测”按钮就可调用预测器主程序运行结果。图 4-1(二).预测器主程序nandy1=0.6 0.6 0.6;nandy=1 1 1;nandy2=0.7 0.7 0.7;N1=10;N=10;hyh=1;%设置图形界面h_mm=figure(name,预测现场,. units,normalized,position,0.15 0.1 0.85 0.45,.menubar,none,numbertitle,off,color,nandy);%设置图形句柄的各项属性set(h_mm,defaultuicontrolfontsize,13);set(h_mm,defaultuicontrolbackgroundcolor,nandy2);set(h_mm,defaultuicontrolunits,normalized);set(h_mm,defaultuicontrolfontunits,pixels);set(h_mm,defaultuicontrolfontname,隶书);%设置轴对象h_axes1=axes(position,0.09 0.4 0.4 0.5,visible,on);grid on;h_axes2=axes(position,0.58 0.4 0.4 0.5,visible,on);grid on;%设定菜单h_menu1=uimenu(h_mm,Label,指导老师);h_menu2=uimenu(h_mm,Label,设计人员);zmenu=uimenu(h_menu1,Label,孙晓艳);h_menu3=uimenu(h_menu2,Label,刘凌莉,separator,on);%设定空间区域框h_framel=uicontrol(h_mm,style,frame,position,.0.06 0.03 0.9 0.23,backgroundcolor,nandy1);%设定文本框h_editl=uicontrol(h_mm,style,edit,position,0.38 0.07 0.15 0.08,. back,w,string,10,call,N1=gett(h_editl,1);,. hqy_wav(h_axes1,h_axes2,N1,N,hyh);h_edit2=uicontrol(h_mm,style,edit,position,0.6 0.07 0.15 0.08,. back,w,string,10,call,N1=gett(h_edit2,1);,. hqy_wav(h_axes1,h_axes2,N1,N,hyh);Ijp=(N1=get(h_editl,value);%设定各种静态文本框h_text1=uicontrol(h_mm,style,text,position, 0.08 0.17 0.18 0.07,string,.预测类型,backgroundcolor,nandy1,fore,w);h_text2=uicontrol(h_mm,style,text,position, 0.35 0.17 0.18 0.07,string,.预测阶数,backgroundcolor,nandy1,fore,w);h_text3=uicontrol(h_mm,style,text,position, 0.58 0.17 0.18 0.07,string,.预测周数,backgroundcolor,nandy1,fore,w);h_push=uicontrol(h_mm,style,push,position, 0.8 0.07 0.1 0.1,string,.关闭,backgroundcolor,nandy1,fore,w);%设定弹出框h_popupl=uicontrol(h_mm,style,popup,string,. 最高价预测|最低价预测|开盘预测收盘预测,. position,0.08 0.13 0.21 0.03,back,w,call,num=gett(h_popupl,2);,. if num=1,hyh=1;,. hqy_wav(h_axes1,h_axes2,N1,N,hyh);end,. if num=2,hyh=2;,. hqy_wav(h_axes1,h_axes2,N1,N,hyh);end,. if num=3,hyh=3;,. hqy_wav(h_axes1,h_axes2,N1,N,hyh);end,. if num=4,hyh=4;,. hqy_wav(h_axes1,h_axes2,N1,N,hyh);end,);hqy_wav(h_axes1,h_axes2,N1,N,hyh);主程序调用出预测界面(如图4-3)图4-3然后继续调用预测程序,求解系数子程序和数据载入程序,程序如下。(三).预测程序function hqy_wav(h_axes1,h_axes2,N1,N,mm)if mm=1 x=High;elseif

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论