39
Saturday, 2009-3- 21, 22:00:11 数数数数数数数数 数数数数数数数数 Slide 1 (of 39) 第2第 MATLAB 第第第第 数数数数数数数数 数数数

第 2 章 MATLAB 语言概述

Embed Size (px)

DESCRIPTION

第 2 章 MATLAB 语言概述. 东北大学信息学院 薛定宇. 数学建模问题及数学语言工具. 可以分为两个单独的问题 如何从给出的用语言描述的问题建立起其数学描述(即数学模型) 如何得出数学模型的解 数学模型的求解需要计算机工具 MATLAB 为首选 学会 MATLAB 语言,一般编程和使用方法 学会各个分支数学问题的计算机求解 灵活运用 MATLAB 解决遇到的问题 计算机仿真问题求解( Simulink ). 参考阅读建议. 薛定宇、陈阳泉,高等应用数学问题的 MATLAB 求解, 2004, 2008 ,清华大学出版社 (数学分支覆盖全面),英文版 - PowerPoint PPT Presentation

Citation preview

Page 1: 第 2 章 MATLAB 语言概述

Saturday, 2009-3- 21, 22:00:11

数学建模课程模板东北大学信息学院

Slide 1 (of 39)

第 2 章MATLAB 语言概述

东北大学信息学院 薛定宇

Page 2: 第 2 章 MATLAB 语言概述

Saturday, 2009-3- 21, 22:00:11

数学建模课程模板东北大学信息学院

Slide 2 (of 39)

数学建模问题及数学语言工具可以分为两个单独的问题

如何从给出的用语言描述的问题建立起其数学描述(即数学模型)如何得出数学模型的解

数学模型的求解需要计算机工具MATLAB 为首选

学会 MATLAB 语言,一般编程和使用方法学会各个分支数学问题的计算机求解灵活运用 MATLAB 解决遇到的问题计算机仿真问题求解( Simulink )

Page 3: 第 2 章 MATLAB 语言概述

Saturday, 2009-3- 21, 22:00:11

数学建模课程模板东北大学信息学院

Slide 3 (of 39)

参考阅读建议薛定宇、陈阳泉,高等应用数学问题的 MATLAB 求解, 2004, 2008 ,清华大学出版社 (数学分支覆盖全面),英文版张志涌,精通 MATLAB 6.5 ,北京航空航天大学出版社, 2003 (编程介绍深入)陈怀琛, MATLAB 及其在理工课程中的应用指南, 2000,2004, 西安电子科技大学出版社 (在相关课程问题的覆盖面全)

Page 4: 第 2 章 MATLAB 语言概述

Saturday, 2009-3- 21, 22:00:11

数学建模课程模板东北大学信息学院

Slide 4 (of 39)

内容提要

MATLAB 语言简介MATLAB 编程基础MATLAB 变量的基本运算MATLAB 语言基本程序结构MATLAB 语言与可视化MATLAB 应用演示

Page 5: 第 2 章 MATLAB 语言概述

Saturday, 2009-3- 21, 22:00:11

数学建模课程模板东北大学信息学院

Slide 5 (of 39)

2.1 MATLAB 语言简介MATLAB 是当今国际上三大数学语言之一,是科学技术领域事实上的通用计算机语言语句集成度高,使用灵活易于入门、程序易于调试、跨平台可视化(图形表示)功能强大几乎适用于所有应用数学与工程分支强大的计算机仿真功能

Page 6: 第 2 章 MATLAB 语言概述

Saturday, 2009-3- 21, 22:00:11

数学建模课程模板东北大学信息学院

Slide 6 (of 39)

其他“高级”语言 ( 如 C) 的局限性语句繁杂

没有基本数学运算求解工具程序冗长,容易出错,得出结果难以令人相信各种各样的隐患结果可视化效果不佳

Page 7: 第 2 章 MATLAB 语言概述

Saturday, 2009-3- 21, 22:00:11

数学建模课程模板东北大学信息学院

Slide 7 (of 39)

例 1 矩阵特征值求解

用数学库 EISPACK

用 MATLAB : eig(A)

Page 8: 第 2 章 MATLAB 语言概述

Saturday, 2009-3- 21, 22:00:11

数学建模课程模板东北大学信息学院

Slide 8 (of 39)

例 2 可能的隐患 Fibonacci 数列数学描述C 语言实现

存在问题:数据结构的预定义MATLAB 实现

Page 9: 第 2 章 MATLAB 语言概述

Saturday, 2009-3- 21, 22:00:11

数学建模课程模板东北大学信息学院

Slide 9 (of 39)

2.2 MATLAB 编程基础变量与常量数据结构基本语句结构语句流程程序结构程序调试

Page 10: 第 2 章 MATLAB 语言概述

Saturday, 2009-3- 21, 22:00:11

数学建模课程模板东北大学信息学院

Slide 10 (of 39)

2.2.1 变量与常量

变量名由字母开头,后面可跟其他字母、数字和下划线MATLAB 变量名区分大小写MATLAB 保留的变量名为常量,如 pi ,i , j , eps , Inf 和 NaN常量内容可改写,但应该慎重,必要时需要重新定义 i=sqrt(-1)

