slide1 n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
张力宁 PowerPoint Presentation
Download Presentation
张力宁

Loading in 2 Seconds...

play fullscreen
1 / 117

张力宁 - PowerPoint PPT Presentation


  • 193 Views
  • Uploaded on

X A W L. 数模竞赛简介 与 MATLAB 编程基础. 张力宁. 1. 全国大学生数学建模竞赛简介. 2. 3. 4. 对你的要求与你的收获. MATLAB 基础及符号运算. MATLAB 绘图. 主要内容. 假设: 忽略阻力不计 , 初速度. 解得:. 解得:. 一、全国大学生数学建模竞赛简介. 什么是数学模型?. 引例:自由落体运动. O. 根据 牛顿第二定律, 有. x. 若假设: 阻力与速度成正比 , 则有. 一、全国大学生数学建模竞赛简介. 什么是数学模型?.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about '张力宁' - idola


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
slide1

X

A

W

L

数模竞赛简介与MATLAB编程基础

张力宁

slide2

1

全国大学生数学建模竞赛简介

2

3

4

对你的要求与你的收获

MATLAB基础及符号运算

MATLAB绘图

主要内容

www.themegallery.com

slide3

假设:忽略阻力不计,初速度

解得:

解得:

一、全国大学生数学建模竞赛简介
  • 什么是数学模型?

引例:自由落体运动

O

根据牛顿第二定律,有

x

若假设:阻力与速度成正比,则有

www.themegallery.com

slide4
一、全国大学生数学建模竞赛简介
  • 什么是数学模型?

数学模型是针对某种事物系统的特征或数量依存关系,通过抽象和简化,采用数学语言,概括地或近似地表述出的一种数学结构,这种数学结构是借助于数学符号刻划出来的某种系统的纯关系结构。

获得数学模型、求解该模型并得到结论以及验证结论是否正确的全过程称为数学建模 。

  • 建立数学模型的基本要求

真实完整、简明实用、适应变化。

www.themegallery.com

slide5
一、全国大学生数学建模竞赛简介
  •  数学建模的基本原则

1、简化原则

  现实世界的原型都是具有多因素、多变量、多层次的比较复杂的系统,对原型进行一定的简化即抓住主要矛盾,数学模型应比原型简化,数学模型自身也应是“最简单”的。

2、可推导原则

  由数学模型的研究可以推导出一些确定的结果,如果建立的数学模型在数学上是不可推导的,得不到确定的可以应用于原型的结果,这个数学模型就是无意义的。

3、反映性原则

  数学模型实际上是人对现实世界的一种反映形式,因此数学模型和现实世界的原型就应有一定的“相似性”,抓住与原型相似的数学表达式或数学理论就是建立数学模型的关键性技巧。

www.themegallery.com

slide6

一、全国大学生数学建模竞赛简介

1)对某个实际问题进行观察、分析(重点是抓住主要方面);

2)对实际问题进行必要的抽象、简化,作出合理的假设(往往是很不容易的);

3)确定要建立的模型中的变量和参数;

4)根据某种“规律”(已知的各学科中的定律, 甚至是经验的规律),建立变量和参数间确定的数学关系;

  • 数学建模的主要步骤

www.themegallery.com

slide7

一、全国大学生数学建模竞赛简介

  • 5)解析或近似地求解该数学问题. 这往往涉及复杂的数学理论和方法, 近似方法和算法;
  • 6)数学结果能否展示、解释甚至预测实际问题中出现的现象,或用某种方法(例如,历史数据、实验数据或现场测试数据等)来验证结果是否正确;
  • 7)如果第 6 步的结果是肯定的,那么就可以付之试用; 如果是否定的,那就要回到第 1 – 6 步进行仔细分析,重复上述建模过程。
  • 数学建模的主要步骤

www.themegallery.com

slide8

一、全国大学生数学建模竞赛简介

  • 数学建模的分类

数学模型涉及的领域千差万别,建模的方法也多种多样,从不同的角度可对数学模型进行各种分类,常见的有:

按模型的应用领域分类

www.themegallery.com

slide9

一、全国大学生数学建模竞赛简介

  • 数学建模的分类

按建模的数学方法分类

www.themegallery.com

slide10

考虑随机因素的影响

考虑时间因素的影响

模型中的变量为离散还是连续的

一、全国大学生数学建模竞赛简介

  • 数学建模的分类

按模型的表现特性分类

www.themegallery.com

slide11

一、全国大学生数学建模竞赛简介

  • 全国大学生数学建模竞赛的发展
  • 1985年开始由美国工业与数学学会举办数学建模竞赛(MCM).
  • 1989年我国大学生开始参加MCM.
  • 1990年上海率先举办了“上海市大学生数学模型竞赛”
  • 1992年,教育部高教司和中国工业与应用数学协会联合举办“中国大学生数学建模竞赛(CUMCM)”
  • 参赛规模从十年前10省市70多所院校300多队增长到2009年33个省、市、自治区以及香港特别行政区1137所院校15042个队,45000多人参加。

www.themegallery.com

slide12

一、全国大学生数学建模竞赛简介

  • 全国大学生数学建模竞赛的发展

参赛学校数:1995年:259所,2009年:1137所

参赛队数:1995年:1234队,2009年:15042队

www.themegallery.com

slide13

一、全国大学生数学建模竞赛简介

  • 2000年A题:DNA序列分类
  • B题:钢管订购和运输
  • 2001年A题:血管的三维重建
  • B题:公交车调度
  • 2002年A题:车灯线光源的优化设计
  • B题:彩 票 中 的 数 学
  • 2003年A题:SARS的传播
  • B题:露天矿生产的车辆安排
  • 2004年A题:奥运会临时超市网点设计
  • B题:电力市场的输电阻塞管理
  • 近年来全国大学生数学建模竞赛题目

www.themegallery.com

slide14

一、全国大学生数学建模竞赛简介

  • 近年来全国大学生数学建模竞赛题目
  • 2005年A题:长江水质的评价和预测
  • B题:DVD在线租赁
  • 2006年A题:出版社的资源配置
  • B题:艾滋病疗法的评价及疗效的预测2007年2007年A题:中国人口增长预测
  • B题:乘公交,看奥运
  • 2008年A题:数码相机定位
  • B题:高等教育学费标准探讨
  • 2009年A题:制动器试验台的控制方法分析
  • B题:眼科病床的合理安排

