2014MATLAB-01-数学模型与MATLAB基本使用方法

Download Report

Transcript 2014MATLAB-01-数学模型与MATLAB基本使用方法

Mathematical Modeling and MATLAB
数学建模与MATLAB
主讲人:孙越
孙越
Outstanding Faculty Advisor of HiMCM/MCM
13916382955(微信号)
STUDENT.SFLS.CN
Mathematical Modeling and MATLAB
数学建模与MATLAB
主讲人:孙越
数学建模与MATLAB
第一讲:数学模型与
MATLAB基本使用方法
2015/4/20
§1.1
什么是数学模型?
数学建模与MATLAB
3
MATLAB是什么?
• MATLAB语言是在国外大学和研究机构中流行很广的一种
数值计算及图形工具软件。它的特点是语言结构简明,数
值计算高效,图形功能完备,特别适合于非专业的计算机
编程人员完成日常数值计算、科学试验数据处理、图形图
像生成等通用性任务时使用。
• 为满足同学们对数学建模的兴趣,提高同学们解决现实问
题的综合能力,选拔参加比赛的学生而开设本课程。本课
程的教学目的是使学生从MATLAB入门知识着手,系统地
掌握MATLAB语言的基础概念、知识和体系,分析
MATLAB的各类功能及功能函数,通过大量实例掌握
MATLAB的编程技巧以及应用其解决现实生活中数学模型
问题,并进行数据处理。
数学建模与MATLAB
4
诺贝尔经济学奖的启示
• 自1969年诺贝尔经济学奖设立以来,获奖者大多数具有深
厚的数学功底。娴熟的数学技巧加上出众的思想,是他们
摘获诺奖桂冠的超凡之道
• 他们中的大多数人的大学本科专业都是数学、物理等理科
背景,有些干脆就是数学家转而研究经济学的。
• 数学被广泛应用于经济学研究,这也许是经济学被视为科
学并设有经济学诺贝尔奖的原因之一吧。
• 诺贝尔经济学奖屡颁数学家
– 2003年诺贝尔经济学奖,就是表彰美国经济学家罗伯特·恩格尔和
英国经济学家克莱夫·格兰杰分别用“随着时间变化易变性”和“共同
趋势”两种新方法分析经济时间数列给经济学研究和经济发展带来
巨大影响。
数学建模与MATLAB
5
数学模型
• 据统计:近几年全世界所发表的科技论文中,使用频率最
数学模型
高的关键词即为——
• 运用数学方法去解决实际问题,即要用数学的语言、方法
去近似地刻划实际问题的过程就是数学建模。而这种数学
表述就是一个数学模型。
Mathematic Modeling
数学建模与MATLAB
6
数学建模的流程
实际问题
分析
建立
数学模型
求解
数学模型
在实际中
印证
解释
数学解
No
提出报告
或结论
Yes
数学建模与MATLAB
7
www.comap.com
•
MCM(The Mathematical Contest in Modeling)是美国的SIAM(工业与应用数学
协会)和COMAP(The Consortium for Mathematics and Its Application)于1985发
起的一项面向全世界大学生的一个数学建模比赛,每年有来自十几个国家几百所
院校的代表队参赛。2013年共有来自世界各国的4000支代表队参加了这项比赛。
•
竞赛时三名大学生组成一队,从三道题(其中一道为交叉学科竞赛题目)中选
择一题在四天时间内完成一篇研究论文,学生可以自由地收集各种软件和材料,
赛题没有事先确定的答案,要求用英语完成论文。论文评阅标准是,假设的合理
性、建模的创造性、结果的正确性和表述的清晰程度。比赛时间一般为2月份寒假
期间。比赛优胜者设置特等奖(Outstanding Winners),一等奖(Finalist),二等
奖(Meritorious Winners),三等奖(Honorable Mentions),鼓励奖(Successful
Participants,成功参赛奖)五个奖项。
•
我校学子每年都在比赛中取得不俗战绩,而这两项赛事主要使用MATLAB和
C/C++(PASCAL)作为主要比赛工具。
数学建模与MATLAB
8
2010 HiMCM 全球获奖分布
Proble
m
National
Outstanding
%
Regional
Outstanding
%
Meritorious
%
Honorable Mention
%
Successful
Participant
%
TOTAL
A
3
2%
21
13%
42
26%
66
41%
29
18%
161
B
6
5%
9
7%
34
25%
62
46%
23
17%
134
Total
9
3%
30
10%
76
26%
128
43%
52
18%
295
2010 HiMCM 上外附中获奖分布
Proble
m
Total
National
Outstanding
%
Regional
Outstanding
%
1
1
5%
5%
Meritorious
%
13
68%
Honorable Mention
%
3
16%
Successful
Participant
%
1
5%
TOTAL
19
中国共3个杰出方案,我校有2个!
数学建模与MATLAB
9
2011 HiMCM 全球获奖分布
Proble
m
National
Outstanding
%
Regional
Outstanding
%
Meritorious
%
Honorable Mention
%
Successful
Participant
%
TOTAL
A
4
2%
25
11%
63
28%
78
35%
52
24%
222
B
4
2%
28
13%
59
28%
67
32%
55
26%
213
Total
8
2%
53
12%
122
28%
145
33%
107
25%
435
2011 HiMCM 上外附中获奖分布
Proble
m
Total
National
Outstanding
%
0
0%
Regional
Outstanding
%
10
45%
Meritorious
%
6
27%
Honorable Mention
%
6
27%
Successful
Participant
%
0
0%
TOTAL
22
中国共16个杰出方案,我校有10个!
数学建模与MATLAB
10
2012 HiMCM 全球获奖分布
2012 HiMCM 上外附中获奖分布
Problem
Total
Outstanding
0
0
National
Finalist
0
0
Finalist
4
Meritorious
16%
16
64%
数学建模与MATLAB
Honorable
Mention
3
12%
Successful
Participant
2
8%
TOTAL
25
11
数学建模与MATLAB
12
2014HIMCM
Problem
Total
Outstandi
ng
0
0
National
Finalist
1
4%
Finalist
7
28%
Meritorious
12
48%
Honorable
Mention
3
12%
Successful
Participant
2
8%
TOTAL
25
赛题题型结构形式有三个基本组成
•
一、实际问题背景 1. 涉及面宽--有社会,经济,管理,
生活,环境,自然现象,工程技术,现代科学中出现的新
问题等。 2. 一般都有一个比较确切的现实问题。
•
二、若干假设条件 有如下几种情况: 1. 只有过程、规
则等定性假设,无具体定量数据; 2. 给出若干实测或统计
数据; 3. 给出若干参数或图形; 4. 蕴涵着某些机动、可
发挥的补充假设条件,或参赛者可以根据自己收集或模拟
产生数据。
•
三、要求回答的问题 往往有几个问题(一般不是唯一
答案): 1. 比较确定性的答案(基本答案); 2. 更细致或
更高层次的讨论结果(往往是讨论最优方案的提法和结
果)。
数学建模与MATLAB
14
数学建模与MATLAB
15
国内相关网站
• http://mcm.ustc.edu.cn
• http://www.madio.net/
• http://www.mcm.edu.cn
• http://www.matlab.net.cn
数学建模与MATLAB
16
参考书目
•
•
•
•
•
•
•
《MATLAB程序设计》(程序员)
《常用数学模型》(建模员、程序员)
《英语科技论文书写方法》《word使用技巧》(写作员)
《离散数学》——图论(建模员)
《线性代数》——矩阵、线性方程组(建模员、程序员)
《高等数学》——微积分(建模员)
《数据结构》——结构关系、常用算法(建模员、程序员)
初等数学模型
• 甲乙两地相距750公里,甲到乙乘船顺水要30个小时,从
乙地到甲地逆水航向要50个小时,问航速、水速为多少?
• 在5:00~6:00之间打水的地方非常拥挤,有时还会出现
某人同时霸占好几个水龙头,非常气人!为了能够最快的
完成打水,是大家每个人一个水龙头依次排队、还是一个
人独占几个水龙头哪?
假设:只有2个水龙头,有10人来泡水,每人2瓶,
且泡满1瓶水要1分钟。求哪个效率高?
数学建模与MATLAB
18
方案1:独占模式 方案2:共享模式
• 如果“效率高”意味着平均等待时间最少:
– 方案1:(0+1+2+3+4+5+6+7+8+9)/10=4.5
– 方案2:(0+2+4+6+8)*2/10=4
• 如果“效率高”意味着平均用时最少:
– 方案1:(1+2+3+4+5+6+7+8+9+10)/10=5.5
– 方案2:(2+4+6+8+10)*2/10=6
• 如果“效率高”意味着打完水总消耗时间最少:
– 方案1:20
– 方案2:20
数学建模与MATLAB
19
著名的数学模型
•
•
•
•
•
•
自然数
欧几里德的几何学
微积分
F=ma
经济模型
………………
数学建模与MATLAB
20
竞赛理念
•
•
•
•
创新意识
团队精神
重在参与
公平竞争
数学建模与MATLAB
21
一次参赛,终身受益!
数学建模与MATLAB
22
§1.2
MATLAB基本使用方法
http://pan.baidu.com/s/1hqHritA
数学建模与MATLAB
23
MATLAB 的主界面
工作空间
浏览器
当前文件夹
浏览器
命令窗口
历史命令
窗口
文件概况
窗口
变量
• 变量是MATLAB语言的基本元素之一。MATLAB不要求
对使用的变量进行事先说明,也不需要指定变量的类型,
系统会根据该变量被赋予的值或对该变量所进行的操作来
自动确定变量的类型。变量命名规则如下:
– (1)变量名区分大小写。
– (2)变量名最多包含63个字符,其后的字符都被忽略。
– (3)变量名必须以字母开始,其后可以是任意数量的
字母、数字或者下划线。
– (4)不允许出现标点符号。
简单的数学运算
• 表达式书写规则
– (1)表达式由变量名、运算符和函数名组成。
– (2)表达式将按与常规相同的优先级自左至右执行运算。
– (3)优先级的规定:指数运算级别最高,乘、除运算次
之,加、减运算级别最低。
– (4)小括号可以改变运算的次序。
– 书写表达式时,赋值符“=”和运算符两侧允许有空格,以
增加可读性。但在复数或符号表达式中要尽量避免装饰
性的空格,以免出错。
简单的数学运算
• MATLAB 的数学运算符
• 需要注意的是,右除和左除的意义并不相同。右除为常规
的除法,而左除的意义为:a\b=b/a。
符号
+
功能
实例
加法
3+5=8
-
减法
3-5=-2
*
矩阵乘法
3*5=15
.*
乘,点乘,即数组乘法
/
右除
./
数组右除
\
左除
.\
数组左除
^
乘方
.^
数组乘方
'
矩阵共轭转置
.'
矩阵转置
数学建模与MATLAB
3/5 =0.6000
3\5= 1.6667
3^5= 243
27
标点符号的使用
• 在 MATLAB 中,标点符号有着充分的意义,可以用标点
符号进行运算,或者标点符号可以包含特定的意义。
标点符号
定义
标点符号
定义
分号(;)
数组行分隔符;取消运行显示
点(.)
小数点;结构体成员访问
逗号(,)
数组列分隔符;函数参数分隔符
省略号(…)
续行符
冒号(:)
在数组中应用较多,如生成等差数列
引号(‘’)
定义字符串
圆括号(( ))
指定运算优先级;函数参数调用;数组索引
等号(=)
赋值语句
方括号([ ])
定义矩阵
感叹号(!)
调用操作系统运算
花括号({ })
定义单元数组
百分号(%)
注释语句的标识
空格
数组元素分隔符
“At”号(@) 匿名函数前导符等
数学建模与MATLAB
28
常用的操作命令
命令
功能
命令
功能
cd
显示或改变工作目录
hold
图形保持命令
clc
清空命令窗口
load
加载指定文件中的变量
clear
清除工作区中的变量
pack
整理内存碎片
clf
清除图形窗口
path
显示搜索目录
diary
日志文件命令
quit
退出 MATLAB
dir
显示当前目录下文件
save
保存内存变量
disp
显示变量或文字的内容
type
显示文件内容
echo
命令窗口信息显示开关
数学建模与MATLAB
29
常用的快捷键
命令
功能
命令
功能
↑
前寻式调回已输入过的命令行
Home
使光标移到当前行的首端
↓
后寻式调回已输入过的命令行
End
使光标移到当前行的尾端
←
在当前行中左移光标
Delete
删去光标右边的字符
→
在当前行中右移光标
Backspace
删去光标左边的字符
PageUp
前寻式翻阅当前窗中的内容
PageDown
后寻式翻阅当前窗中的内容
Ctrl+R
添加注释,并且对多行有效
Ctrl+T
取消注释,并且对多行有效
Ctrl+Tab
当前空间之间切换
Esc
清除当前行的全部内容
F5
运行编辑窗口的程序
F12
设置取消断点
数学建模与MATLAB
30
MATLAB的输入输出
• 输入语句 (input)
– 输入数值 或代数式
• x=input('please input a number:')
• please input a number:22
• x = 22
– 输入字符串
• x=input('please input a string:','s')
• please input a string:this is a string
• x = this is a string
数学建模与MATLAB
31
自由格式输出(disp)
• disp(23+454-29*4)
• 361
•
•
•
•
disp([11 22 33; 44 55 66; 77 88 99])
11 22 33
44 55 66
77 88 99
• disp('this is a string')
• this is a string
数学建模与MATLAB
32
格式化输出(fprintf)
fprintf('The area is %8.5f \n', x)
注意输出格式前须有%符号,
数学建模与MATLAB
33
课堂练习
• 从键盘读取用户输入的姓名和年龄,
并以如下格式回显:
• 欢迎你**岁的**同学!
age=input(‘请输入你的年龄:’);
name=input(‘请输入你的姓名:’,’s’);
fprintf(‘欢迎你%d岁的%s同学’ , age, name);
数学建模与MATLAB
34