matlab 基础及其应用

37
Matlab 基基基基基基

Upload: december

Post on 22-Feb-2016

131 views

Category:

Documents


0 download

DESCRIPTION

Matlab 基础及其应用. 教师简介. 主讲教师 :李浩刘大刚 [email protected] 物理电子学院. MATLAB 课程介绍. 定位:公共基础选修课 目标:了解 MATLAB ,能够熟练掌握数学(矩阵)运算,简单编程,简单的数据处理、符号运算及基本图形绘制 . 对 MATLAB 面向对象编程与 simulink 有基本了解。. 参考教材: MATLAB 基础及应用 参考书目: 《Matlab 程序设计教程 》 ,李海涛、邓樱,高等教育出版社 /2005.5.1 - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Matlab 基础及其应用

Matlab 基础及其应用

Page 2: Matlab 基础及其应用

主讲教师主讲教师:李浩:李浩 刘大刚刘大刚[email protected] [email protected] 物理电子学院物理电子学院

教师简介教师简介

Page 3: Matlab 基础及其应用

MATLABMATLAB 课程介绍课程介绍 定位:公共基础选修课定位:公共基础选修课 目标:了解目标:了解 MATLABMATLAB ,能够熟练掌握数学,能够熟练掌握数学(矩阵)运算,简单编程,简单的数据处(矩阵)运算,简单编程,简单的数据处理、符号运算及基本图形绘制理、符号运算及基本图形绘制 .. 对对 MATLABMATLAB面向对象编程与面向对象编程与 simulinksimulink 有基本了解。有基本了解。

Page 4: Matlab 基础及其应用

参考教材: MATLAB 基础及应用参考书目:《 Matlab 程序设计教程》,李海涛、邓樱,高等教育出版社 /2005.5.1《精通 MATLAB 6.5 版》,张志涌,北京航空航天大学出版社 /2003.3《科学运算语言 MATLAB5.3 程序设计及应用》,薛定宇,清华大学出版社 /2000《数值方法和 MATLAB 实现与应用》,拉克唐瓦尔德(美),机械工业出版社 /2004.9特点:完全不必具备其它语言的基础,各年级各专业的同学都可选修。

Page 5: Matlab 基础及其应用

MATLABMATLAB 课程安排课程安排 学时学时 : 32: 32 学时(基于学时(基于 matlabmatlab6.56.5 版本版本 )) 安排:讲课安排:讲课 1616 学时,上机学时,上机 1616 学时学时 考核要求:实验报告必须齐备。考核要求:实验报告必须齐备。 考核方式考核方式 : : 实验报告实验报告

Page 6: Matlab 基础及其应用

上机安排上机安排 从从 99 月月 2121 日(也就是下个星期四)起,每个日(也就是下个星期四)起,每个星期四安排为上机时间。星期四安排为上机时间。 上机地点:主楼东上机地点:主楼东 312312 (物电机房)(物电机房) 上机时间:上机时间: 1818 :: 0000 ~~ 2020 :: 0000

2020 :: 0000 ~~ 2222 :: 0000

Page 7: Matlab 基础及其应用

主要内容主要内容1.1. Matlab Matlab 概述与入门;概述与入门;2.2. 数据类型和运算;数据类型和运算;3.3. 数值计算;数值计算;4.4. 符号运算;符号运算;5.5. 数据和函数的可视化;数据和函数的可视化;6.6. MatlabMatlab 编程;编程;

Page 8: Matlab 基础及其应用

第一章 第一章 MATLABMATLAB 语言概述语言概述一、一、 MATLABMATLAB 产生的历史背景产生的历史背景

Cleve Moler 博士

Cleve Moler is chairman and chief scientist at The MathWorks. Moler was a professor of math and computer science for almost 20 years at the University of Michigan, Stanford University and the University of New Mexico.

在 70 年代中期 ,Cleve Moler 博士和其同事在美国国家科学基金的资助下开发了调用 EISPACK 和 LINPACK 的 FORTRAN 子程序库 .EISPACK 是特征值求解的 FORTRAN 程序库 ,LINPACK 是解线性方程的程序库 . 在当时 , 这两个程序库代表矩阵运算的最高水平 .

Page 9: Matlab 基础及其应用

一、一、 MATLABMATLAB 产生的历史背景产生的历史背景

