用MATLAB软件对股票做线性预测的数学建模(毕业设计)_第1页
用MATLAB软件对股票做线性预测的数学建模(毕业设计)_第2页
用MATLAB软件对股票做线性预测的数学建模(毕业设计)_第3页
用MATLAB软件对股票做线性预测的数学建模(毕业设计)_第4页
用MATLAB软件对股票做线性预测的数学建模(毕业设计)_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

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

文档简介

1、基于 MATLAB 股票市场的线性预测摘要本毕业设计借助 MATLAB 的技术工具软件对股票价格的数据信号图进行分 析,来构造一个线性预测器。并用 MATLAB 生成一个豪华的界面,把线性预测 的结果直观、明了的变现出来。本设计内容在理解信号与系统基本原理的前提下,利用 MATLAB 设计了一 个线性预测系统,该系统利用一个离散时间有限脉冲响应(FIR)滤波器来解决属于预测建模等问题。 这是一个基于 MATLAB 计算机仿真的股票线性预测模型, 它用股票的开盘、收盘、最高、最低四种价位为源信号进行预测,可以用选择滤 波器的阶数来调整它的精确度,能够做到预测误差最小 。本设计分为四个部分: 第一

2、部分介绍了股票预测的现实意义及发展现状; 第 二部分主要阐明线性预测的方法;第三部分简述 MATLAB 及图形用户界面的相 关知识;第四部分给出预测过程及结果。关键词:线性预测系统、MATLAB、离散时间有限脉冲响应(FIR)滤波器MATLAB-based linear prediction of the stock market Abstract : This graduation project carries on the analysis with the aid of the MATLAB technical tool software to the stock price data

3、 signal chart, comes a structure linear predictor. And produces a luxurious contact surface with MATLAB, the linear prediction result direct-viewing, the perspicuity changes appears.This design content in the understanding signal and under the system basic principle premise, has designed a linear pr

4、ediction system using MATLAB, this system uses a discrete time limited pulse to respond the (FIR) filter to solve belongs to questions and so on forecast modeling. This is one based on the MATLAB computer simulation stock linear prediction model, it uses the stock the opening price, closing, high, t

5、he lowest four kind of prices to carry on the forecast for the source signal, may use the selective filter the exponent number to adjust its precision, can achieve the forecast error to be smallest.This design divides into four parts: The first part introduced the stock forecast practical significan

6、ce and the development present situation; Second part of main exposition linear prediction method; The third part summarizes MATLAB and the graphical user interface related knowledge; The fourth part gives the forecast process and the result.Key words : Linear predictive systems, MATLAB, discrete-ti

7、me finite impulse response (FIR) filter目录第一章绪论一本设计研究的目的及意义 1二主要研究内容及其发展现状 2三论文的主要内容及章节安排 2第二章股票线性预测方法一. 关于线性预测及其FIR滤波器3二股票线性预测原理 3三.预测模型 5第三章.MATLAB及图形用户界面简介一. MATLAB 简介7二. GUI 图形用户界面简介 9三. GUI 建立的两大方法及其比较10第四章.MATLAB程序设计及预测结果一. 主要程序编辑 14二. 计算机仿真股票线性预测模型 15结论22致谢23参考文献 24附录25、尸 、-前言 随着计算机技术和信息科学的飞速发

8、展, 信号处理已经逐渐成为信息科学的 重要组成部分。 所谓的信号处理就是对信号或数据进行分析、 变换、综合等加工 处理,以便更好地识别与应用。 信号处理的应用已经深入到经济、 金融等各种领 域中,在涉及语音编码、 地震和频率建模应用的时间序列分析中, 线性预测是最 为广泛的一种方法。本毕业设计借助 MATLAB 的技术工具软件对股票价格的数 据信号图进行分析,来构造一个线性预测器。并用 MATLAB 生成一个豪华的界 面,把线性预测的结果直观、明了的变现出来。本设计内容在理解信号与系统基本原理的前提下,利用 MATLAB 设计了一 个线性预测系统,该系统利用一个离散时间有限脉冲响应(FIR)滤

9、波器来解决属于预测建模等问题。 预测股票市场反面的滤波器设计问题与大多数滤波器设计 问题的频域特性相反,是完全用一种最小二乘预测问题的形式在时域给予表征 的,这个最小二乘预测问题是用 MATLAB 算子来求解的。这是一个基于 MATLAB 计算机仿真的股票线性预测模型,它用股票的开盘、收盘、最高、最低四种价位 为源信号进行预测, 可以用选择滤波器的阶数来调整它的精确度, 能够做到预测 误差最小 。第一章 绪 论 一选题目的及意义股票是股份有限公司在筹集资本时向出资人发行的股份凭证, 代表着其持有者(即股东)对股份公司的所有权。股 票 至 今 已 有 将 近 似 400 年 的 历 史 ,它 伴