Page 11: 第 2 章 MATLAB 语言概述

Saturday, 2009-3- 21, 22:00:11

数学建模课程模板东北大学信息学院

Slide 11 (of 39)

2.2.2 数据结构

和科学计算相关的主要有两种:双精度数组 (矩阵为最主要形式,用于数值运算,可以为复数矩阵;还可以直接定义出向量、标量等)符号变量 (用于公式推导和解析解求解)

其他数据类型单精度变量、整型变量等数值型变量字符串、多维数组、结构体、类与对象等

Page 12: 第 2 章 MATLAB 语言概述

Saturday, 2009-3- 21, 22:00:11

数学建模课程模板东北大学信息学院

Slide 12 (of 39)

双精度数据结构矩阵的表示

矩阵简单分析 F=inv(A)

复数矩阵的表示

Page 13: 第 2 章 MATLAB 语言概述

Saturday, 2009-3- 21, 22:00:11

数学建模课程模板东北大学信息学院

Slide 13 (of 39)

特殊矩阵的输入

单位矩阵 A=eye(m,n)

零矩阵 A=zeros(n,m)

对角矩阵 A=diag([1,3,5,7,2])

均匀分布随机数矩阵 A=rand(n,m)

多项式 按照降幂排列输入系数向量 p=[1 2 3 4 0 5]

伴随矩阵 A=compan(p)

Page 14: 第 2 章 MATLAB 语言概述

Saturday, 2009-3- 21, 22:00:11

数学建模课程模板东北大学信息学院

Slide 14 (of 39)

符号变量定义与处理和数值型不一样,可以用于公式推导定义方法

syms A B C

syms A B positive

还有 real , nonzero 等选项转换方法,用于精确运算 B=sym(A)

数值、符号变量区别 1/9

0.111111111111111

Page 15: 第 2 章 MATLAB 语言概述

Saturday, 2009-3- 21, 22:00:11

数学建模课程模板东北大学信息学院

Slide 15 (of 39)

符号变量的化简与显示符号变量数值显示 vpa命令

问题:可以记忆到小数点后多少位?

非最简的结果可以用 simple函数化简collect合并同类项expand展开numden , gcd , lcm , factor

变量替换 subs

pretty, latex

Page 16: 第 2 章 MATLAB 语言概述

Saturday, 2009-3- 21, 22:00:11

数学建模课程模板东北大学信息学院

Slide 16 (of 39)

2.2.3 基本语句结构

直接赋值语句

函数调用语句

A=5; B=[1 2; 3 4];

C=A+6+B^2;

[e,f,g]=funname(a,b,c)

Page 17: 第 2 章 MATLAB 语言概述

Saturday, 2009-3- 21, 22:00:11

数学建模课程模板东北大学信息学院

Slide 17 (of 39)

2.2.4 程序流程

循环语句 for , while

转移语句 if , elseif , else

开关语句 switch case

试探语句 try catch

不同流程语句的嵌套使用每个流程应该对应一个 end

Page 18: 第 2 章 MATLAB 语言概述

Saturday, 2009-3- 21, 22:00:11

数学建模课程模板东北大学信息学院

Slide 18 (of 39)

for 循环循环结构

例题:求和

MATLAB 实现

Page 19: 第 2 章 MATLAB 语言概述

Saturday, 2009-3- 21, 22:00:11

数学建模课程模板东北大学信息学院

Slide 19 (of 39)

while 循环

循环结构

MATLAB举例

Page 20: 第 2 章 MATLAB 语言概述

Saturday, 2009-3- 21, 22:00:11

数学建模课程模板东北大学信息学院

Slide 20 (of 39)

不同循环结构有不同的特色、用途看似 for循环优于 while循环例: for循环解决不了的问题,求最小 m

用 while循环可以直接求解

Page 21: 第 2 章 MATLAB 语言概述

Saturday, 2009-3- 21, 22:00:11

数学建模课程模板东北大学信息学院

Slide 21 (of 39)

条件转移语句结构各种结构

Page 22: 第 2 章 MATLAB 语言概述

Saturday, 2009-3- 21, 22:00:11

数学建模课程模板东北大学信息学院

Slide 22 (of 39)

开关结构和 C 语言的开关结构有区别

Page 23: 第 2 章 MATLAB 语言概述

Saturday, 2009-3- 21, 22:00:11

数学建模课程模板东北大学信息学院

Slide 23 (of 39)

全新的试探结构

全新结构

优点:设置错误陷阱提高算法的执行效率

Page 24: 第 2 章 MATLAB 语言概述

Saturday, 2009-3- 21, 22:00:11

数学建模课程模板东北大学信息学院

Slide 24 (of 39)

2.3 矩阵的运算

代数运算+ 、 - 、 * 、 / 、 \

^, 点运算逻辑运算

& 、 | 、~、 xor

比较运算>= 、 <= 、 > 、 < 、 ~=

find 、 all 、 any

Page 25: 第 2 章 MATLAB 语言概述

Saturday, 2009-3- 21, 22:00:11

数学建模课程模板东北大学信息学院