19831983 年春天年春天 ,Cleve Moler,Cleve Moler 到到 StandfordStandford 大学讲学,大学讲学, MATMATLABLAB 深深地吸引了工程师深深地吸引了工程师 John LittleJohn Little 。。 John LittleJohn Little 敏锐敏锐地觉察到地觉察到 MATLABMATLAB 在工程领域的广阔前景,同年,他和在工程领域的广阔前景,同年,他和 ClCleve Molereve Moler ,, Steve BangertSteve Bangert 一起,用一起,用 CC 语言开发了第二语言开发了第二代专业版。这一代的代专业版。这一代的 MATLABMATLAB 语言同时具备了数值计算和语言同时具备了数值计算和数据图示化的功能 。数据图示化的功能 。

Jack Little CEO / Founder

Jack Little is president, CEO, and a co-founder of The MathWorks, Inc. He was a co-author and principal architect of early versions of the company's flagship MATLAB product as well as the Signal Processing Toolbox and the Control Systems Toolbox.

Page 10: Matlab 基础及其应用

MATLABMATLAB 的第一个商业化的版本是的第一个商业化的版本是 19841984 年推出的年推出的是是 3.03.0 的的 DOSDOS 版本版本 19921992 年年 MathWorks MathWorks 公司于推出了公司于推出了 4.04.0 版本,版本, 19941994 年的年的 4.24.2 版本扩充了版本扩充了 4.04.0 版本的功能,尤其在版本的功能,尤其在图形界面设计方面更提供了新的方法。图形界面设计方面更提供了新的方法。 19971997 年推出的年推出的 5.05.0 版允许了更多的数据结构,如版允许了更多的数据结构,如单元数据、多维矩阵、对象与类等,使其成为一种单元数据、多维矩阵、对象与类等,使其成为一种更方便编程的语言。更方便编程的语言。 19991999 年推出的 年推出的 MATLAB 5.3MATLAB 5.3 版在很多方面又进一版在很多方面又进一步改进了 步改进了 MATLAB MATLAB 语言的功能。语言的功能。

Page 11: Matlab 基础及其应用

20002000 年年 1010 月底推出了其全新的 月底推出了其全新的 MATLAB 6.0MATLAB 6.0正式版正式版(Release 12)(Release 12) ,在核心数值算法、界面设计、外部接,在核心数值算法、界面设计、外部接口、应用桌面等诸多方面有了极大的改进。口、应用桌面等诸多方面有了极大的改进。20022002 年年 66 月发布了其全新的 月发布了其全新的 MATLAB 6.5MATLAB 6.5正式版正式版(Release 13)(Release 13)20042004 年年 55 月推出月推出 Matlab7.0Matlab7.0

Page 12: Matlab 基础及其应用

时至今日,经过时至今日,经过 MathWorksMathWorks 公司的不断完善,公司的不断完善,MATLABMATLAB已经发展成为适合多学科,多种工作平台已经发展成为适合多学科,多种工作平台的功能强大的大型软件。在国外,的功能强大的大型软件。在国外, MATLABMATLAB已经经已经经受了多年考验。在欧美等高校,受了多年考验。在欧美等高校, MATLABMATLAB已经成为已经成为线性代数,自动控制理论,数理统计,数字信号处线性代数,自动控制理论,数理统计,数字信号处理,时间序列分析,动态系统仿真等高级课程的基理,时间序列分析,动态系统仿真等高级课程的基本教学工具;本教学工具;成为攻读学位的大学生,硕士生,博成为攻读学位的大学生,硕士生,博士生必须掌握的基本技能。在设计研究单位和工业士生必须掌握的基本技能。在设计研究单位和工业部门,部门, MATLABMATLAB被广泛用于科学研究和解决各种具被广泛用于科学研究和解决各种具体问题。在国内,特别是工程学术界,体问题。在国内,特别是工程学术界, MATLABMATLAB 也也逐步盛行起来。可以说,无论你从事工程方面的哪逐步盛行起来。可以说,无论你从事工程方面的哪个学科,都能在个学科,都能在 MATLABMATLAB里找到合适的功能。 里找到合适的功能。

Page 13: Matlab 基础及其应用

1. 语言简洁紧凑,使用方便灵活,库函数极其丰富;

2. 运算符丰富;3. 兼聚结构化与面向对象编程的特性;4. 程序设计自由度大;5. 良好的程序可移植性;6. 强大的图形功能;7. 功能性工具箱和学科性工具箱;8. 源程序的开放性。