www.themegallery.com

slide15
一、全国大学生数学建模竞赛简介
  • 数学建模论文的一般结构
  • 摘要
  • 问题重述与分析
  • 问题假设
  • 符号说明
  • 模型建立与求解
  • 结果分析
  • 模型检验
  • 模型推广
  • 模型评价
  • 参考文献和附录

www.themegallery.com

slide16
一、全国大学生数学建模竞赛简介
  • 全国大学生数学建模竞赛的参赛形式
  • 开卷形式的通讯比赛,可以使用任意图书资料和互联网,自由的收集资料、调查研究。
  • 由三名学生组成一队,各参赛队任选一竞赛题。在三天时间内,团结合作、奋力攻关,完成一篇数学建模全过程的论文。
  • 没有事先设定的标准答案,多名专家从以下几个方面来综合评定(1)问题分析及假设的合理性;(2)模型的正确性和创造性;(3)运算结果的正确性;

(4)结论和讨论的科学性;(5)论文表达的清晰性等。

  • 竞赛地点是学生所在院校,竞赛时间是每年9月第三周周五开始的三天时间,共计72小时,即第一天8:00开题,第四天8:00

交卷。

www.themegallery.com

slide17
一、全国大学生数学建模竞赛简介
  • 全国大学生数学建模竞赛的评奖与公布
  • 全国大学生数学建模竞赛以各个省、自治区、直辖市、特别行政区为分赛区,首先由各分赛区组织专家评阅,评出本赛区的一、二、三等奖(陕西省已于2008年取消省级三等奖),并按照一定比例选拔出部分优秀论文报送全国组委会,由全国组委会组织各赛区的专家进行集中评阅,评出国家级一、二等奖(获奖率分别为2%和6%),对全国范围内表现最突出的一个竞赛队伍授予奖杯。
  • 2009年全国组委会还从全国一等奖获奖论文中评选出“2009高教社杯全国大学生数学建模竞赛MATLAB创新奖”两份。
  • 选拔一些优秀论文刊登在每年第一期的《工程数学学报》上。

www.themegallery.com

slide18
一、全国大学生数学建模竞赛简介
  • 高校、企业对数学建模竞赛的认可

IBM 中国研究中心- 招聘条件

Position title: Business Optimization(BJ)1.Background in industrial engineering, operations research, mathematics, Artificial Intelligence, management science etc. 2. Knowledge in network design, job scheduling, data analysis, simulation and optimization 3. Award in mathematical contest in modeling is a plus4. Experience in industry is a plus 5. Experience in eclipse or programming model / architecture design is a plus

--Feb. 18, 2006, http://www-900.ibm.com/cn/ibm/crl/careers/condition.shtml

www.themegallery.com

slide19
一、全国大学生数学建模竞赛简介
  • 企业对数学建模人才的需求

www.themegallery.com

slide20

二、对你的要求与你的收获

  • 对你的要求
  • 精神状态与学习纪律方面
  • 对数学建模的学习兴趣和热情
  • 持之以恒的工作态度
  • 积极主动的学习态度与精益求精的研究精神
  • 勤于思考、勇于创新的学习习惯
  • 富于团队精神和集体荣誉感

www.themegallery.com

slide21

二、对你的要求与你的收获

  • 对你的要求
  • 知识基础与能力要求
  • 良好的数学基础(高数、线性代数、概率统计等)
  • 熟练的计算机操作水平,熟练使用office软件
  • 一定的计算机高级语言编程基础
  • 熟练使用互联网搜索参考文献
  • 快速获取、消化新知识,并能学以致用的自学能力
  • 严谨、简洁、清晰的文字表达能力

www.themegallery.com

slide22

二、对你的要求与你的收获

  • 你的收获
  • 数学基础将得到明显加强
  • 学习数学、运用数学解决实际问题的能力将得到提高
  • 对计算机常用软件的操作,尤其是对Office软件的操作将更加熟练
  • 利用MATLAB等数学软件编程解决实际问题的能力将得到质的飞跃
  • 能够更加熟练地使用互联网搜索参考文献
  • 自学能力与水平将得到明显提高

www.themegallery.com

slide23

二、对你的要求与你的收获

  • 你的收获
  • 科技论文的写作会从入门到不断提高
  • 体验科研工作的全过程,对今后的毕业设计乃至

进一步深造的学位论文写作将非常有利

  • 体会团队精神在协作攻关搞研究中的重要性
  • 学会与他人交流学习体会、交流对问题的看法,准确表述自己的观点,学会虚心接受别人合理的建议和意见,及时调整和改进自身的不足
  • 广泛了解多学科知识,自信心明显增强,对自己的期望和要求也更高。

www.themegallery.com

matlab
三、MATLAB基础及符号运算

MATLAB 是MATrix LABoratory(“矩阵实验室”)的缩写,是由美国MathWorks 公司开发的集数值计算、符号计算和图形可视化三大基本功能于一体的,功能强大、操作简单的语言。是国际公认的优秀数学应用软件之一。

  • MATLAB的发展过程
  • 20世纪80年代初期,Cleve Moler与John Little等利用C语言开发了MATLAB 语言
  • 1984年正式成立Mathworks公司,把MATLAB语言推向市场,并开始了对MATLAB工具箱等的开发设计
  • 1993年推出了面向PC的MATLAB4.0,1997年推出了MATLAB 5

www.themegallery.com

matlab1
三、MATLAB基础及符号运算
  • 随后,MATLAB不断推出新版本。目前最新的版本是2008年11月MATLAB R2008b,它包含了Win32位版和WIn64位版。
  • 随着版本的不断升级,它在数值计算及符号计算功能上得到了进一步完善。MATLAB已经发展成为多学科、多种工作平台的功能强大的大型软件。在欧美等高校,MATLAB已经成为线性代数、自动控制理论、概率论及数理统计、数字信号处理、时间序列分析、动态系统仿真等高级课程的基本教学工具,是攻读学位的大学生、硕士生、博士生必须掌握的基本技能。

www.themegallery.com

