38
MatLab 及及及及及及 MatLab and its Maths Guide s

MatLab 及其数学应用

Embed Size (px)

DESCRIPTION

MatLab 及其数学应用. MatLab and its Maths Guides. 一、 MatLab 概述. Mat rix Lab oratory. 20 世纪 70 年代中期 ,Cleve Moler 和其同事在美国国家科学基金的资助下研究开发了调用 LINPACK 和 EISPACK 子程序库 , 并于 1984 年编写了便于使用 LINPACK 和 EISPACK 的接口程序,并将该程序取名为 MatLab 。由美国 MathWorks 公司推向市场以来,现已成为国际公认的最优秀的工程应用开发环境。 - PowerPoint PPT Presentation

Citation preview

Page 1: MatLab 及其数学应用

MatLab 及其数学应用MatLab and its Maths Guides

Page 2: MatLab 及其数学应用

2

一、 MatLab 概述

Matrix Laboratory20 世纪 70 年代中期 ,Cleve Moler 和其同事

在美国国家科学基金的资助下研究开发了调用 LINPACK 和 EISPACK 子程序库 , 并于 1984 年编写了便于使用 LINPACK 和 EISPACK 的接口程 序 , 并 将 该 程 序 取 名 为 MatLab 。 由 美 国 MathWorks 公司推向市场以来,现已成为国际公认的最优秀的工程应用开发环境。

MatLab 功能强大、简单易学、编程效率高,深受广大科技工作者的欢迎。

Page 3: MatLab 及其数学应用

3

2001 年初推出了 MatLab6.0 正式版 , 不仅在数值计算、符号运算和图形处理等功能上进一步加强,而且又增加了一些工具箱。目前 MatLab 已拥有数十个工具箱 : 控制系统工具箱、信号处理工具箱、神经网络工具箱、最优化工具箱、金融工具箱、偏微分方程工具箱等。

MatLab 语言的算法先进,许多功能函数都带有算法的自适应性,且运算速度快捷。

MatLab 编程容易、效率高,调试方便、简单,人机交互性强。

MatLab 的主要功能

MatLab 的数值计算功能包括:矩阵运算、多项式和有理分式运算、数据统计分析、数值积分、优化处理等。还可以通过符号计算得到问题的解析解。

Page 4: MatLab 及其数学应用

4

MatLab 除了命令行的交互式操作以外,还可以程序方式工作。使用 MatLab 可以很容易地实现 C 语言的几乎全部功能,包括 Windows 图形用户界面的设计。 MatLab 提供了两个层次的图形命令:一种是对图形句柄进行的低级图形命令,另一种是建立在低级图形命令之上的高级图形命令。利用 MatLab 的高级图形命令可以轻而易举地绘制二维、三维,并可进行图形和坐标的标识、视角和色彩精细控制等操作。

Page 5: MatLab 及其数学应用

5

MatLab 运行环境与安装

硬件: 一般要求奔腾以上的处理器、 128MB 以上

内存、足够的硬盘可用空间 ( 随安装组件的多少而定 ) 、 CD-ROM 驱动器、鼠标等。

软件: Windows xp and its compatible

Page 6: MatLab 及其数学应用

6

二、 MatLab 特色举例考虑两个矩阵 A 和 B 的乘积问题 在 C 语言中要实现两个矩阵的乘积需要一组双重 (或三重 )循环。多重循环当然是矩阵乘积所必需的 .

Page 7: MatLab 及其数学应用

7

MatLab 矩阵符号积分

求 :积分指令对符号函数矩阵的作用。

syms a b x;f=[a*x,b*x^2;1/x,sin(x)];disp('The integral of f is'); int(f) The integral of f is [ 1/2*a*x^2, 1/3*b*x^3] [ log(x) , -cos(x) ]

dxx

x

1bxax 2

sin

Page 8: MatLab 及其数学应用

8

MatLab 多重符号积分

求积分 注意:内积分上下限都是函数。syms x y z;F2=int(int(int(x^2+y^2+z^2,z,sqrt(x*y),x^2*y),y,sqrt(x),

x^2),x,1,2)VF2=vpa(F2)

F2 =1610027357/6563700-6072064/348075*2^(1/2)+14912/4641*