二、二、 MATLABMATLAB 的语言特点的语言特点

Page 14: Matlab 基础及其应用

线性方程组求解线性方程组求解

nnnnnn

nn

nn

bxaxaxa

bxaxaxabxaxaxa

2211

22222121

11212111

nnnnnn

n

n

b

bb

x

xx

aaa

aaaaaa

2

1

2

1

21

22221

11211

当 D= |A|≠0 ,方程组有解,可用 Cramer 法则求解。

Page 15: Matlab 基础及其应用

线性方程组求解线性方程组求解DDx

DDx

DDx n

n ,,, 22

11

nnnn

n

n

aaa

aaaaaa

D

21

22221

11211

nninninn

nii

nii

i

aabaa

aabaaaabaa

D

1,1,1

21,221,221

11,111,111

N阶行列式的计算需要 n!次乘法,求解 n阶线性方程组,共需要做 (n+1)!次乘法。如 n=20,则,需做:21!= 5.10909×1019

Page 16: Matlab 基础及其应用

线性方程组求解线性方程组求解数值求解方法:数值求解方法:1.1.直接法直接法GaussGauss 消去法、消去法、 Gauss-JordanGauss-Jordan 消去法、矩消去法、矩阵分解法等。阵分解法等。2.2.迭代法迭代法JacobiJacobi 迭代法、迭代法、 Gauss-SeidelGauss-Seidel 迭代法和超迭代法和超松弛迭代法等。松弛迭代法等。

Page 17: Matlab 基础及其应用

线性方程组求解线性方程组求解Matlab 求解过程:

4.1541.242

6.33

321

321

321

xxxxxxxxx

Page 18: Matlab 基础及其应用

数据统计与处理数据统计与处理 一个工厂生产三种橄榄球用品 : 防护帽、 垫一个工厂生产三种橄榄球用品 : 防护帽、 垫肩、臀垫。需要不同数量的:硬塑料 、 泡沫塑肩、臀垫。需要不同数量的:硬塑料 、 泡沫塑料 尼龙线 、 劳动力。料 尼龙线 、 劳动力。为监控生产,管理者对它们之间的关系十分关为监控生产,管理者对它们之间的关系十分关心。为把握这些量的关系,列出下面的表格心。为把握这些量的关系,列出下面的表格

Page 19: Matlab 基础及其应用

原料 产品

防护帽 垫肩 臀垫

硬塑料 4 2 2 泡沫塑料 1 3 2 尼龙线 1 3 3 劳动力 3 2 2

原料产品关系表原料产品关系表

订单 1 订单 2 订单3

订单 4

防护帽 35 20 60 45 垫肩 10 15 50 40 臀垫 20 12 45 20

Page 20: Matlab 基础及其应用

管理者接到四份订单如上表所示。管理者接到四份订单如上表所示。 问应该如何计算每份订单所需的原材料,问应该如何计算每份订单所需的原材料,以便组织生产?以便组织生产?

204512204050151045602035

223331231224

B

A

C =

220 146 475 320 105 89 300 205 125 101 345 225 165 114 370 255

输入下面 Matlab指令A=[4 2 3;1 3 2;1 3 3;3 2 2];B=[35 20 60 45;10 15 50 40;…20 12 45 20];C=A*B

Page 21: Matlab 基础及其应用

考虑一个实际编程例子考虑一个实际编程例子如何编写一个能求出两个矩阵相乘的计算机通如何编写一个能求出两个矩阵相乘的计算机通用子程序?用子程序?

Page 22: Matlab 基础及其应用

是否正确? 错误,未考虑其一为标量加入标量判定,是否就是通用程序了?错误,考虑其一或二者为复数矩阵

MATLAB 实现: C=A*B

Page 23: Matlab 基础及其应用

0 1 2 3 4 5 6-1

-0.8

-0.6

-0.4

-0.2

0

0.2

0.4

0.6

0.8

1

例、用简短命令计算并绘制在 0x6范围内的 sin(2x) 、 sinx2 、 sin2x 。x=linspace(0,6)y1=sin(2*x),y2=sin(x.^2),y3=(sin(x)).^2;plot(x,y1,x, y2,x, y3)

Page 24: Matlab 基础及其应用
Page 25: Matlab 基础及其应用

用四种方法描述 cos(x)*sin(y) 图形

-5

0

5