matlab2
三、MATLAB基础及符号运算
  • MATLAB的主要特点
  • 运算符和库函数极其丰富,语言简洁,编程效率高,
  • 既具有结构化的控制语句(如for循环、while循环、break语句、if语句和switch语句),又有面向对象的编程特性。
  • 图形功能强大。它既包括对二维和三维数据可视化、图像处理、动画制作等高层次的绘图命令,也包括可以修改图形及编制完整图形界面的、低层次的绘图命令。
  • 功能强大的工具箱。工具箱可分为两类:功能性工具箱和学科性工具箱。
  • 易于扩充。除内部函数外,所有MATLAB的核心文件和工具箱文件都是可读可改的源文件。

www.themegallery.com

matlab3
三、MATLAB基础及符号运算

一、 MATLAB的安装与启动

  • MATLAB对硬件的要求

CPU要求:Pentium II、Pentium III、AMD Athlon或者更高;

光驱:8倍速以上;

内存:至少64MB,但推荐128MB以上;

硬盘:视安装方式不同要求不统一,但至少留1GB用于安装;

显卡:8位;

  • MATLAB对软件的要求

各种微软的Windows操作系统都可以;

Adobe Acrobat Reader 用于阅读帮助文件

  • MATLAB的安装

运行MATLAB光盘上的安装文件即可

www.themegallery.com

matlab4
三、MATLAB基础及符号运算
  • MATLAB的桌面系统

菜单

工作空间浏览器

命令窗口

历史命令窗口

路径浏览器

www.themegallery.com

slide29

三、MATLAB基础及符号运算

  • MATLAB的桌面系统

www.themegallery.com

slide30

三、MATLAB基础及符号运算

  • MATLAB的桌面系统

www.themegallery.com

matlab5
三、MATLAB基础及符号运算
  • MATLAB的命令窗口
  • 在MATLAB命令窗口中,命令的实现不仅可以由菜单操作来实现,也可以由命令行操作来执行
  • 命令行操作便于人机交互,通过对命令行操作,避免了编程序的麻烦 。但运算的结果不保存,复杂的算法还是在M-文件调试编辑器中编写程序完成。
  • 例如:在命令窗口中输入sin(pi/5),然后单击回车键,则会得到该表达式的值
  • sin(pi/5)
  • ans=
  • 0.5878

www.themegallery.com

matlab6
三、MATLAB基础及符号运算

当需要处理相当繁琐的计算时,可能在一行之内无法写完表达式,可以换行表示,此时需要使用续行符“……”否则MATLAB将只计算一行的值,而不理会该行是否已输入完毕。

例如:

sin(1/9*pi)+sin(2/9*pi)+sin(3/9*pi)+……

sin(4/9*pi)+sin(5/9*pi)+sin(6/9*pi)+……

sin(7/9*pi)+sin(8/9*pi)+sin(9/9*pi)+……

ans=

5.6713

  • 在MATLAB命令行操作中,“↑”可用于调出前一个命令行,“↓”可调出后一个命令行,

www.themegallery.com

matlab7
三、MATLAB基础及符号运算
  • MATLAB的M文件调试编辑器——编写程序的窗口

程序名

调试

运行

行号

文本

断点

www.themegallery.com

matlab8
三、MATLAB基础及符号运算

二、 MATLAB的变量

MATLAB的数据类型主要包括:数字、字符串、矩阵、单元型数据及结构型数据等

  • 变量与常量的命名

(1)变量名区分大小写。

(2)变量名长度不能超过31位,

(3)变量名以字母开头,可以是字母、数字、下划线组成,但不能使用标点。

  • 变量的作用域:局部变量和全局变量,全局变量必须声明为

Global,一般用大写字母命名。

www.themegallery.com

slide35

三、MATLAB基础及符号运算

  • MATLAB中的常量

在MATLAB语言中,定义变量时应避免与常量名重复

www.themegallery.com

matlab9
三、MATLAB基础及符号运算
  • 数字变量的运算及显示格式
  • MALAB是以矩阵为基本运算单元的,而构成数值矩阵的基本单元是数字。

对于简单的数字运算,可以直接在命令窗口中以平常惯用的形式输入,如计算2和3的乘积再加1时,可以直接输入:

>> 1+2*3

ans=

7

用户也可以输入:

>> a=1+2*3

a=

7

www.themegallery.com

matlab10
三、MATLAB基础及符号运算
  • 数字变量的显示格式
  • 在缺省情况下,若数据为整数,则就以整数表示;若数据为实数,则以保留小数点后4位的精度近似表示。MATLAB语言提供了10种数据显示格式,常用的有下述几种格式:

short小数点后4位(系统默认值)

long 小数点后14位

short e 5位指数形式

long e 15位指数形式

www.themegallery.com

slide38

三、MATLAB基础及符号运算

  • MATLAB常用数学函数(一): 三角函数

www.themegallery.com

matlab11
三、MATLAB基础及符号运算
  • MATLAB常用数学函数(二):指数函数
  • MATLAB常用数学函数(三):复数函数

www.themegallery.com

slide40

三、MATLAB基础及符号运算

  • MATLAB常用数学函数(四): 取整函数和求余函数

www.themegallery.com

slide41

三、MATLAB基础及符号运算

  • MATLAB常用数学函数(五): 矩阵变换函数

www.themegallery.com

slide42

三、MATLAB基础及符号运算

  • MATLAB常用数学函数(六):其它函数

www.themegallery.com

matlab12
三、MATLAB基础及符号运算
  • 数字变量的字符串
  • MATLAB中的字符串是其进行符号运算表达式的基本构成单元。

在MATLAB中,字符串和字符数组基本上是等价的;所有的字符串都用单引号进行输入或赋值(也可以用函数char来生成)。字符串的每个字符(包括空格)都是字符数组的一个元素。例如:

>>s=’matrix laboratory’;

s= matrix laboratory

MATLAB对字符串的各种操作与C语言几乎完全相同

www.themegallery.com

matlab13
三、MATLAB基础及符号运算

三、 矩阵及其运算

矩阵是MATLAB数据存储的基本单元,而矩阵的运算是MATLAB语言的核心,在MATLAB语言系统中几乎一切运算均是以对矩阵的操作为基础的。

  • 矩阵的生成

