《Matlab应用》实验指导书.docx

上传人:b****4 文档编号:24610848 上传时间:2023-05-29 格式:DOCX 页数:40 大小:296.56KB
下载 相关 举报
《Matlab应用》实验指导书.docx_第1页
第1页 / 共40页
《Matlab应用》实验指导书.docx_第2页
第2页 / 共40页
《Matlab应用》实验指导书.docx_第3页
第3页 / 共40页
《Matlab应用》实验指导书.docx_第4页
第4页 / 共40页
《Matlab应用》实验指导书.docx_第5页
第5页 / 共40页
点击查看更多>>
下载资源
资源描述

《Matlab应用》实验指导书.docx

《《Matlab应用》实验指导书.docx》由会员分享,可在线阅读,更多相关《《Matlab应用》实验指导书.docx(40页珍藏版)》请在冰豆网上搜索。

《Matlab应用》实验指导书.docx

《Matlab应用》实验指导书

 

《Matlab应用》

 

 

工程学院信息技术教研室

2011年11月

目录

实验一Matlab的基本运算及程序设计1

一、实验目的:

1

二、实验指导1

(一)Matlab的基本运算1

(二)Matlab程序设计6

三、实验内容:

9

实验二Matlab绘图操作及数值计算与符号计算11

一、实验目的:

11

二、实验指导11

(一)Matlab绘图11

(二)数值计算与符号计算13

三、实验内容:

14

实验三SIMULINK的应用18

一、实验目的18

二、实验指导18

三、实验内容19

实验一Matlab的基本运算及程序设计

一、实验目的:

1、了解Matlab的发展和主要功能;

2、熟悉Matlab工作环境的各个窗口;

3、掌握建立矩阵的方法;

4、掌握Matlab各种表达式的书写规则以及常用函数的使用。

5、掌握建立和执行M文件的方法;

6、掌握函数文件的创建和运行。

7、掌握实现选择结构的方法;

8、掌握实现循环结构的方法。

二、实验指导

(一)Matlab的基本运算

1.简单的数学运算

●最简单的计算器使用法

直接输入法

存储变量法

●表达式书写规则

在大多数情况下,MATLAB对空格不予处理,因此在书写表达式时,可以利用空格调

整表达式的格式,使表达式更易于阅读。

在MATLAB表达式中,遵守四则运算法则,与通常法则相同。

即运算从左到右进行,

乘法和除法优先于加减法,指数运算优先于乘除法,括号的运算级别最高;在有多重括号存

在的情况下,从括号的最里边向最外边逐渐扩展。

需要注意的是,在MATLAB中只用小括号代表运算级别,中括号只用于生成向量和

矩阵,花括号用于生成单元数组。

●MATLAB的数学运算符

符号

功能

实例

符号

功能

实例

+

加法

3+5=8

\

左除

-

减法

3-5=-2

.\

数组左除

*

矩阵乘法

3*5=15

^

乘方

.*

点乘,数组乘法

.^

数组乘方

/

右除

3/5=0.6000

矩阵共轭转置

./

数组右除

.’

矩阵转置

需要注意的是,右除和左除的意义并不相同。

右除为常规的除法,而左除的意义为:

a\b=b/a。

●标点符号的使用

在MATLAB中,标点符号有着充分的意义,可以用标点符号进行运算,或者标点符

号可以包含特定的意义。

标点符号

定义

标点符号

定义

分号(;)

数组行分隔符;取消运行显示

点(.)

小数点;结构体成员访问

逗号(,)

数组列分隔符;函数参数分隔符

省略号(…)

续行符