-4-2

02

4-1

-0.5

0

0.5

1

-5

0

5

-4-2

02

4-1

-0.5

0

0.5

1

-4 -2 0 2 4-4

-3

-2

-1

0

1

2

3

4

Page 26: Matlab 基础及其应用
Page 27: Matlab 基础及其应用

MATLABMATLAB包含两个部分:核心部分和各种可选的工具箱。包含两个部分:核心部分和各种可选的工具箱。核心部分中有数百个核心内部函数。核心部分中有数百个核心内部函数。工具箱又分为两类:工具箱又分为两类:功能性工具箱和学科性工具箱功能性工具箱和学科性工具箱。。功能性工具箱主要用来扩充其符号计算功能,图示建模仿真功能性工具箱主要用来扩充其符号计算功能,图示建模仿真功能,文字处理功能以及与硬件实时交互功能。功能性工具功能,文字处理功能以及与硬件实时交互功能。功能性工具箱可用于多种学科。箱可用于多种学科。学科性工具箱是专业的,如(学科性工具箱是专业的,如( controlcontrol 、、 signal proceessinsignal proceessing g 、、 commumnicationcommumnication ) ) toolboxtoolbox 等。这些工具箱都是由等。这些工具箱都是由该领域内学术水平很高的专家编写的,所以用户无需编写自该领域内学术水平很高的专家编写的,所以用户无需编写自己学科范围内的基础程序。己学科范围内的基础程序。

matlab 工具箱 MATLAB 主工具箱 符号数学工具箱 SIMULINK 仿真工具箱 控制系统工具箱 信号处理工具箱 图象处理工具箱 通讯工具箱 系统辨识工具箱 神经元网络工具箱 金融工具箱

Page 28: Matlab 基础及其应用
Page 29: Matlab 基础及其应用

三.三.Matlab Matlab 界面与初步操作界面与初步操作

workspace

指令窗口

菜单

工作目录选择栏

快捷工具栏

Page 30: Matlab 基础及其应用

Command windowCommand window 运行入门运行入门 最简单的计算器使用法;最简单的计算器使用法; 数值、变量和表达式;数值、变量和表达式; 指令行中的标点符号;指令行中的标点符号; 计算结果的图形表示;计算结果的图形表示;

Page 31: Matlab 基础及其应用

求求 的运算结果。的运算结果。23)]47(212[

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

ans =

2>>

指令输入提示符

Answer 的缩写

Page 32: Matlab 基础及其应用

简单矩阵的输入步骤:简单矩阵的输入步骤:>> A=[1,2,3;4,5,6;7,8,9]

A =

1 2 3 4 5 6 7 8 9

>>

Page 33: Matlab 基础及其应用

指令续行输入指令续行输入>> S=1-1/2+1/3-1/4+...1/5-1/6+1/7-1/8

S =

0.6345

>>

续行符号

Page 34: Matlab 基础及其应用

数值、变量和表达式数值、变量和表达式 数值的记述; 变量命名规则; Matlab 默认的预定义变量; 运算符和表达式; 复数和复数矩阵;Matlab采用习惯的十进制表示:- 99 0.001 1.3e-3 4.5e33数值范围: 10e-308~10e308

大小写敏感;首字母为英文(少于 63 个字符);变量名不包含空格、标点;

Page 35: Matlab 基础及其应用

画出衰减振荡曲线画出衰减振荡曲线及其它的包络线及其它的包络线 。的取值范围是。的取值范围是。。tey

t

3sin3

3

0

t

ey

]4,0[

t=0:pi/50:4*pi;y0=exp(-t/3);y=exp(-t/3).*sin(3*t);plot(t,y,'-r',t,y0,':b',t,-y0,':b')grid

0 5 10 15-1

-0.5

0

0.5

1

Page 36: Matlab 基础及其应用

22

22 )sin(

yx

yxz

画出 所表示的三维曲面 , 的取值范围

是 [-8,8]clear;x=-8:0.5:8;y=x';X=ones(size(y))*x;Y=y*ones(size(x));R=sqrt(X.^2+Y.^2)+eps;Z=sin(R)./R;surf(X,Y,Z);colormap(cool)xlabel('x'),ylabel('y'),zlabel('z')

-100

10

-100

10-0.5

0

0.5

1

xyz

Page 37: Matlab 基础及其应用

Matlab Matlab 编辑器界面编辑器界面