在MATLAB中生成矩阵的方法共有三种:直接输入法、外部文件读入法、特殊矩阵的函数生成法。

  • 直接输入法

直接输入矩阵是最方便、最常用的创建数值矩阵的方法,尤其适合较小的简单矩阵。在用此方法创建矩阵时,应当注意以下几点:

www.themegallery.com

matlab14
三、MATLAB基础及符号运算
  • 输入矩阵时要以“[ ]”为其标识符号,矩阵的所有元素必须都在括号内。
  • 矩阵同行元素之间由空格或逗号分隔,行与行之间用分号或回车键分隔。
  • 矩阵大小不需要预先定义。
  • 矩阵元素可以是运算表达式。
  • 若“[ ]”中无元素表示空矩阵。

www.themegallery.com

matlab15
三、MATLAB基础及符号运算
  • 矩阵操作时冒号的作用

用于生成等步长的向量,默认步长值为1。

>> a=1:0.5:4

a= Columns 1 through 7

1 1.5 2 2.5 3 3.5 4

另外,通过使用冒号,可以截取指定矩阵中的指定行、列或元素,例如:

>> A=[1 2 3;4 5 6;7 8 9]

A=

1 2 3

4 5 6

7 8 9

www.themegallery.com

matlab16

同理

>> C=A (:,2:3)

C=

2 3

5 6

8 9

三、MATLAB基础及符号运算

>> B=A (1:2, : )

B=

1 2 3

4 5 6

通过上例可以看到B是由矩阵A的1到2行和相应的所有列的元素构成的一个新的矩阵。在这里,冒号代替了矩阵A的所有列。

C是由矩阵A的2到3列相应的所有列的元素构成的一个新的矩阵,在这里,冒号代替了矩阵A的所有行。

www.themegallery.com

matlab17
三、MATLAB基础及符号运算
  • 外部文件读入法

该文件必须保存在MATLAB规定的缺省目录中,否则需要之名路径。

命令: Load+文件名[参数]

作用:Load函数将会从文件名所指定的文件中读取数据,并将输入的数据赋给以文件名命名的变量,例如:

在MATLAB命令窗口中输入:

>> load data1.txt

>> data1

data1=

1 1 1

1 2 3

1 3 6

事先在记事本中

建立文件: 1 1 1

(并以data1.txt保存) 1 2 3

1 3 6

www.themegallery.com

matlab18
三、MATLAB基础及符号运算
  • 特殊矩阵的函数生成法。

单位矩阵:eye(m,n); eye(m)

零矩阵:zeros(m,n); zeros(m)

一矩阵: ones(m,n); ones(m)

对角矩阵: 对角元素向量 V=[a1,a2,…,an]

A=diag(V)

随机矩阵: rand(m,n),rand(m)

产生一个均匀分布的随机矩阵

randn(m,n)

产生一个正态分布的随机矩阵

randperm(n)

产生1~n之间整数的随机排列

www.themegallery.com

matlab19
三、MATLAB基础及符号运算

》eye(2,3)

ans=

1 0 0

0 1 0

》ones(2,3)

ans=

1 1 1

1 1 1

》eye(2)

ans=

1 0

0 1

》zeros(2,3)

ans=

0 0 0

0 0 0

例如:

》zeros(2)

ans=

0 0

0 0

》ones(2)

ans=

1 1

1 1

A=

5 0 0

0 7 0

0 0 2

》V=[5 7 2]; A=diag(V)

www.themegallery.com

matlab20
三、MATLAB基础及符号运算
  • 子数组的访问与赋值

指令修改:要给矩阵A第i行,第j列的元素赋值为k,可以用语句

A(i,j)= k;

来实现修改

例如:a=[1 2 0;3 0 5;7 8 9]

a =1 2 0

3 0 5

7 8 9

a(3,3)=0;

a =1 2 0

3 0 5

7 8 0

www.themegallery.com

matlab21
三、MATLAB基础及符号运算

也可以一次访问或修改一个子数组,如:

x =0.9501 0.2311 0.6068 0.4860 0.8913

x([1 2 5]) %寻访数组x的第一、二、五个元素组成的子数组。

ans =

0.9501 0.2311 0.8913

x(1:3)%寻访前三个元素组成的子数组

ans =

0.9501 0.2311 0.6068

www.themegallery.com

matlab22
三、MATLAB基础及符号运算

x =0.9501 0.2311 0.6068 0.4860 0.8913

x(3:end) %寻访数组x的寻访从第3个到最后一个元素。

ans =

0.9501 0.2311 0.8913

x(3:-1:1)%由前三个元素倒排构成的子数组

ans =

0.6068 0.2311 0.9501

x(find(x>0.5))%由大于0.5的元素构成的子数组

ans =

0.9501 0.6068 0.8913

www.themegallery.com

matlab23
三、MATLAB基础及符号运算

x =0.9501 0.2311 0.6068 0.4860 0.8913

x([1 2 3 4 4 3 2 1]) %对元素可以重复寻访,使所得数组长度

允许大于原数组。

ans =

Columns 1 through 7

0.9501 0.2311 0.6068 0.4860 0.4860 0.6068 0.2311

Column 8

0.9501

x([1 4])=[1 1]%把当前x数组的第一、四个元素都赋值为1

ans =

1.0000 0.2311 0 1.0000 0.8913

www.themegallery.com

matlab24
三、MATLAB基础及符号运算

另外,对于二维数组,访问和赋值时,

A(r,c)表示提取二维数组A中第r行,第c列的元素;

A(r,:)表示提取二维数组A中第r行的所有元素;

A(:,c)表示提取二维数组A中第c列的所有元素;

A(m1:m2,n1:n2):提取第m1行到第m2行和第n1列到第n2列的所有元素(提取子块)。

A(:):得到一个长列向量,该向量的元素按矩阵的列进行排列。

www.themegallery.com

matlab25
三、MATLAB基础及符号运算
  • 矩阵的运算

转置,四则运算与幂运算

’,+ ;- ;* ;\和/ ;^;.* ;.\ ;./;.^

如:a=[1 2;3 4];b=[3 5; 5 9]

》c=a+b d=a-b e=a’

》c= d= e=

4 7 -2 -3 1 3

8 13 -2 -5 2 4

a*b=[13 23; 29 51]