10、 随 着 股 份 公 司 的 出 现 而 出 现 。随 着 企 业 经 营 规 模 扩 大 与 资 本 需 求 不 足 要 求 一 种 方 式 来 让 公 司 获 得 大 量 的 资 本 金 ,从 而 了 以 股 份 公 司 形 态 出 现 的 ,股 东 共 同 出 资 经 营的企业组织。股份公司的变化和发展产生了股票形态的融资活动; 股 票 融 资 的 发 展 产 生 了 股 票 交 易 的 需 求 ;股 票 的 交 易 需 求 促 成 了 股 票 市 场 的 形 成 和 发 展 ;而 股 票 市 场 的 发 展 最 终 又 促 进 了 股 票 融 资 活 动 和 股份公司的完善和发展。股

11、票 最 早 出 现 于 资 本 主 义 国 家 。世 界 上 最 早 的 股 份 有 限 公 司 制 度 诞 生于 1602 年在 荷 兰成 立 的东印 度公 司。 股份 公司 这种 企业 组 织形 态 出 现 以 后 ,很 快 为 资 本 主 义 国 家 广 泛 利 用 ,成 为 资 本 主 义 国 家 企 业 组 织 的 重 要 形 式 之 一 。伴 随 着 股 份 公 司 的 诞 生 和 发 展 ,以 股 票 形 式 集 资 入 股 的 方 式 也 得 到 发 展 ,并 且 产 生 了 买 卖 交 易 转 让 股 票 的 需 求 。这 样,就带动了股票市场的出现和形成,并促使股票市场完善

12、和发展。 1611 年,东印度 公司的股东们在 阿姆斯特丹股票交 易所就进行着股 票 交 易 ,并 且 后 来 有 了 专 门 的 经 纪 人 撮 合 交 易 。阿 姆 斯 特 丹 股 票 交 易 所 形 成 了 世 界 上 第 一 个 股 票 市 场 。目 前 ,股 份 有 限 公 司 已 经 成 为 最 基 本的企业组织形式之一;股票已经成为大企业筹资的重要渠道和方 式 ,亦 是 投 资 者 投 资 的 基 本 选 择 方 式 ;股 票 市 场( 包 括 股 票 的 发 行 和 交易)与债券市场成为证券市场的重要基本内容。股 份公 司、股 票 和股 票市 场无 疑对 资本 主义 国家 的企

13、 业的 经 济发 展起到 了积 极的 作用 。 股份公 司 ,股 票和 股票 市场 不是 资本 主义 所 特有的。我国是一个社会主 义国家,在发展有 计划商品 经济的条件下, 同样可 以利 用股 份公 司 的企 业组 织形 式、股 票筹 资的 方式 和股 票 市场 的调节机制,为 发展社会主义的有计划的商品经济服务,它的积极做 用是:1. 可以广泛地动员、积聚和集中社会的闲散资金,为 国家经济建 设发展 服务 ,扩 大生 产 建设 规模 ,推 动经 济的 发展 ,并 收到 “利用 内 资不借 内债 ”的效 果。2. 可以充分发挥市场机制,打 破条块分割和地区封闭,促 进资金 的横向融通和经济的

14、横向联系,提高资源配臵的总体效益。3. 可以为改革完善我国的企业组织形式探索一条新路子,有 利于 不断完善我国的全民所有制企业、集体企业、个 人企业、三资企业和 股份制企业的 组织形式,更好地发挥股份经济在我国 国民经济中的地 位和作用,促进我国经济的发展。4. 可以促进我国经济体制改革的深化发展,特别是股份制改革的 深入发展,有 利于理顺产权关系,使政府和企业能各就其位、各 司其 职、各用其权、各得其利。5. 可以扩大我国利用外资的渠道和方式,增强对外的吸纳能力, 有利于更多地利用外资 和提高利用外资的经济效益,收到“用外资而 不 借外 债”的 效果 。在 世 界 经 济 金 融 化 和 “

15、金 融 工 具 / 体 制 ”创 新 化 的 推 动 下 , 以 及 随 着我国 金融 体制 改革 的 不断 深入 ,股票 市场 越来 越成 为经 济活 动中 最 为活跃的成分 之一,深 入研究我国股票市场的运动规律和 对股票的预 测具有重大的现实意义。二发展现状股票 和股 票市 场对 国家 企业 的经 济发 展 起到了积 极的作用 ,如可 以为投 资者开拓投资渠道,增 强投资的流动性和灵活性等。但股票价 格的形成机制是颇为复杂的,股 票价格既受到多种因素,诸 如:政治, 经 济 ,市 场 因 素 的 影 响 ,亦 受 技 术 和 投 资 者 行 为 因 素 的 影 响 ,个 别 因 素的波动

16、作用都可能会影响到股票价格的剧烈波动。因 此,股票价格 和各影 响因 素之 间很 难 直接 建立 明确 的函 数关 系表 达式 。针对 这 一情 况,国内外对股票的预测做出了很大的研究和贡献。例如基于组合预测模型的股票预测方法的研究,基于 BP 算法的 股票均价预测技术研究,基于神经网络的证券预测技术 研究等,都 对 股票的预测相当完善。三论文的主要内容及其章节安排本文的研究工作为采用线性预测的方法对股票进行预测,采用 MATLAB 软件实现的方法,利用其 功能强大的模块集或工具箱和简单 的编程环境 以及方 便的数据 可视化功 能,对中国股票市场数据进行线 性预测。本 文 的 研 究 工 作