冒号(:

在数组中应用较多,如生成等差数列

引号(‘’)

定义字符串

圆括号(())

指定运算优先级;函数参数调用;数组索引

等号(=)

赋值语句

方括号([])

定义矩阵

感叹号(!

调用操作系统运算

花括号({})

定义单元数组

百分号(%)

注释语句的标识

●分号(;)

分号用于区分数组的行,或者用于一个语句的结尾处,取消运行显示。

●百分号(%)

该符号用于在程序文本中添加注释,增加程序的可读性。

百分号之后的文本都将视作注

释,系统不对其进行编译。

2.常用的操作命令和快捷键

为方便用户操作,MATLAB中定义了一些快捷键。

掌握一些常用的操作命令和快捷键,

可以使得对MATLAB的操作更加便利

●常用的操作命令

命令

功能

命令

功能

cd

显示或改变工作目录

hold

图形保持命令

clc

清空命令窗口

load

加载指定文件中的变量

clear

清除工作区中的变量

pack

整理内存碎片

clf

清除图形窗口

path

显示搜索目录

diary

日志文件命令

quit

退出MATLAB

dir

显示当前目录下文件

save

保存内存变量

disp

显示变量或文字的内容

type

显示文件内容

echo

命令窗口信息显示开关

●常用的操作快捷键

快捷键

功能

快捷键

功能

↑(Ctrl+p)

调用上一行

Home(ctrl+a)

移动到命令行开头

↓(Ctrl+n)

调用下一行

End(ctrl+e)

移动到命令行结尾

←(Ctrl+b)

光标左移一个字符

Ctrl+Home

移动到命令窗口顶部

→(Ctrl+f)

光标右移一个字符

Ctrl+End

移动到命令窗口底部

Ctrl+

光标左移一个单词

Shift+Home

选中光标和表达式开头之间的内容

Ctrl+

光标右移一个单词

Shift+End

选中光标和表达式结尾之间的内容

Esc

取消当前输入行

Ctrl+k

剪切光标和表达式结尾之间的内容

●关系运算符

MATLAB的关系运算符能用来比较两个相同大小的数组,或用来比较一个数组和一个

标量。

MATLAB的关系运算符包括所有常用的比较运算符,如表所示

运算符

说明

运算符

说明

<

小于

<=

小于或等于

>

大于

>=

大于或等于

==

等于

~=

不等于

●逻辑运算符

逻辑运算符主要包括“与”、“或”和“非”。

使用逻辑运算符可以将多个表达式组合在一起,

或者对关系表达式取反。

MATLAB中的逻辑运算符如表所示。

运算符

描述

&

&&

与,只适用于标量。

a&&b,当a的值为假时,则忽略b的值

|

||

或,只适用于标量。

a||b,当a的值为真时,则忽略b的值

~

3、运算基础

在MATLAB下进行基本数学运算,只需将运算式直接打入提示号(>>)之后,并按入Enter键即可。

例如:

>>(5*2+1.3-0.8)*10/25

ans=4.2000

MATLAB会将运算结果直接存入一变数ans,代表MATLAB运算后的答案(Answer)并显示其数值于屏幕上。

提示:

">>"是MATLAB的提示符号(Prompt),但在PC中文视窗系统下,由于编码方式不同,此提示符号常会消失不见,但这并不会影响到MATLAB的运算结果。

我们也可将上述运算式的结果设定给另一个变数x:

x=(5*2+1.3-0.8)*10^2/25

x=42

此时MATLAB会直接显示x的值。

由上例可知,MATLAB认识所有一般常用到的加(+)、减(-)、乘(*)、除(/)的数学运算符号,以及幂次运算(^)。

提示:

MATLAB将所有变数均存成double的形式,所以不需经过变数宣告(Variabledeclaration)。

MATLAB同时也会自动进行记忆体的使用和回收,而不必像C语言,必须由使用者一一指定.这些功能使的MATLAB易学易用,使用者可专心致力於撰写程式,而不必被软体枝节问题所干扰。

若不想让MATLAB每次都显示运算结果,只需在运算式最後加上分号(;)即可,如下例:

y=sin(10)*exp(-0.3*4^2);

若要显示变数y的值,直接键入y即可:

>>y

y=-0.0045

在上例中,sin是正弦函数,exp是指数函数,这些都是MATLAB常用到的数学函数。

若一个数学运算是太长,可用三个句点将其延伸到下一行:

z=10*sin(pi/3)*...

sin(pi/3);

4、常见数学函数

函数名

数学计算功能

函数名

数学计算功能

abs(x)

实数的绝对值或复数的幅值

floor(x)

对x朝-∞方向取整

acos(x)

反余弦arcsin

gcd(m,n)

求正整数m和n的最大公约数

acosh(x)

反双曲余弦arccosh

imag(x)

求复数x的虚部

angle(x)

在四象限内求复数x的相角

lcm(m,n)

求正整数m和n的最小公倍数

asin(x)

反正弦arcsin

log(x)

自然对数(以

为底数)

asinh(x)

反双曲正弦arcsinh

log10(x)

常用对数(以10为底数)

atan(x)

反正切arctan

real(x)

求复数x的实部

atan2(x,y)

在四象限内求反正切

rem(m,n)

求正整数m和n的m/n之余数

atanh(x)

反双曲正切arctanh

round(x)

对x四舍五入到最接近的整数

ceil(x)

对x朝+∞方向取整

sign(x)

符号函数:

求出x的符号

conj(x)

求复数x的共轭复数

sin(x)

正弦sin

cos(x)

余弦cos

sinh(x)

反双曲正弦sinh

cosh(x)

双曲余弦cosh

sqrt(x)

求实数x的平方根:

exp(x)

指数函数

tan(x)

正切tan

fix(x)

对x朝原点方向取整

tanh(x)

双曲正切tanh

如:

输入x=[-4.85-2.3-0.21.34.566.75],则:

ceil(x)=-4-20257

fix(x)=-4-20146

floor(x)=-5-3-1146

round(x)=-5-20157

5、常量与变量

系统的变量命名规则:

变量名区分字母大小写;变量名必须以字母打头,其后可以是任意字母,数字,或下划线的组合。

此外,系统内部预先定义了几个有特殊意义和用途的变量,见下表:

特殊的变量、常量

取值

ans

用于结果的缺省变量名

pi

圆周率π的近似值(3.1416)

eps

数学中无穷小(epsilon)的近似值(2.2204e-016)

inf

无穷大,如1/0=inf(infinity)

NaN

非数,如0/0=NaN(NotaNumber),inf/inf=NaN

i,j

虚数单位:

i=j=

6、数值型向量(矩阵)的输入

(1)任何矩阵(向量),可以直接按行方式输入每个元素:

同一行中的元素用逗号(,)或者用空格符来分隔;行与行之间用分号(;)分隔。

所有元素处于一方括号([])内;

例1.1:

>>Time=[111212345678910]

>>X_Data=[2.323.43;4.375.98]

(2)系统中提供了多个命令用于输入特殊的矩阵:

函数

功能

函数

功能

compan

伴随阵

toeplitz

Toeplitz矩阵

diag

对角阵

vander

Vandermonde矩阵

hadamard

Hadamard矩阵

zeros

元素全为0的矩阵

hankel

Hankel矩阵

ones

元素全为1的矩阵

invhilb

Hilbert矩阵的逆阵

rand

元素服从均匀分布的随机矩阵

kron

Kronercker张量积

randn

元素服从正态分布的随机矩阵

magic

魔方矩阵

eye

对角线上元素为1的矩阵

pascal

Pascal矩阵

meshgrid

由两个向量生成的矩阵

上面函数的具体用法,可以用帮助命令help得到。

如:

meshgrid(x,y)

输入x=[1234];y=[105];[X,Y]=meshgrid(x,y),则

X=Y=

12341111

12340000

12345555

目的是将原始数据x,y转化为矩阵数据X,Y。

(3)数组(矩阵)的点运算

运算符:

+(加)、-(减)、./(右除)、.\(左除)、.^(乘方),

例1.2:

>>g=[1234];h=[4321];

>>s1=g+h,s2=g.*h,s3=g.^h,s4=g.^2,s5=2.^h

(4)矩阵的运算

运算符:

+(加)、-(减)、*(乘)、/(右除)、\(左除)、^(乘方)、’(转置)等;

常用函数:

det(行列式)、inv(逆矩阵)、rank(秩)、eig(特征值、特征向量)、rref(化矩阵为行最简形)

例1.3:

>>A=[20–1;132];B=[17–1;423;201];

>>M=A*B%矩阵A与B按矩阵运算相乘

>>det_B=det(B)%矩阵A的行列式

>>rank_A=rank(A)%矩阵A的秩

>>inv_B=inv(B)%矩阵B的逆矩阵

>>[V,D]=eig(B)%矩阵B的特征值矩阵V与特征向量构成的矩阵D

>>X=A/B%A/B=A*B-1,即XB=A,求X

>>Y=B\A%B\A=B-1*A,即BY=A,求Y

(二)Matlab程序设计

M文件概述

MATLAB语言编写的程序,称为M文件。

M文件可以根据调用方式的不同分为两类:

命令文件(ScriptFile)和函数文件(FunctionFile)。

例分别建立命令文件和函数文件,将华氏温度f转换为摄氏温度c。

例2.1a:

首先建立命令文件并以文件名f2c.m存盘。

clear;%清除工作空间中的变量

f=input('InputFahrenheittemperature:

');

c=5*(f-32)/9

然后在MATLAB的命令窗口中输入f2c,将会执行该命令文件,执行情况为:

InputFahrenheittemperature:

73

c=

22.7778

例2.1b:

首先建立函数文件f2c.m。

functionc=f2c(f)

c=5*(f-32)/9

然后在MATLAB的命令窗口调用该函数文件。

clear;

y=input('InputFahrenheittemperature:

');

x=f2c(y)

输出情况为:

InputFahrenheittemperature:

70

c=

21.1111

x=

21.1111

2.M文件的建立与打开

M文件是一个文本文件,它可以用任何编辑程序来建立和编辑,而一般常用且最为方便的是使用MATLAB提供的文本编辑器。

(1)建立新的M文件

为建立新的M文件,启动MATLAB文本编辑器有3种方法:

菜单操作。

从MATLAB主窗口的File菜单中选择New菜单项,再选择M-file命令,屏幕上将出现MATLAB文本编辑器窗口。

命令操作。

在MATLAB命令窗口输入命令edit,启动MATLAB文本编辑器后,输入M文件的内容并存盘。

命令按钮操作。

单击MATLAB主窗口工具栏上的NewM-File命令按钮,启动MATLAB文本编辑器后,输入M文件的内容并存盘。

(2)打开已有的M文件

打开已有的M文件,也有3种方法:

菜单操作。

从MATLAB主窗口的File菜单中选择Open命令,则屏幕出现Open对话框,在Open对话框中选中所需打开的M文件。

在文档窗口可以对打开的M文件进行编辑修改,编辑完成后,将M文件存盘。

命令操作。

在MATLAB命令窗口输入命令:

edit文件名,则打开指定的M文件。

命令按钮操作。

单击MATLAB主窗口工具栏上的OpenFile命令按钮,再从弹出的对话框中选择所需打开的M文件。

3.MATLAB程序流程控制

(1)无条件循环

当需要无条件重复执行某些命令时,可以使用for循环:

for循环变量t=表达式1:

达式2:

表达式3

语句体

end

例2.2、生成3×4阶的Hiltber矩阵。

fori=1:

3

forj=1:

4

H(i,j)=1/(i+j-1);

end

end

说明:

表达式1为循环初值,表达式2为步长,表达式3为循环终值;当表达式2省略时则默认步长为1;for语句允许嵌套。

例2.3、‘矩阵输入程序

m=input(‘矩阵行数:

m=’);

n=input(‘矩阵列数:

n=’);

fori=1:

m

forj=1:

n

disp([‘输入第’,num2str(i),’行,第’,num2str(j),’列元素’])

A(i,j)=input(‘’)

end

end

 

(2)条件循环

1)if-else-then语句

if-else-then语句的常使用三种形式为:

(1)if逻辑表达式(3)if逻辑表达式1

语句体语句体1

endelseif逻辑表达式2

语句体2

(2)if逻辑表达式1elseif逻辑表达式3

语句体1…

elseelse

语句体2语句体n

endend

2)while循环语句

while循环的一般使用形式为:

while表达式

语句体

end

例2.4:

用迭代法计算多项式方程

=0的一个实根。

解:

x0=3;r=1;n=0;

whiler>1e-5

x1=x0;

x0=3+5/x1.^2;

r=abs(x0-x1);

n=n+1;

end,x0,n

运行结果为:

x0=

3.4260

n=

9

(3)分支结构

若需要对不同的情形执行不同的操作,可用switch分支语句:

switch表达式(标量或字符串)

case值1

语句体1

case值2

语句体2

otherwise

语句体n

end

说明:

当表达式不是“case”所列值时,执行otherwise语句体。

4.建立函数文件

对于一些特殊用户函数,系统提供了一个用于创建用户函数的命令function,以备用户随时调用。

1)格式:

function[输出变量列表]=fun_name(输入变量列表)

用户自定义的函数体

2)函数文件名为:

fun_name,注意:

保存时文件名与函数名最好相同;

3)存储路径:

最好在系统的搜索路径上。

4)调用方法:

输出参量=fun_name(输入变量)

例2.5:

计算s=n!

,在文本编辑器中输入:

functions=pp(n);

s=1;

fori=1:

n

s=s*i;

end

s;

保存文件名为:

pp.m

在MATLAB命令窗口中输入:

s=pp(5)

结果为s=120

三、实验内容:

1、验证所有例题内容

2、在命令窗口依次输入下列命令,根据执行结果分析其功能:

help

lookforinv

helpinv

whichinv

3、输入A=[715;256;315],B=[111;222;333],在命令窗口中执行下列表达式,掌握其含义:

A(2,3)A(:

2)A(3,:

)A(:

1:

2:

3)A(:

3).*B(:

2)A(:

3)*B(2,:

)A*BA.*BA^2A.^2B/AB./A

4、输入C=1:

2:

20,则C(i)表示什么?

其中i=1,2,3,…,10;

5、先求下列表达式的值,然后显示Matlab工作空间的使用情况并保存全部变量。

(1)

(2)

,其中

(3)

提示:

利用冒号表达式生成a向量,求各点的函数值时用点乘运算。

6、已知:

求下列表达式的值。

(1)