2^(1/4)+64/225*2^(3/4)VF2 =224.92153573331143159790710032805

2

1

2222 2

)(x

x

yx

xydzdydxzyx

Page 9: MatLab 及其数学应用

9

MatLab 三维云图

考虑一个二元函数

如何用三维图形的方式表现出这个曲面?

222222 y1xyx531y2x2 e3

1eyx

5

x10ex13x,yfz

 >> [x,y] = meshgrid(-3:1/8:3);    z = 3*(1-x).^2.*exp(-(x.^2) - (y+1).^2)- 10*(x/5 - x.^3 - y.^5)...      .*exp(-x.^2-y.^2)- 1/3*exp(-(x+1).^2 - y.^2);    surf(x,y,z), shading interp; colorbar

Page 10: MatLab 及其数学应用

10

MatLab 三维云图

Page 11: MatLab 及其数学应用

11

MatLab 绘图——透视效果

[X0,Y0,Z0]=sphere(30);X=2*X0;Y=2*Y0;Z=2*Z0;surf(X0,Y0,Z0);shading interp;hold on,mesh(X,Y,Z),colormap(hot),hold off;hidden off;axis equal,axis off

透视 效果

Page 12: MatLab 及其数学应用

12

MatLab 绘图——镂空效果

镂空 效果t=linspace(0,2*pi,100); r=1-exp(-t/2).*cos(4*t);[X,Y,Z]=cylinder(r,60);ii=find(X<0&Y<0);Z(ii)=NaN;surf(X,Y,Z);colormap(spring),shading interplight('position',[-3,-1,3],'style','local')material([0.5,0.4,0.3,10,0.3])

Page 13: MatLab 及其数学应用

13

MatLab 绘图——镂空效果

P=peaks(30);P(18:20,9:15)=NaN;surfc(P);colormap(summer)light('position',[50,-10,5]),lighting flatmaterial([0.9,0.9,0.6,15,0.4])

镂空 效果

Page 14: MatLab 及其数学应用

14

MatLab 多维切割效果clf;[X,Y,Z,V]=flow;x1=min(min(min(X)));x2=max(max(max(X)));y1=min(min(min(Y)));y2=max(max(max(Y)));z1=min(min(min(Z)));z2=max(max(max(Z)));sx=linspace(x1+1.2,x2,5);sy=0;sz=0;slice(X,Y,Z,V,sx,sy,sz);view([-33,36]);shading interp;colormap jet;alpha('color')alphamap('rampdown')alphamap('increase',.1)colorbaraxis off

Page 15: MatLab 及其数学应用

15

MatLab 绘图——光照

光照 光照 处理

Page 16: MatLab 及其数学应用

16

MatLab 绘图——浓淡变化

浓淡 处理

Page 17: MatLab 及其数学应用

17

三、 MatLab 工具箱 偏微分方程工具箱 pdetool

优化工具箱 最小化问题, 线性规划, 无约束 / 有约束…概率论与数理统计工具箱 概率密度函数,累加 /逆累加分布, 随机数…

Page 18: MatLab 及其数学应用

18

①MatLab主窗口 :主要包括 6 个下拉菜单和 10 个按钮控件。

② 命令窗口:其中 “ >> ” 为运算提示符 ,表示MatLab 正处于准备状态。当在提示符后输入一段算式并按 Enter键后, MatLab 将给出计算结果,然后再次进入准备状态。③ 历史窗口:在默认设置状态下,历史窗口中会保留自安装起所有命令的历史记录,并标明了使用时间;双击某一行命令,则可在命令窗口中执行该行命令。④ 当前目录窗口:在当前目录窗口中可显示或改变当前目录,还可以显示当前目录下的文件并提供搜索功能。此窗口有四个按钮键。

四、 MatLab 命令窗口

Page 19: MatLab 及其数学应用

19

Page 20: MatLab 及其数学应用

20

File菜单项:

New 命令:用于建立 M文件、图形窗口。

Open 命令:打开一个已经建立的 M文件。Save Workspace As 命令:把当前工作空间的所有变量用后缀为 .m 的文件保存起来。

Page 21: MatLab 及其数学应用

21

Help菜单项:Help Window 命令:打开 MatLab 的帮助窗口。Help Desk(HTML) 命令:打开系统 WWW浏览器,并显示MatLab 的帮助桌面。Demos 命令:可以通过演示MatLab 提供的例子来熟悉相关部分的用法。

About MatLab 命令:打开关于 MatLab 的版本和版权等信息。

Examples and Demos 命令:可以通过演示MatLab 提供的例子来熟悉相关部分的用法。

Page 22: MatLab 及其数学应用

22

MatLab帮助系统

1. Help 命令 >>help < 程序或主题名 >

2. Demos 命令 >>demos 或者 help 菜单下的 demos

Page 23: MatLab 及其数学应用

23

■ 命令窗口的工具栏 工具栏提供了一些命令按钮,使用命令按钮可使操作更快捷、更方便。

新建 剪切 粘贴 浏览器 新仿真模型

打开 复制 撤消 路径浏览器 帮助

Page 24: MatLab 及其数学应用

24

■命令窗口编辑区命令编辑区用于输入命令和显示计算结果。键入命令并按下回车键后, MatLab就会解释执行所输入的命令,并在命令后面给出计算结果。

例如: 输入: a=[1,1.5,2,9,7; 0,3.6,0.5,-4,4; 7,10,-3,22,33;3,7,8.5,21,6; 3,8,0,90,-20]将显示一个 5X5 的矩阵。

Page 25: MatLab 及其数学应用

25

■ 历史指令行的再运行

Page 26: MatLab 及其数学应用

26

■ 一些通用命令

Page 27: MatLab 及其数学应用

27

■ 一些常用操作技巧

Page 28: MatLab 及其数学应用

28

Page 29: MatLab 及其数学应用

29

变量与常量

Page 30: MatLab 及其数学应用

30

MatLab 中变量赋值有两种形式: (1) 变量 =表达式 (2) 表达式 其中“表达式”是用运算符将有关运算量连

接起来的式子,其结果是一个矩阵。

[注]第二种语句形式下,将表达式的值赋给MatLab 的永久变量 ans

Page 31: MatLab 及其数学应用

31

数据显示格式 short (缺省 ) ~ 小数点后 4位 , long ~ 15位数字, short e ~ 5位科学计数, long e ~ 15位科学计数

通过 File 下子菜单 Preferences选择;用 format加格式选择

常用

格式

Page 32: MatLab 及其数学应用

32

MatLab 基本语法 >> p=7.1

>> x=-4.92

>>p=7.1, x=-4.92 % 不同语句之间逗号分割

Page 33: MatLab 及其数学应用

33

最简单的计算器用法

【例 1】求 的算术运算结果。用键盘在 MatLab指令窗中输入以下内容

>> (12+2*(7-4))/3^2

23)]47(212[

ans = 2

Page 34: MatLab 及其数学应用

34

【例 2】简单矩阵 的输入步骤。

987

654

321

A

>> A = [1,2,3; 4,5,6; 7,8,9] % 一行输入A = 1 2 3 4 5 6 7 8 9

也可以 A=[1,2,3 4,5,6 7,8,9] % 分行输入

Page 35: MatLab 及其数学应用

35

【例 3 】 S=1-1/2+1/3-1/4+ ...

1/5-1/6+1/7-1/8 %表达式分行输入

S = 0.6345

Page 36: MatLab 及其数学应用

36

【例 4 】ii2=2;

ii3=3;

jj=1.5;

T=ii2/ii3^jj

T =0.3849

format long T

T = 0.38490017945975

Page 37: MatLab 及其数学应用

37

变量命名规则 1. 不可超过 31 个字符 , 多余部分将被忽略掉。

2.变量名要求以大写或小写字母开头,后面可跟大小写字母 ,数字和下划线。

3.字符间不可有空格。

4.变量名对于大小写敏感。

5. 多余变量用 clear 变量名清除掉。

Page 38: MatLab 及其数学应用

38

使用 MatLab 的一些建议1.尽可能使用帮助文件。

2. 在文本编辑器中编写程序和函数并保存为 m文件。

3. 程序和函数尽可能使用图形化开发手段。

4.尽量减少由程序和函数组成的表达式的数目。

5.采用另一种手段验证程序或函数输出结果的正确性。