17、使 用 MATLAB 对 股 票 线 性 预 测 仿 真 的 主 要 方 法 是:以 股票的开盘、收 盘、最 高、最 低四个价位为信号源,对 未来的 股票市场进行预测仿真研究。本文的主要内容可以分为一下几个部分:第一章首先简要介绍了股票的起源发展及其在社会中的现实作 用 ,然 后 给 出 了 论 文 的 研 究 的 内 容 和 国 内 外 发 展 概 况 ,以 及 今 后 的 发 展趋势;最后给出了论文的章节安排和主要内容。第 二 章 重 点 讲 线 性 预 测 方 法 ,首 先 说 明 本 设 计 在 股 票 预 测 中 用 到 的线性 预测 方法 及其 原 理, 然后 说明 利用 MATL

18、AB 软件 实现 预 测的 的方法,利用其功能强大的模块集或工具箱和简单的编程环境以及方 便的数据可 视化功 能,对中国股票市场数据 进行线性预测,说 明编程 思想。第 三章 重点 介绍 MATLAB 相 关知 识。 首先 介绍本毕 业设 计 用到 的软件 MATLAB 的特 点和 使用 意义 ,然后介 绍其中 的 GUI 图 形 用户 界面使 用方 法和 建立 GUI 的 两种 方法 及其 比较 ,说 明本 设计 是 以程 序编写 方法 建立 GUI 对 象, 最后 简述 本设 计利 用该 软件 进行 线 性预 测的相关内容。第 四 章 重 点 介 绍 计 算 机 仿 真 股 票 线 性 的

19、 预 测 模 型 ,然 后 介 绍 程 序 编辑过程和调试,最 终出现预期的预测结果,说明本设计完成预期的 任务。第二章股票线性预测方法关于线性预测及其FIR滤波器线性预测是根据已有采样点按照线性函数计算未来某一离散 信号的数学方法。在数字信号处理中,线性预测经常称为线性预测 编码(LPC),因此也可以看作是数字滤波器的一部分。能够单独的 根据过去的值预测信号的将来值,对线性预测而言,系统是一个FIR 数字滤波器,即根据过去值的一种线性组合算出一个预测值。FIR数字滤波器是一种用来过滤时间离散信号的数字系统,通 过对抽样数据进行数学处理来达到频域滤波的目的。FIR滤波器是 在数字信号处理(DS

20、P)中经常使用的两种基本的滤波器之一,根据 其单位冲激响应函数的时域特性可分为两类:无限冲激响应(IIR 滤波器和有限冲激响应(FIR )滤波器。FIR是有限冲激响应(Fi nite Impulse Response)的简称。每一种都有优缺点,但总得来说,FIR 滤波器的优点远大于缺点,因此在实际运用中,FIR滤波器比IIR 滤波器使用的比较多。相较于IIR滤波器,FIR滤波器有以下的优点:1. 可以很容易地设计线性相位的滤波器。线性相位滤波器延时输 入信号,却并不扭曲其相位。2. 实现简单.。在大多数DSP处理器,只需要对一个指令进行循环 就可以完成FIR计算。3. 适合于多采样率转换,它包

21、括抽取(降低采样率),插值(增加采 样率)操作。无论是抽取或者插值,运用FIR滤波器可以省去一些 计算,提高计算效率。相反,如果使用IIR滤波器,每个输出都要 逐一计算,不能省略,即使输出要丢弃。4. 具有理想的数字特性。在实际中,所有的DSP滤波器必须用有 限精度(有限bit数目)实现,而在IIR滤波器中使用有限精度会 产生很大的问题,由于采用的是反馈电路,因此IIR通常用非常少 的bit实现,设计者就能解决更少的与非理想算术有关的问题。5. 可以用小数实现.不像IIR滤波器,FIR滤波器通常可能用小于1 的系数来实现。(如果需要,FIR滤波器的总的增益可以在输出调 整)。当使用定点DSP的

22、时候,这也是一个考虑因素,它能使得实 现更加地简单。相比较于IIR滤波器,有时FIR滤波器为了得到一个给定的滤 波响应特性,需要花费更多的存储器或者计算。 当然,用FIR滤 波器去实现某些响应也是不实际的。与IIR滤波器相比,FIR的实现是非递归的,总是稳定的;更 重要的是,FIR滤波器在满足幅频响应要求的同时,可以获得严格 的线性相位特性。因此,它在高保真的信号处理,如数字音频、图 像处理、数据传输、生物医学等领域得到广泛应用。二股票的线性预测原理(一)线性预测最常见的表示是Apx(n) =aix(n-i)(2-1)i =1其中x(n)是预测的信号值,x(n -i)是前面观测到的值,ai是预

23、测系数。这种预 测产生的误差是(2-2)它们的不同之处是参数e(n) = x(n) -x(n)其中Xn是真正的信号值。这个等式对于所有类型的一维线性预测都是有效的, ai选择方式的不同。对于多维信号,误差经常定义为e(n) =| x(n) -x(n) |(2-3)其中| | . | |是适当选择的矢量范数。(二) 预测参数在参数ai优化中最常见的选择是均方根准则,也称为自相关准则。在这种方法中 减小了最小均方误差Ee2(n)的期望值,这样就得到等式p',R(i - j) R(j)(2-4)i 4对于1呼p,其中R是信号xn的自相关,定义为R(i)二 Ex(n)x(n -i)(2-5)其

24、中E是 期望值。在多维情况下,这相当于最小化L2范数。上面的方程称为normal方程或者Yule-Walker方程,在矩阵形式下这个方程也 可以写作Ra=-r,(2-6)其中自相关矩阵 R是元素为ri,j = R(i - j)的对称轮换矩阵(en:circula nt matrix), 矢量r是自相关矢量rj = R(j),矢量a是参数矢量。另外一个更为通用的实现是最小化Appe(n) = x(n)x(n) = x(n)二 aix(ni)=' aix(ni)(2-7)imi =0其中通常使用ao = 1约束参数ai以避免trivial解。这个约束产生与上面同样的 预测,但是normal

25、方程是Ra 二 1,0,.,0(2-8)其中索引i的范围是从0到p,并且R是(p + 1)竹+ 1)矩阵。参数优化是一个非常广泛的话题,人们已经提出了大量的其它实现方法。 但GSM标准中的语音编码就在使高斯消去法求矩阵的逆可能是最R和r的对称性。一种更快的Levinson 递归法(en:Levinson是,自相关方法仍然是最为常用的方法,例如在 用这种方法。矩阵方程Ra = r的求解计算上工作量很大, 为古老的解法了,但是这种方法没有有效地利用 算法是 Norman Lev in son在1947年提出的recursion),它递归地计算方成的解。后来Delsarte et al.提出了一种称