,其中I为单位矩阵;

(2)

(3)

(4)

(5)

7、编写程序,计算1+3+5+7+…+(2n+1)的值(用input语句输入n值,n为本人学号后两位,在编辑窗口中输入程序,保存为sy201.m)。

8、求分段函数的值。

用if语句实现,分别输出x=-5,-3,0,1,2,2.5,3,5时的y值。

9、输入一个百分制成绩,要求输出成绩等级A、B、C、D、E,其中90~100分为A,80~89分为B,70~79分为C,60~69分为D,60分以下为E。

要求:

分别用if语句和swich语句实现。

输入百分制成绩后要判断该成绩的合理性,对不合理的成绩应输出出错信息。

10、某公司员工的工资计算方法如下:

工作时数超过120小时者,超过部分加发15%;

工作时数低于60小时者,扣发700元;

其余按每小时84元计发。

试编程按输入的工号和该号员工的工时数,计算应发工资。

11、分别使用while和for编写命令文件,用循环语句编程计算s值:

实验二Matlab绘图操作及数值计算与符号计算

一、实验目的:

1.掌握绘制二维图形的常用函数;

2.掌握绘制三维图形的常用函数;

3.掌握绘制图形的辅助操作。

4.掌握数值插值与曲线拟合的方法及应用;