www.themegallery.com

matlab26
三、MATLAB基础及符号运算

a/b运算等效于求a*x=b的解

a/b=[-0.50 0.50; 3.50 –1.50]

a\b=[-1 -1;2 3]

a\b等效于求x*b=a的解

只有方阵才可以求幂。

a^3=[37 54; 81 118]

a.*b=[3 10;15 36]

点运算是两个维数相同矩阵对应元素之间的运算

a./b=[0.33 0.40;0.60 0.44]

a.\b=[3.00 2.50;1.67 2.25]

a.^3= [1 8; 27 64]

www.themegallery.com

matlab27
三、MATLAB基础及符号运算
  • 矩阵的运算:常见矩阵函数

det(a)求矩阵a的行列式

eig(a)求矩阵a的特征值

inv(a)或a ^ (-1)求矩阵a的逆矩阵

rank(a)求矩阵a的秩

trace(a)求矩阵a的迹(对角线元素之和)

size(a) 求矩阵大小,返回(m,n),其中

m表示a的行数,n表示a的列数

www.themegallery.com

matlab28
三、MATLAB基础及符号运算

find(a) 求矩阵a中所有非零元素的位置,返回(m,n),

其中m表示a中所有非零元素的行数,n表示a中所有

非零元素的列数

find(a逻辑判别式) 求矩阵a中所有满足逻辑判别式(如a==0,

a>=1等)的元素的位置,返回(m,n)

其中m表示a中所有非零元素的行数,n表

示a中所有非零元素的列数

numel(a) 返回矩阵a中元素的个数

sort(a) 对矩阵a中的元素进行排序从小到大排序

www.themegallery.com

slide60

三、MATLAB基础及符号运算

  • 矩阵的运算:逻辑运算

www.themegallery.com

matlab29
三、MATLAB基础及符号运算

例如

xa=

0 0 0

0 1 1

1 1 1

a=[1 2 3; 4 5 6; 7 8 9];

>> x=5;

>> xa= x<=a

www.themegallery.com

matlab30
三、MATLAB基础及符号运算

四、MATLAB的符号运算

  • 符号变量与符号表达式

f = 'sin(x)+5x'f2=‘ax^2+bx+c=0'

f ——符号变量名

sin(x)+5x——符号表达式

' '——符号标识

注:符号表达式一定要用' ' 单引号括起来matlab才能识别。

  • 特点: 运算对象可以是没赋值的符号变量
  •  可以获得任意精度的解

www.themegallery.com

matlab31
三、MATLAB基础及符号运算
  • 符号运算与数值运算的区别

※ 数值运算中必须先对变量赋值,然后才能参与运算。

※ 符号运算无须事先对独立变量赋值,运算结果以标准的符号形式表达。

注:符号表达式或符号方程可以赋给符号变量,以后调用方便;也可以不赋给符号变量直接参与运算

www.themegallery.com

matlab32
三、MATLAB基础及符号运算

注:由此种方法创建的符号表达式对空格是很敏感的,

因此不要在字符间乱加空格符。另外一种创建符号函数

的方法是利用syms(用于生成多个符号变量)命令

或sym(用于生成1个符号变量)命令,如:

>>sym x;

>>f=sin(x)+cos(x)

f=

sin(x)+cos(x)

但这种方法只能创建符号函数,而不能创建符号方程。

www.themegallery.com

matlab33

>>a=sym(‘[1/s+x,sin(x),cos(x)^2/(b+x);9,exp(x^2+y^2),

log(tanh(y))]’)

a=

三、MATLAB基础及符号运算

在符号运算中sym命令可以将数值矩阵转化为符号矩

阵,如:

www.themegallery.com

matlab34
三、MATLAB基础及符号运算
  • 常见的符号运算函数

(1)符号表达式的化简

pretty(f)将符号表达式化简成与高等数学课本上显示符号表

达式形式类似

collect(f)合并符号表达式的同类项

horner(f)将一般的符号表达式转换成嵌套形式的符号表达式

factor(f)对符号表达式进行因式分解

expand(f)对符号表达式进行展开

simple(f)对符号表达式尝试多种不同的算法进行化简,以显

示长度最短的符号表达式简化形式

www.themegallery.com

matlab35
三、MATLAB基础及符号运算
  • 常见的符号运算函数

(2)符号矩阵

transpose(A)符号矩阵的转置

determ(A)符号矩阵的行列式

det(A)符号矩阵的行列式

inv(A)符号矩阵求逆

rank(A)符号矩阵求秩

[B,C]=eig(A)B为A的特征向量,C为A特征值

www.themegallery.com

matlab36
三、MATLAB基础及符号运算
  • 常见的符号运算函数

(3)符号微积分

Limit(f,x,a)求符号表达式f当x趋向于a时的极限Limit(f,x,a,‘right’) 右极限

Limit(f,x,a,‘left’) 左极限

Diff(f)求f的微分

Diff(f,‘a’)对变量a求微分

Diff(f,n)对f求n次微分

Diff(f,'a' ,n)对变量a求n次微分

www.themegallery.com

matlab37
三、MATLAB基础及符号运算
  • 常见的符号运算函数

(3)符号微积分

int(f)对f求不定积分

int(f,v)对v变量求不定积分