26、为splitLevi nson recursion的改进方法,它仅需要一半的乘除计算量,它在随后的递归 层面上使用了参数矢量的特殊对称特性。本文希望设计一个系统,它能够单独的根据过去的值预测xn 信号的将来值。对于线性预测来说,这个系统是一个FIR滤波器,它 根据过去值的一种线性组合算出一个预测量:,、p"(2-9)X h 心 ak nk 1k 4式2-9中的就是的预测值。因为用了信号先前的p个值构成这种 预测,所以这是一个p阶预测器。给定某一固定的滤波器阶p,线性 预测问题就是要确定一组滤波器系数,以使得 最好的”实现2-9的预 测确实这个 最好”系数的最常用的准则是某些系数,是的

27、总的平方预 测误差达到最小:N2 N2E 二 | eh 二 | xh xh心心(2-10)式2-10中,假设序列xn的长度为N ,有几个途径可以用来对ak求解以使式2-10中E最小。最简单的方法是利用MATLAB 来解这个联 力线性方程组。假设N>P,这个线性预测问题可以转换成式2-11所的 矩阵形式_x1x2a.xN - pxp xp 1xN -1ep+1:ep + 2eNxp+1【xp + 2a-xN 一(2-11)式2-11还可以紧凑一些写成-Xa+e=x。这个方程能用来对向量a求解, 以使总平方预测误差e' *e最小。式2-11左边放一半儿减号的约定是 为了让预测误差滤波

28、器”能表示成e=Xa+x 。二.设计预测流图利用MATLAB 实现股票市场线性预测的编程流程如图2-1首先根据信源X n构造矩阵X,x,求出滤波器的系数ak,得到第一个预测值,后重新构造矩阵X1,然后根据X1在循环回重新构造 下一个矩阵X,x。得到最终的预测值。若已知信源x n,求解系数ak,则可根据上述流程求出xn+1,xn+2等一系列预测值图2-1第三章 MATLAB 及图形用 户界面简介一 MATLAB 简 介MATLAB 是美 国 Math Works 公司 出品 的商业数 学 软件 ,用 于算 法开发、数 据可视化、数据分析以及数值计算的高级技术计算语言和 交互式环境,主要包括 MA

29、TLAB 和 Simulink 两大部分 。MATLAB 是 矩 阵 实 验 室 ( Matrix Laboratory ) 的 简 称 , 和 Mathematica 、Maple 并称 为三大 数学软 件 。它在 数学 类科 技应 用 软件 中在数值计算方面首屈一指。MATLAB 可以进行矩阵运算、绘制函 数和数据、 实现算法、 创建用户界面、 连接其他编程语言的程序等, 主要应用于工程计算、控 制 设计、信 号处理与通讯、图 像处理、信 号 检测、 金融建模设计与分析等领域。MATLAB 的基本数据单位是矩阵,它的指令表达式与数学、工程 中 常用的形式十分相似 ,故 用 MATLAB 来

30、解算 问题要比 用 C, FORTRAN 等语 言完 相同 的事 情简 捷得 多, 并且 math work 也 吸 收了 像 Maple 等软件的优点,使 MATLAB 成为一个强大的数学软件。在 新 的版本中也加入了对 C, FORTRAN ,C+ ,JAVA 的支持。 可以直 接调用,用户也可以将自己编写的实用程序导入到 MATLAB 函数库中 方便自己以后调用,此外许多的 MATLAB 爱好者都编写了一些经典 的程序,用户可以直接进行下载就可以用。20 世纪 70 年代,美国新墨西哥大学计算机科学系主任 Cleve Moler 为 了 减 轻 学 生 编 程 的 负 担 , 用 FOR