Slide 25 (of 39)

2.4 基本程序结构交互式命令脚本程序M-函数 主流编程方法

为什么需要 M-函数M-函数实现

何时使用 M-函数

Page 26: 第 2 章 MATLAB 语言概述

Saturday, 2009-3- 21, 22:00:11

数学建模课程模板东北大学信息学院

Slide 26 (of 39)

函数的结构与编程函数的入口

函数的调用

Page 27: 第 2 章 MATLAB 语言概述

Saturday, 2009-3- 21, 22:00:11

数学建模课程模板东北大学信息学院

Slide 27 (of 39)

2.5 MATLAB 语言与科学可视化(将数据用图形表示)

二维曲线直角坐标系、极坐标、

三维图形三维曲线、轨迹三维曲面四维表示动画 (时间为第 4 维)三维图下的切面表示

Page 28: 第 2 章 MATLAB 语言概述

Saturday, 2009-3- 21, 22:00:11

数学建模课程模板东北大学信息学院

Slide 28 (of 39)

2.5.1 二维曲线绘制由实测或计算出来的数据直接绘图已知绘图语句

构造绘图变量画图 plot(t, y)

扩展

图形后处理

Page 29: 第 2 章 MATLAB 语言概述

Saturday, 2009-3- 21, 22:00:11

数学建模课程模板东北大学信息学院

Slide 29 (of 39)

已知函数曲线绘制已知函数自变量向量生成

等间距

等对数间距 logspace

不等间距计算函数值 (点运算)绘图并检验

Page 30: 第 2 章 MATLAB 语言概述

Saturday, 2009-3- 21, 22:00:11

数学建模课程模板东北大学信息学院

Slide 30 (of 39)

函数MATLAB命令

检验数据存储

导入

Page 31: 第 2 章 MATLAB 语言概述

Saturday, 2009-3- 21, 22:00:11

数学建模课程模板东北大学信息学院

Slide 31 (of 39)

极坐标图形绘制绘制极坐标函数仍然首先生成向量,再用点运算计算调用 polar函数绘图绘制曲线

注意周期检验

Page 32: 第 2 章 MATLAB 语言概述

Saturday, 2009-3- 21, 22:00:11

数学建模课程模板东北大学信息学院

Slide 32 (of 39)

2.5.2 隐函数绘制有的函数不能这样绘制例:隐函数

非单值函数MATLAB

语句

Page 33: 第 2 章 MATLAB 语言概述

Saturday, 2009-3- 21, 22:00:11

数学建模课程模板东北大学信息学院

Slide 33 (of 39)

2.5.3 三维曲线绘制三维曲线及三维参数方程

曲线绘制生成 t

计算 x,y,z

绘图

图坐标读取及坐标系旋转

Page 34: 第 2 章 MATLAB 语言概述

Saturday, 2009-3- 21, 22:00:11

数学建模课程模板东北大学信息学院

Slide 34 (of 39)

2.5.4 三维曲面绘制数学函数

曲面绘制方法在 x-y 平面生成网格计算网格上每点的函数值用 surf绘制表面图或 mesh画网格图

语句

插值或光滑处理

Page 35: 第 2 章 MATLAB 语言概述

Saturday, 2009-3- 21, 22:00:11

数学建模课程模板东北大学信息学院

Slide 35 (of 39)

2.5.5 视角设置用可视方法旋转用命令旋转

视角定义仰角方位角唯一确定视角

视角设置 view(,)

三视图

Page 36: 第 2 章 MATLAB 语言概述

Saturday, 2009-3- 21, 22:00:11

数学建模课程模板东北大学信息学院

Slide 36 (of 39)

2.6 MATLAB 应用演示高等数学公式推导线性代数运算积分变换与复变函数非线性方程求解与最优化微分方程求解数据插值与拟合概率论与数理统计非传统方法 (FL, NN, GA, PSO, RS, FDA 等 )

Page 37: 第 2 章 MATLAB 语言概述

Saturday, 2009-3- 21, 22:00:11

数学建模课程模板东北大学信息学院

Slide 37 (of 39)

2.6.1 高等数学中的公式推导

高等数学几乎全部内容用 5 个函数即可求解

求极限 limit

(偏 ) 导数、微分运算 diff

积分运算 int

Taylor级数展开 taylor

级数求和 symsum

不必记忆类型及方法、技巧,直接求解没有中间结果

Page 38: 第 2 章 MATLAB 语言概述

Saturday, 2009-3- 21, 22:00:11

数学建模课程模板东北大学信息学院

Slide 38 (of 39)

函数分析实例已知函数

先定义自变量为符号变量,再写函数函数分析

一阶导数高阶导数导数还原(积分)Taylor幂级数展开有限项 Taylor幂级数逼近效果研究

Page 39: 第 2 章 MATLAB 语言概述

Saturday, 2009-3- 21, 22:00:11

数学建模课程模板东北大学信息学院

Slide 39 (of 39)

小 结学习 MATLAB 语言的方法“三十字” 学习方法:

带着问题学, 活学活用,学用结合, 急用先学,立竿见影, 要在用字上狠下功夫。