int(f,a,b)对f求[[a,b]上的定积分

int(f,v,a,b)对变量v求[a,b]上的定积分

www.themegallery.com

matlab38
对于数学上的通式求和 问题,可用MATLAB的求和指令解决。

s=symsum(f,v,a,b)

求通式f在指定变量v取遍[a,b]中所有整数时的和

注:

f是矩阵时,求和对元素逐个进行,但自变量定义在整个矩阵上。

v确省时,f中的自变量由findsym自动辨识;b可以取有限整数,也可以取无穷大

三、MATLAB基础及符号运算
  • 常见的符号运算函数

www.themegallery.com

matlab39
三、MATLAB基础及符号运算
  • taylor(f)
  • 计算符号表达式f在默认自变量等于0处的5阶Taylor级数展开式
  • taylor(f,n,v)
  • 计算符号表达式f在指定变量v=0处的n-1阶Taylor级数展开式
  • 常见的符号运算函数
  • Taylor级数展开

www.themegallery.com

matlab40
三、MATLAB基础及符号运算
  • >>clear
    • >>f1 = sym('1/(a-b) ');
    • >>f2 = sym('2*a/(a+b) ');
    • >>f3 = sym(' (a+1)*(b-1)* (a-b) ');
    • >> f1+f2 %符号和
    • ans =
    • 1/(a-b)+2*a/(a+b)
    • >> f1*f3 %符号积
    • ans =
    • (a+1)*(b-1)
    • >> f1/f3 %符号商
    • ans =
    • 1/(a-b)^2/(a+1)/(b-1)
  • 符号运算举例

www.themegallery.com

matlab41
三、MATLAB基础及符号运算
  • 符号运算举例

>>clear

>> f1 =sym('(exp(x)+x)*(x+2)');

>> collect(f1) %合并同类项

ans =

x^2+(exp(x)+2)*x+2*exp(x)

>>expand(f1) %括号展开

ans =

exp(x)*x+2*exp(x)+x^2+2*x

>> f2 = sym('a^3-1');

>> f4 = sym('sin(x)^2+cos(x)^2');

>>factor(f2) %因式分解

ans =

(a-1)*(a^2+a+1)

>> simplify(f4) %化简

ans =

1

www.themegallery.com

matlab42
三、MATLAB基础及符号运算
  • 符号运算举例

>>clear

>>syms x y

>>finverse(1/tan(x)) %求反函数,自变量为x

ans =

atan(1/x)

>>clear

>>syms x y z t u;

>>f = 1/(1 + x^2); g = sin(y);

>>compose(f,g) %求f = f(x) 和g = g(y)的复合函数f(g(y))

ans =

1/(1+sin(y)^2)

www.themegallery.com

matlab43

分别计算

三、MATLAB基础及符号运算
  • 符号运算举例

>>clear

>>syms a x

>>limit(1/x,x,0)

ans =

NaN

>>limit(1/x,x,0,’left’)

ans =

-Inf

>>limit(((x+a)/(x-a))^x, inf)

ans =

exp(2*a)

www.themegallery.com

matlab44

已知 ,求

三、MATLAB基础及符号运算
  • 符号运算举例

>>clear

>>syms a b c x

>>f=sym(‘a*x^2+b*x+c’)

>>diff(f)

ans =

2*a*x+b

>>diff(f,2)

ans =

2*a

>>diff(f,a)

ans =

x^2

www.themegallery.com

matlab45
三、MATLAB基础及符号运算
  • 符号运算举例
  • 已知 ,求 的积分

>>clear

>>syms a b c x

>>f=sym(‘a*x^2+b*x+c’)

>>int(f)

ans =

1/3*a*x^3+ 1/2*b*x^2+c*x

>>int(f,x,0,2)

ans =

8/3*a+2*b+2*c

www.themegallery.com

matlab46
四、MATLAB绘图
  • MATLAB有很强的图形功能,可以方便地实现数据的可视化。强大的计算功能与图形功能相结合为MATLAB在科学技术和教学方面的应用提供了更加广阔的天地。

www.themegallery.com

matlab47

第一类

第二类

利用符号绘图函

数实现easy plot,

即根据一元或二

元函数的表达式,

直接在指定区间内

绘制曲线或曲面图。

利用plot命令对二

维或三维离散数据绘

制曲线或曲面图

四、MATLAB绘图
  • MATLAB实现绘图的两大类方法

www.themegallery.com

matlab48
四、MATLAB绘图
  • 利用符号函数进行绘图
  • 基本命令1:ezplot

格式1:ezplot(f)在默认区间一2*pi<x<2*pi绘制f=f(x)的曲线图

例如:ezplot('cos(x)')

注:ezplot命令只能在

一张图中绘制一条曲线,

而且会自动在图上加注

函数的表达式。

www.themegallery.com

matlab49
四、MATLAB绘图

格式2:ezplot(f,[a,b])在区间a<x<b上绘制f=f(x)的曲线图

例如:ezplot(‘sin(x)’,[-pi/2, pi/2])

ezplot还可以绘制方程形式的隐函数曲线,

如: ezplot('x^2 + y^2 - 1',[-1.25,1.25]);

axis equal;

表示在[-1.25,1.25]内绘制单位圆,

且横纵坐标比例相同。

www.themegallery.com

matlab50
四、MATLAB绘图

ezplot还可以绘制二维参数曲线

如: ezplot('sin(3*t)*cos(t)','sin(3*t)*sin(t)',[0,pi])

www.themegallery.com

matlab51

例如:ezplot3('cos(t)', 'sin(t)', 't', [0,6*pi])

注:t的缺省区间为 [0, 2*pi].

四、MATLAB绘图
  • 基本命令2: ezplot3 ——用于绘制三维参数曲线

www.themegallery.com

matlab52
四、MATLAB绘图
  • 基本命令3: ezsurf ——用于绘制方程为z=f(x,y)的三维曲面

自变量的缺省取值范围是:-2*pi<x<2*pi, -2*pi<y<2*pi

例如:ezsurf('sin(sqrt(x^2+y^2))

/sqrt(x^2+y^2)',[-6*pi,6*pi])

ezsurf('4*sqrt(1-x^2/4-y^2/16)',[-2,2,-4,4]);

axis equal

www.themegallery.com

matlab53

ezsurf(f) :也可用于绘制参数曲面

四、MATLAB绘图

ezsurf(x,y,z,[smin,smax,tmin,tmax])

参数s和t的缺省取值范围是:-2*pi<s<2*pi, -2*pi<t<2*pi

例如:

ezsurf(‘s*cos(t)’,‘s*sin(t)’,‘t’,

[-2,2,-3*pi,2*pi])

即:

-2<s<2, -3*pi<t<2*pi

www.themegallery.com

matlab54
四、MATLAB绘图

又如:

ezsurf(‘sin(s)*cos(t)’,‘sin(s)*sin(t)’,‘cos(s)’,[0,pi,0,2*pi])

www.themegallery.com

matlab55
四、MATLAB绘图

(二)利用Plot命令对离散数据绘图

MATLAB最常用的画二维图形的命令是plot;

  • plot命令自动打开一个图形窗口Figure;
  • 用直线连接相邻两数据点来绘制图形;
  • 根据图形坐标大小自动缩扩坐标轴,将数据标尺及单位标注自动加到两个坐标轴上,也可自定坐标轴,可把x, y 轴用对数坐标表示。
  • 如果已经存在一个图形窗口,plot命令则清除当前图形,绘

制新图形;如果想保留本次绘图命令的执行结果,就要在plot命令后,加上“hold on”语句。

www.themegallery.com

matlab56
四、MATLAB绘图
  • plot 的调用格式(1)
  • plot(x) —— 缺省自变量绘图格式,x为向量, 以x元素值为纵坐标,以相应元素的序号为横坐标绘图。

如:

>> y=[0 0.58 0.70 0.95 0.83 0.25];

>> plot(y)

www.themegallery.com

matlab57
四、MATLAB绘图
  • plot 的调用格式(2)
  • plot(x,y) :以y(x)的函数关系作出直角坐标图,如果y为n×m的矩阵,则以x 为自变量,作出m条曲线

如:

>> x=linspace(0,2*pi,30);

% 生成一组线性等距的数值

>> y=sin(x);

>> plot(x,y)

www.themegallery.com

matlab58
四、MATLAB绘图
  • plot 的调用格式(3)
  • plot(x1,y1,x2,y2) —— 多条曲线绘图格式

如:

>> x=0:pi/15:2*pi;

>> y1=sin(x);

>> y2=cos(x);

>> plot(x,y1,x,y2)

www.themegallery.com

matlab59
四、MATLAB绘图
  • plot 的调用格式(4)
  • plot(x,y, ‘s’) —— 开关格式,开关量字符串s设定曲线颜色和绘图方式,使用颜色字符串的前1~3个字母,也可plot(x1,y1,‘s1’,x2,y2, ‘s2’,…)

如:

>> x=0:pi/15:2*pi;

>> y1=sin(x); y2=cos(x);

>> plot(x,y1,’b:+’,x,y2,’g-.*’)

www.themegallery.com

slide92

四、MATLAB绘图

  • Plot命令中格式开关的参数的取值

www.themegallery.com

matlab60
四、MATLAB绘图
  • 图形的加注功能

MATLAB绘图时,可以将标题、坐标轴标记、网格线、图例及文字注释加注到图形上,这些函数为:

title —— 给图形加标题

xlable —— 给x轴加标注

ylable —— 给y轴加标注

text —— 在图形指定位置加标注

gtext —— 将标注加到图形任意位置

grid on(off) —— 打开、关闭坐标网格线

legend —— 添加图例

axis —— 控制坐标轴的刻度

www.themegallery.com

matlab61
四、MATLAB绘图

t=0:0.1:10

y1=sin(t);y2=cos(t);plot(t,y1,'r',t,y2,'b--');

x=[1.7*pi;1.6*pi];

y=[-0.3;0.8];

s=['sin(t)';'cos(t)'];

text(x,y,s);

title('正弦和余弦曲线');

legend('正弦','余弦')

xlabel('时间t'),ylabel('正弦、余弦')

grid on

axis square

  • 例如

如果想在坐标(x,y)处加入标题,也可用命令title,如:

>> text(2.5,0.7,’sinx’)

www.themegallery.com

matlab62
四、MATLAB绘图

www.themegallery.com

matlab63
四、MATLAB绘图
  • 坐标的控制

在缺省情况下MATLAB自动选择图形的横、纵坐标的比例,如果你对这个比例不满意,可以用axis命令控制,常用的有:

axis([xmin xmax ymin ymax]): [ ]中分别给出x轴和y轴的

最大值、最小值

axis equal 或 axis(‘equal’):x轴和y轴的单位长度相同

axis square 或 axis(‘square’) :图框呈方形

axis on(off):显示(隐藏)坐标刻度

axis outo: 系统自动设定坐标系

www.themegallery.com

matlab64
四、MATLAB绘图
  • 多幅图形绘制

用subplot(m,n,p)命令;把一个画面分成m×n个图形区域, p代表当前的区域号,在每个区域中分别画一个图。如 :

>> x=linspace(0,2*pi,30); y=sin(x); z=cos(x);

>> u=2*sin(x).*cos(x); v=sin(x)./cos(x);

>> subplot(2,2,1),plot(x,y),axis([0 2*pi –1 1]),title(‘sin(x)’)

>> subplot(2,2,2),plot(x,z),axis([0 2*pi –1 1]),title(‘cos(x)’)

>> subplot(2,2,3),plot(x,u),axis([0 2*pi –1 1]),title(‘2sin(x)cos(x)’)

>> subplot(2,2,4),plot(x,v),axis([0 2*pi –20 20]),title(‘sin(x)/cos(x)’)

www.themegallery.com

matlab65
四、MATLAB绘图

www.themegallery.com

matlab66
四、MATLAB绘图
  • 特殊二维图形的绘制

bar––––绘制直方图

polar––––绘制极坐标图

hist ––––绘制统计直方图

stairs––––绘制阶梯图

stem––––绘制火柴杆图

rose––––绘制统计扇形图

comet––––绘制彗星曲线

www.themegallery.com

matlab67
四、MATLAB绘图

errorbar –––– 绘制误差棒图

compass–––– 复数向量图(罗盘图)

feather–––– 复数向量投影图(羽毛图)

quiver –––– 向量场图

area–––– 区域图

pie –––– 饼图

convhull –––– 凸壳图

scatter –––– 离散点图

www.themegallery.com

matlab68
四、MATLAB绘图
  • 例如:绘制阶梯曲线

x=0:pi/20:2*pi;y=sin(x);stairs(x,y)

www.themegallery.com

matlab69
四、MATLAB绘图
  • 例:绘制极坐标绘图

t=0:2*pi/90:2*pi;y=cos(4*t);polar(t,y)

www.themegallery.com

matlab70
四、MATLAB绘图

绘制直方图

  • 例如:t=0:0.2:2*pi; y=cos(t); bar(y)

www.themegallery.com

matlab71
四、MATLAB绘图

绘制饼图

  • x=[1 2 3 4 5 6 7];y=[0 0 0 1 0 0 0];pie(x,y)

www.themegallery.com

slide105

四、MATLAB绘图

  • plot3 ——基本的三维图形指令

调用格式:

plot3(x,y,z)—— x,y,z是长度相同的向量

plot3(X,Y,Z)—— X,Y,Z是维数相同的矩阵

plot3(x,y,z,s)——带格式开关量

plot3(x1,y1,z1,'s1', x2,y2,z2,'s2', …)

www.themegallery.com

matlab72
四、MATLAB绘图

例如:作螺旋线 x=sint, y=cost, z=t

用以下程序实现:

>> t=0:pi/50:10*pi;

>> plot3(sin(t),cos(t),t)

www.themegallery.com

pie3 4 3 6 8 9
三维饼图例如:pie3([4 3 6 8 9])

四、MATLAB绘图

www.themegallery.com

matlab73
四、MATLAB绘图
  • 三维曲面的绘制

为了绘制定义在平面区域 D =[x0,xm]×[y0,yn]上的三维曲面z=f(x,y),首先将[x0,xm]在 x 方向分成 m 份,将[y0,yn]在 y 方向分成 n 份,由各划点分别作平行于坐标轴的直线,将区域 D 分成 m×n 个小矩形;对于每个小矩形,计算出网格点的函数值,决定出空间中四个顶点(xi,yi,f(xi,yi)),连接四个顶点得到一个空间的四边形片;所有四边形片连在一起构成函数 z=f(x,y)定义在区域D上的空间网格曲面。

在MATLAB中,三维曲面绘图命令可分为平面网格点的生成、在平面网格基础上绘制三维网格及对三维表面进行处理三个步骤

www.themegallery.com

matlab74
四、MATLAB绘图

第一步:平面网格点的生成

  • 函数命令meshgrid用来生成 x-y 平面上的网格点矩阵。
  • 调用形式为:
  • [X,Y]=meshgrid(x,y)
  • [X,Y]=meshgrid(x) 等价于[X,Y]=meshgrid(x,x)
  • 参数含义如下:
  • x:是区间[x0,xm]上分划的向量;
  • y:是区间[y0,yn]上分划的向量;
  • X,Y:输出变量矩阵,矩阵X 的行向量都是向量 x,矩阵Y 的列向量都是向量 y。
  • 函数meshgrid将由两个向量决定的区域转换为对应的网格点矩阵。

www.themegallery.com

matlab75
四、MATLAB绘图

例如:

函数 ,定义区域为[-2,2]×[-2,2]。生成网格并计算其网格点上的函数值。

[X,Y] = meshgrid(-2:2:2, -2:2:2);

[X,Y] %将划分结果输出至矩阵

ans =

-2 0 2 -2 -2 -2

-2 0 2 0 0 0

-2 0 2 2 2 2

Z = X .* exp(-X.^2 - Y.^2); %计算网格点上的函数值赋予变量

Z

Z =

-0.0007 0 0.0007

-0.0366 0 0.0366

-0.0007 0 0.0007

www.themegallery.com

matlab76
四、MATLAB绘图

第二步:三维网格命令 mesh

  • 利用函数mesh生成网格曲面。
  • 调用格式为:
  • mesh(X,Y,Z,C):X、Y、Z、C 是同维数的矩阵,X、Y、Z 对应空间上的网格点,网格线颜色由C决定;
  • mesh(X,Y,Z):相当于上面的 C=Z 的情况;
  • mesh(x,y,Z,C):x 和 y 是向量,Z 和 C 是同维数的矩阵,网格曲面的网格顶点是(x(j),y(i),Z(i,j)),网格线的颜色由矩阵 C 决定;
  • mesh(x,y,Z):相当于上面的 C=Z 的情况;
  • mesh(Z,C):等价于 mesh(x,y,Z,C),此时向量x=1:n,向量 y=1:m;
  • mesh(Z):相当于上面的 C=Z 的情况
  • mesh(...,’PropertyName’,PropertyValue,...):给函mesh设置曲面属性。

www.themegallery.com

matlab77
四、MATLAB绘图

用 mesh 命令绘制上例中的网格曲面

[X,Y] = meshgrid(-2:.2:2, -2:.2:2);

Z = X .* exp(-X.^2 - Y.^2);

mesh(Z)

www.themegallery.com

matlab78
四、MATLAB绘图

作曲面z=f(x,y)的图形

程序:

>> x=-7.5:0.5;7.5;

>> y=x;

>> [X,Y]=meshgrid(x,y);

%(3维图形的X,Y数组)

>> R=sqrt(X.^2+Y.^2)+eps;

%(加eps是防止出现0/0)

>> Z=sin(R)./R;

>> mesh(X,Y,Z)

%(3维网格表面)

www.themegallery.com

matlab79
四、MATLAB绘图

第三步: 三维表面命令 surf

函数surf 可实现对网格曲面片进行着色,将网格曲面转化为实曲面。surf 命令的调用格式与mesh 相同。例如:

z=peaks; %绘制山峰的图像,将函数值赋予变量z

surf(z) %对山峰的图像进行着色处理

shading interp %函数shading 改变着色方式

www.themegallery.com

matlab80
四、MATLAB绘图
  • MATLAB下图形的输出
  • 在撰写论文时,往往需要将产生的图形输出到Word文档中。通常可采用下述方法:

首先,可以在MATLAB的图形窗口(Figure)下按照需求修改图形的背景色、线型、标注等内容。

然后,在MATLAB图形窗口中选择【File】菜单中的【Export】选项,将打开图形输出对话框,在该对话框中可以把图形以

emf、bmp、jpg、pgm等格式保存。

最后,在word文档中选择【插入】菜单中的【图片】选项插入相应的图片即可。

www.themegallery.com

slide116

四、数学建模论文的写作

国内著名的数学建模网站
  • http://www.madio.net/数学中国_内蒙古大学
  • http://www.ilovematlab.cn/Matlab中文论坛
  • http://www.mcm.edu.cn 全国组委会网站
  • http://www.shumo.com/home/ 国防科技大学网站
  • http://www.cumcm.net/ 苏北数学建模联赛(中国矿业大学)
  • http://mcm.zjnu.net.cn/ 北峰数模网(浙江师范大学)
  • http://math.hzau.edu.cn/ 华中农业大学数模基地
  • http://mcm.nwpu.edu.cn/ 数模天空(西北工业大学)

www.themegallery.com