31、TRAN 编 写 了 最 早 的 MATLAB 。 1984 年由 Little 、 Moler 、 Steve Bangert 合作 成立 了 的 Math Works公司 正式把MATLAB 推 向市场。到20世纪90年代,MATLAB 已成为国际控制 界的标准计算软件。(一).MATLAB 运用特点1. MATLAB 语言 的优 越 性 在当今计算机时代, 通常的做法是借助高级语言 Basic、 Fortran 或 C 语言等编制计算程序,输入计算机做近似计算。但是这需要熟练 的掌握所运用的语法规则与编制 程序的相关规定,而且编制程序不容 易,费 时费力。 所以本设计采用预测仿真软件是

32、MATLAB 。 1980 年 美国的 Cleve Moler 博士研制的 MATLAB 环境(语言)对控制 系统 的理论及计算机辅助设计技术起到了巨大的推动作用。由于 MATLAB 的使用 极其容易, 不要求使用者具备高深的数学与程序语言的知识, 不需要使用 者深刻了解算法与编程技巧,且提供了丰富的矩阵处理功 能, 更 体现 出它 巨大 的 优越 性和 简易 性。MATLAB 将高性能的数值计 算和可视化集成在一起, 并提供了 大量的内臵函数,从 而被广泛的应用 科学计算、控制系统、信 息处理 等领域的分析、 仿真和设计工作而且利用 MATLAB 产品的开放式结 构,可 以非常容易的对 MA

33、TLAB 的功能进行扩充。目 前 MATLAB 可 以 用 来 完 成 一 下 功 能 :数 据 分 析 ;数 值 和 符 号 计 算 ;工 程 与 科 学 绘 图 ; 控制系统的设计与仿真;数 字图像处理;建 模、仿 真、原 型开发;数 字信号处理、 通信系统设计与仿真;图形用户界面设计。(二)MATLAB 的特点如下:1语言简洁紧凑, 使用方便灵活, 库函数极其丰富。2. 运算符丰富。3. MATLAB 既具 有 结构 化的 控制 语句( 如 for 循 环 , while 循环 , break 语 句 和 if 语 句 ), 又 有 面 向 对 象 编 程 的 特 性 。4. 程序限制不

34、严格,程序设计自由度大。5. 程序的可移植性很好,基 本上不做修改就可以在各种型号的计 算机和操作系统上运行。6. MATLAB 的图 形 功能 强大 。7. 拥有完备和强大的工具箱。8. 源程 序的 开放 性。 除内 部函 数以 外,所有 MATLAB 的 核 心文 件和工 具箱 文件 都是 可 读可 改的 源文 件,用 户可 通过 对源 文件 的 修改 以及加入自己的文件构成新的工具箱。(三)MATLAB 的 优 势 1工作平台和编程环境MATLAB 由一系列工具组成。这些工具 方便用户使用 MATLAB 的函数和文件,其中许多工具采用的是图形用户界面。包括 MATLAB 桌面和命令窗口、

35、历 史命令窗口、编辑器和调试器、路径搜索和用于 用户浏 览帮 助、 工作 空 间、 文件 的浏 览器 。随 着 MATLAB 的 商业 化 以及软件本身的不断升级,MATLAB 的用户界面也越来越精致,更 加 接 近 Windows 的 标 准 界 面 , 人 机 交 互 性 更 强 , 操 作 更 简 单 。 而 且 新版本的 MATLAB 提供了完整的联机查询、帮助系统, 极大的方便 了用户 的使用。简单的编程环境提供了比较完备的调试系统,程序不 必经过编译就可以直接运行,而且能够及时地报告出现的错误及进行 出错原因分析。2. 简单易用的程序语言MATLAB 一个 高 级的 矩阵 /阵 列

36、语言, 它包含控 制语句、 函数、 数据结构、输入和输出和面向对象编程特点。用户可以在命令窗口中 将输入 语句 与执 行命 令 同步 ,也可 以先 编写 好一 个较 大的 复杂 的 应用 程序(M文件)后再一起运行。新版本的MATLAB 语言是基于最为 流行的C+语言基础上的,因此语法特征与C+语言极为相似, 而且更加简单,更加符合科技人员对数学表达式的书写格式。使之更 利于非计算机专业的科技人员使用。而且这种语言可移植性好、可拓 展性极强, 这也是 MATLAB 能够深入到科学研究及工程计算各个领 域的重要原因。3. 强大的科学计算机数据处理能力MATLAB 是一个包含大量计算算法的集合。

37、其拥有 600 多个工 程中要用到的数学运算函数,可以方便的实现用户所需的各种计算功 能。函数中所使用的算法都是科研和工程计算中的最新研究成果,而 前经过了各种优化和容错处理。在通常情况下,可以用它来代替底层 编程语言,如 C 和 C+ 。在计算要求相同的情况下,使用 MATLAB 的编程工作量会大大减少。 MATLAB 的这些函数集包括从最简单最 基本的函数到诸如矩阵,特征向量、快速傅立叶变换的复杂函数。函 数所能解决的问题其大致包括矩阵运算和线性方程组的求解、微分方 程及偏微分方程的组的求解、符号运算、傅立叶变换和数据的统计分 析 、工 程 中 的 优 化 问 题 、稀 疏 矩 阵 运 算

