《MATLAB数学建模方法与实践(第3版)》第2章学习笔记

第2章 MATLAB数学建模快速入门

2.1 MATLAB快速入门

2.1.1 MATLAB概要

MATLAB是矩阵实验室(Matrix Laboratory)的缩写。MATLAB的基本数据单元是矩阵。

20世纪70年代后期Cleve Moler编写接口程序,取名MATLAB;

1983年,Cleve Moler和工程师Steve Bangert一起用C语言开发了第二代MATLAB专业版。具备数值计算和数据图示化的功能;

1984年,Cleve Moler和John Little成立了Math Works公司,将MATLAB推向市场;

2.1.2 matlab的功能

2.1.3 快速入门案例

基于项目学习(Project Based Learning,PBL)

案例:已知股票的交易数据,试用某种方法来评价这只股票的价值和风险。

典型科学计算流程:

第一步:读入外部数据(excel)

1、选中需要读入的数据,右键选中导入数据;

2、导入后的数据

3、根据需要选择导入的类型

如果不需要处理,就点导入数据即可。导入后在工作区就会有数据。

第2步:数据探索和建模

1、双击工作区导入的数据;

2、数据可视化

命令窗口多了一行命令

如果要了解更多的绘图信息,可以在命令行输入doc或help查看。

输入doc后出现MATLAB文档界面,里面内容很丰富。

3、生成脚本

在导入数据的时候选择“生成脚本”,会自动生成脚本文件,将常用的数据类型和数据都导入。只需要在脚本文件中加入自己的程序即可。读入数据并将数据命名为sz1。

在最后新建一个节,输入如下程序:

%% 数据探索
figure %创建一个新窗口
plot(sz1.DateNum,sz1.Pclose,'k')  %将图的颜色设置为黑色
datetick('x','mm')  %更改日期显示类型
xlabel('日期')  %x轴说明
ylabel('收盘价')  %y轴说明
figure   %重新创建一个新窗口,作为对比图
bar(sz1.Pclose)   %生成柱状图

运行结果:

%% 股票价值评估
p=polyfit(sz1.DateNum,sz1.Pclose,1);    %线性拟合
p1=polyval(p,sz1.DateNum);   %得到多项式的结果
figure
plot(sz1.DateNum,p1,sz1.DateNum,sz1.Pclose,'*g');  %将原始图和拟合后的曲线对照
value=p(1)   %将斜率给value

输出结果:

%% 股票风险的评估
MaxDD=maxdrawdown(sz1.Pclose);    %计算最大回撤
risk=MaxDD   %将最大回撤赋值给risk,作为股票的风险

输出:

value =

    0.1212


risk =

    0.1155

第三步:发布

1、脚本

2、论文

3、软件(大中型项目)

脚本在第2步已经完成,现以论文发布为例。

发布后生成的图。

2.1.4 入门后的提高

建议:

1、熟练掌握最常用的基本操作;

2、了解MATLAB开发模式;

3、基于项目学习。

2.2 MATLAB常用技巧

2.2.1 常用标点的功能

逗号(,)用作要显示计算结果的指令及其后面的指令之间的间隔;用作输入量与输出量之间的间隔;用作数组元素的分隔。

分号(;)用作不显示计算结果的标志;用作数组行间的分隔

冒号(:)用以生成一维数值数组;用作单下标援引时,表示全部元素构成的长列;用作多下标援引时,表示对应维度上的全部元素。

注释号(%) 

单引号(‘’)字符串标记符

圆括号()数组援引用;函数指令时表示输入变量

方括号[]输入数组时用;函数指令时表示输出变量

花括号{}元胞数组标记符

续行号(…)一列放不下可以用三个连续黑点与下列连续。

2.2.2 常用操作指令

clc 清除窗口内容

clear 清除工作空间变量

close all 关闭所有打开的图形窗口

clf 清除图形窗口的内容

edit 打开m文件编辑器

disp 显示变量的内容

2.2.3 指令编辑操作键

↑ 向前查看输入过的指令行

↓向后查看输入过的指令行

Tab 补全命令

2.2.4 matlab数据类型

元胞数组(cell)可以看成一种特殊数据类型,又称为广义矩阵。元素可以是任何一种数据类型的常数或者常量,每个元素也可以具有不同的尺寸和内存占用空间,每个元素的内容也可以完全不同,所以其元素被称为元胞。并且内存也是动态分配的。

表(table)与元胞数组相似,可以包含所有数据类型。表相当于一个小型数据库。

例:以元胞和表的形式导入数据

2.3 matlab开发模式

2.3.1 命令行模式

适合单个的小型科学计算问题的求解老师和项目的探索分析;

缺点:不便于重复执行,也不便于自动化执行科学计算任务。

2.3.2 脚本模式

可以很方便的修改代码,也可以继续更复杂的任务。优点是便于重复执行计算,并可以将整个计算过程保存在脚本中,移植性比较好,灵活。

2.3.3 面向对象模式

将数据和相关操作合并到逻辑结构中。具有可提升软件复杂性的能力,在开发和维护大型应用与数据结构时尤为重要。

2.3.4 三种模型的配合

三种模式相互配合、不断提升。

初期以命令行的脚本模式为主,然后逐步形成脚本;随着项目不断提升,使用面向对象的开发模式,逐步形成功能模块改写成函数的形式。

还不断需要在命令行测试函数、测试输出等工作,新增功能也需要在脚本模式状态进行完善。三种模式配合是项目代码不断精炼、不断提升的过程。

猜你喜欢

转载自blog.csdn.net/xfsong2012/article/details/112767834
今日推荐