5.掌握求数值导数、数值积分、代数方程数值求解、常微分方程数值求解的方法;

6.掌握定义符号对象、求符号函数极限及导数、求符号函数积分的方法。

二、实验指导

(一)Matlab绘图

1、 基本命令:

plot(数据作图、函数作图),ezplot(简易作图),fplot(简易作图)

(1)plot(x,y,’s’)s用来表示色彩、线型、点型

例3.1用plot绘制y=sinx/x的图形

x=-2*pi:

pi/10:

2*pi;

y=sin(x)./x;%准备数据

plot(x,y)%用plot作图

注意x=0处的图形

例3.2x=-2*pi:

pi/10:

2*pi;

x=x+(x==0)*eps;

y=sin(x)./x;%(准备数据,处理分母零点))

plot(x,y)%(用plot作图):

例3.3画出

包罗线。

t=(0:

pi/100:

pi);

y1=sin(t);y=-sin(t);

y2=sin(t).*sin(9*t);t3=pi*(0:

9)/9;

y3=sin(t3).*sin(9*t3);

plot(t,y1,'r:

',t,y,'r:

',t,y2,'b',t3,y3,'bo'),axis([0,pi,-1,1])

gtext(‘该点数值x’)

(2)ezplot用作图:

ezplot(‘sin(x)/x’,[-4*pi,4*pi])

运行结果如图3-2

(3)fplot用作图:

fplot(‘sin(x)/x’,[-2*pi,2*pi])

2、基本绘图控制参数:

设置线型、线色、数据点形

1)、曲线点型、线色允许设置值

线型

符号

-

-.

--

含义

实线

虚线

点划线

双划线

线色

符号

b

g

r

c

m

y

k

w

含义

绿

品红

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 公共行政管理

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1