38、 、复 数 的 各 种 运 算 、三 角 函 数 和其他初等数学运算、多维数组操作以及建模动态仿真等。4. 出色的图形处理功能MATLAB 自产生之日起就具有方便的数据可视化功能,以 将向 量和矩阵用图形表现出来,并且可以对图形进 行标注和打印。高层次的作图包括二维和三维的可视化、图象处理、 动画和表达式作图。可用于科学计算和工程 绘图。新版本的 MATLAB 对整个 图形 处理 功能 作 了很 大的 改进 和完 善,使 它不 仅在 一般 数 据可 视化软件都具有的功能(例如二维曲线和三维曲面的绘制和处理等) 方面更加完善,而 且对于一些其他软件所没有的功能(例如图形的光 照处理 、色 度处

39、理以 及 四维 数据 的表 现等 ), MATLAB 同 样表 现 了出 色的处理能力。同时对一些特殊的可视化要求,例如图形对话等, MATLAB 也有相 应的功能函数 ,保证了用户不同层次的要求 。另外 新版本的MATLAB 还着重在图形用户界面(GUI )的制作上作了很 大的改善,对这方面有特殊要求的用户也可以得到满足。 5应用广泛的模块集合工具箱MATLAB 对许多专门的领域都开发了功能强大的模块集和工具 箱。一般来说,它们都是由特定领域的专家开发的,用 户 可以直接使 用工具箱学习、应用和评估不同的方法而不需要自己编写代码。目前, MATLAB 已经把工具箱延伸到了科学研究和工程应用的

40、诸多领域, 诸如数据采集、数 据库接口、概 率统计、样条拟合、优 化算法、偏微 分方程求解、神 经网络、小 波分析 、信号处理、图 像处理、系 统辨识、 控制系统设计、LMI控制、鲁棒控制、模型预测、模糊逻辑、金融分 析、地图工具、非线性控制设计、实时快速原型及半物理仿真、嵌入 式系统开发、定点仿真、 DSP 与通讯、电力系统仿真等,都在工具箱( Toolbox ) 家 族 中 有 了 自 己 的 一 席 之 地 。6. 实 用 的 程 序接 口和 发布 平台新 版本 的 MATLAB 可 以利 用 MATLAB 编译 器 和 C/C+ 数学 库和 图 形库 ,将自己的 MATLAB 程序自

41、动转 换为 独立 于 MATLAB 运 行的 C和C+代码。允许用户编写可以和MATLAB 进行交互的C或C+ 语言程序。另外,MATLAB 网页服务程序还容许在 Web应用中使用 自己的 MATLAB 数学和图形程序。 MATLAB 的一个重要特色就是具 有一套程序扩展系统和一组称之为工具箱的特殊应用子程序。工具箱 是 MATLAB 函数的 子程序库, 每一个工具箱都是为某一类学科专业 和应用而定制的,主 要包括信号处理、控 制系统、神经网络、模糊逻 辑、 小波分析和系统仿真等方面的应用。7. 应用软件开发(包括用户界面)在开发环境中,使用户更方便地控制多个文件和图形窗口;在编 程方面支持了

42、函数嵌套,有条件中断等;在图形化方面,有了更强大 的图形标注和处理功能,包括对性对起连接注释等;在输入输出方面, 可以直接向 Excel 和 HDF5 进行连接。二 GUI 图 形 用 户 界 面 简 介(一) .GUI 图形用户界面介绍图形用户界面( Graphical User Interfaces , GUI ) 是一种图形 化的沟通界面,通过此界面可以很方便地达到一些特定控制的操作, 而 这些 界面 又是 由 按钮 、窗口 、工 具栏 、键 盘操作等 对象所构 成的, 以 方 便 借 助 这 些 界 面 调 用 MATLAB 来 运 行 运 算 处 理 操 作 。 在 MATLAB 中

43、, GUI 编 程和 M 文件编 程相比, 除了 要编 写程 序 功能 的内核代码外,还需要编写前台界面。MATLAB 图形用户界面程序 的 前台 界面由一系列交互组件组成, 主要包括按钮、单选按钮、框 架、复选框、文本标签、编辑文本框、滚动条、下拉菜单、列表框 和 双位 按钮 等。也就是说 GUI 图 形 用 户 界 面是 由窗 口、光标 、按键 、 菜单、文字说明等对象(Objects)构成的一个用户界面。用户通过 一定的 方法( 如鼠标或键盘) 选择、 激活这些图形对象, 使计算机 产生某种动作或变化, 比如实现计算、 绘图等。使用 MATLAB 来分析数据,求解问题,绘制结果常使用 G

44、UI 工 具。因为 GUI 可以在 MATLAB 中生成非常有效的工具和应用 程序, 或是建立演示工作的交互式界面。( 二) 创建 MATLAB 用 户 图 形界面必须由三个基本元素:1 组件. 在 MATLAB GUI 中的每一个项目(按钮,标签,编辑框等)都 是一个图形化组件.组件可分为三类:图 形化控件(按钮,编辑框,列表, 滚动条等),静态元素(窗口和文本字符串),菜单和坐标系. 图 形化控 件 和 静 态 元 素 由 函 数 uicontrol 创 建 ,菜 单 由 函 数 uimenu 和 uicontextmenu 创建 ,坐标系经常用 于显 示图 形化 数据 ,由函 数 axe

45、s 创建.2图象窗口(Figure).GUI 的每一个组件都必须安排图象窗口中。以 前, 我们在画数据图象时, 图象窗口 会被自动创建。 但我们还可以 用 函数 figure 来创建空图 象窗口 ,空图象窗口 经常用于放臵各种类 型的组件。3 回应。 最后, 如果用 户 用 鼠标单击或用 键盘键入一些信息, 那么 程 序就要 有相应的 动作。 鼠标单击或键入信息是一个 事件 , 如果 MATLAB 程序运行相应的 函数, 那么 MATLAB 函数肯定会有所反 应。例如,如果用户 单击一按钮,这个事件必然导致相应的 MATLAB 语句执行。 这些相应的 语句被称为回应。 只要执行 GUI 的 单

46、个图 形组件, 必须有一个回应。( 三) .GUI 层 次 结 构实现一个 GUI 的 过程包括两个基本任务:一是 GUI 的 组建布局, 另一个是 GUI 组件编程 。 另外用 户 还必须能够保存并发布自己的 GUI , 使得用 户 开发的图 形用 户 界面能够真正得到应用 。在 MATLAB 中 GUIDE 是一个组建布局工具集, 能够生成用户 所需的 组件资源并保存在一个 FIG 文件中 ;其次, GUIDE 还可以生 成一个包含 GUI 初始化和发布控制代码的 M 文件 , 该文件为回调 函数提供了一个框架。GUIDE 可以首先在布局 GUI 的同时生成两个文件1FIG 文件。 该文件

47、包括 GUI 的 图像窗口 和所有子对象的完全描述 以及所有对象的 属性值。2M 文件。 该文件包括用户 用来发布和控制界面和回调函数的 各种 函数。 该文件不含任何组件的布臵信息三 .GUI 建 立 的 两 大 方 法 及 其 比 较MATLAB 中GUI的建立有两大方式。(一)通过GUIDE编辑快速生成GUI编辑界面直接通过 MATLAB 的GUI编辑界面 GUIDE 来建立 GUI。 这个界面当前已经改善的很实用,对于实用过窗口程序的用户或新 手而言,是个非常好的选择,它直接通过鼠标拖拽到达目的地,就 可以快速的建构出整个的GUI ;此外,这种方式在M文件管理上也 比较好,如果要修改部分

48、程序代码,也可以快速容易的找到被修改 部分。具体方法在Comma nd 里面输入 GUIDE 或者从菜单里面,或 者从快捷按钮均可进入GUIDE。新建并且保存后,会生成相应的fig 文件和m文件,在Layout编辑视图,可以使用如Layout Editor (布 局编辑器):添加和安排图形窗口中的对象;Alignment Tool (对齐 工具):排列对象的相对次序;Property Inspector (对象属性观察 器):检查和设臵属性值;Object Browser (对象浏览器):观察本 次运行中图形对象句柄的层次关系;Menu Editor (菜单编辑器): 创建图形窗口菜单等工具进

49、行编辑。这些工具集中在布局编辑器界面中,使用GUIDE命令可以显示 该界面,如图3-1GUIDE启动对话框GUIDE Quick Stvtoookneate New GUI Qpefl E/istinqr<GUIDE templatesPreview* Blank GUI (Default)* GUI with Uicontrols祇 GUI with Axes and Menu I 鼻 Modal Qye5tjon DialogBLANK图3-1如图3-2可以看到,创建新的GUI程序时可以使用四种不同的 GUIDE模板。选择空白GUI,将会打开如图3-2所示的空白GUIDE 设计界面,

50、在此界面下用户可以通过单击和拖拽鼠标的方式轻松创建 自己的GUI程序界面。同时也可以选择其他模板项,在这种情况下打开的GUIDE 设计 界面下会有模板预先安排的一些交互组件,可以很大减少工作量。打开空白GUI所示的界面如图3-2untitled FigoeeFfe EdE View Laycut I do Is HebCitrert PcHrt: Or 9D| P&sltian: 520. 3 S6D. 420图3-2前台界面由一系列交互式组件组成,主要包括按钮、单选按钮、 框架、复选框、文本标签、编辑文本框、滑动条、下拉菜单、列表框 和双位按钮。用户以某种方式选择或激活这些对象,通常

51、引起动作或 发生变化。用鼠标激活或者其他单击设备去控制屏幕上鼠标指针的运 动。按下鼠标按钮,标志着对象的选择或者其他动作。(二)编写程序使用.m文件直接动态添加控件直接通过程序编写的方式产生对象,即利用uic ontrol、uimenu 、uicontextmenu 等函数编写M文件的方式来开发整个GUI。此方式的优点在于GUI菜单的建立比较齐全,并且不会额外产 生一个.fig文件,并且程序代码的通用性非常高,因此当完成一个GUI 后,该程序就可以复制到一般的MATLAB 的M文件中使用,也可以 复制到GUIDE的M文件中使用,如已通过编写的方式编写好一系列 的uime nu菜单选项,因此就可

52、以直接将这些程序复制输入到GUIDE 的Opening Function中,直接在GUIDE 中运用这些菜单选项,如此就可以节省额外开发相同或类似对象的时间。程序编写来建立GUI 对象的最大缺点就是GUI对象位臵的配臵,若不是非常熟悉的用户 可能会比较难以控制。本 设计是直接禾U用 uicontrol、uimenu 、uicontextmenu 等函数编写M文件的方式来开发预测界面的。首先说明使用程序编写建立 GUI 环境的方式,必须一一通过 uic on trol、uime nu 、uic on textme nu函数逐渐建构出需要的GUI,步骤如下所示:第一步:建立figure对象以座位种

53、鸽GUI的基础窗口,并设臵该 窗口的相关属性,假设后续需要建立uimenu,做必须更改窗口 Menubar 属性为 menubar 或 figure。第二步: 决定需要建立的 axes 或者 uic on trol、uime nu 、其 中 uicontrol 用 MATLAB 将 执 行uicontextmenu 对 象 , 并 设 臵 相 关 属 性 及 callback 。 以建立用户控制图形对象,当用户激活该对象后, 相对应 的 Callback 函数 。第 四 章 MATLAB 程 序 设 计 及 其 预 测 结 果 一计算机仿真股票线性预测模型在整 个预测 模型 中,信 源取 自于

54、 MATLAB 工 具 箱中 的 Finance 文 件中的 Dow jones industrial average (道.琼斯工业 平均)指数自 1994 年 3 月 4 日至 1996 年 2 月 26 日之间以周为间隔的 采样值。其中有四 组 数 据 open,close,high,low, 即 为 该 股 票 的 开 盘 价 、收 盘 价 、最 高 价 、 最低价。因 此在此模型中对每一种价位都可以进行预测 ,同时可以选 择预测周数,还可以选择滤波器的阶数以提高其精确度。(1)开盘价:上 午 9:15-9:25 为 集 合 竞 价 时 间 , 在 集 合 竞 价 期 间 内 , 交

55、易 所 的自动撮合系统只储存而不撮合,当申报竞价时间一结束,撮合系 统将根据集合竞价原则,产生该股票的当日开盘价。按上海证券交 易所规定,如开市后半小时内某证券无成交,则以前一天的收盘价 为当日开盘价。有时某证券连续几天无成交,则由证券交易所根据 客户对该证券买卖委托的价格的走势,提出指导价格,促使其成交 后作为开盘价。首日上市买卖的证券经上市前一日柜台转让平均价 或平均发售价为开盘价。(2)收盘价: 收盘价是指某种证券在证券交易所一天交易活动结束前最后一 笔交易的成交价格。如当日没有成交,则采用最近一次的成交价格 作为收盘价,因为收盘价 是当日行情的标准,又是下一个交易日开 盘价的依据,可据

56、以预测未来证券市场行情;所以投资者对行情分 析时,一般采用收盘价作 为计算依据。(3)最高价: 是指当日所成交的价格中的最高价位。有时最高价只有一笔, 有时也不止一笔。(4)最低价:是指当日所成交的价格中的最低价位。有时最低价只有一笔, 有时也不止一笔。( 一 ) . 模 型 简 介本 模 型 一 共 有 两 个 主 程 序 ,分 别 做 出 主 界 面 “股 票 线 性 预 测 ”与 预 测界面 “预测现场”。主界面程序为 feimain.m, 它调用了预测器界面程 序 highpan.m 在 highpan.m 中 又 分 别 调 用 了 子 程 序 xtxs.m 来 求 解 滤 波 器

57、系 数 ak, 子 程 序 hpy-wav.m 来 求 解 预 测 值 ,子 程 序 Geet.m 载 入 数 据 和四个信源,即 开盘价 open.m 、收 盘价 close.m 、最高价 high.m 与最 低 价 low.m 。( 二 ) . 使 用 简 介当 执 行 feimain.m 时 , 将 出 现 一 个 主 界 面 , 如 图 所 示 4-100 0Welcome to you!欢迎进入股票预测图4-1点击 欢迎进入股市预测”按钮就可调出预测器界面,如图所示4-2ooeSI驗境Ji觀(weeks)图4-2二主要编辑程序(一)主界面程序%主界面程序clc;nan dy 仁0.5

58、 0.5 0.5;nan dy=1 1 1;nan dy2=0.7 0.7 0.7;%设定图形界面h_mm=figure('name','股票预 测界面',.'un its',' normalized','positio n',0.2 0.2 0.5 0.3,.'me nubar',' non e',' nu mbertitle','off,'Color', nan dy); %设定图形句柄的各项属性 set(h_mm,'default

59、uico ntrolfo ntsize',13); set(h_mm,'defaultuic on trolbackgro un dcolor', nan dy2); set(h_mm,'defaultuico ntrolu ni ts',' no rmalized'); set(h_mm,'defaultuic on trolfo ntun its','pixels'); set(h_mm,'defaultuicontrolfontname','隶书');h_text=uic on trol(h_mm,'style','text','stri ng','Welcome to you!','positi on ',0.29 0.4 0.45 0.4,'backgro un dcolor

温馨提示

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

评论

0/150

提交评论