Matlab实训课.docx

上传人:b****4 文档编号:4083853 上传时间:2023-05-06 格式:DOCX 页数:49 大小:986.96KB
下载 相关 举报
Matlab实训课.docx_第1页
第1页 / 共49页
Matlab实训课.docx_第2页
第2页 / 共49页
Matlab实训课.docx_第3页
第3页 / 共49页
Matlab实训课.docx_第4页
第4页 / 共49页
Matlab实训课.docx_第5页
第5页 / 共49页
Matlab实训课.docx_第6页
第6页 / 共49页
Matlab实训课.docx_第7页
第7页 / 共49页
Matlab实训课.docx_第8页
第8页 / 共49页
Matlab实训课.docx_第9页
第9页 / 共49页
Matlab实训课.docx_第10页
第10页 / 共49页
Matlab实训课.docx_第11页
第11页 / 共49页
Matlab实训课.docx_第12页
第12页 / 共49页
Matlab实训课.docx_第13页
第13页 / 共49页
Matlab实训课.docx_第14页
第14页 / 共49页
Matlab实训课.docx_第15页
第15页 / 共49页
Matlab实训课.docx_第16页
第16页 / 共49页
Matlab实训课.docx_第17页
第17页 / 共49页
Matlab实训课.docx_第18页
第18页 / 共49页
Matlab实训课.docx_第19页
第19页 / 共49页
Matlab实训课.docx_第20页
第20页 / 共49页
亲,该文档总共49页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

Matlab实训课.docx

《Matlab实训课.docx》由会员分享,可在线阅读,更多相关《Matlab实训课.docx(49页珍藏版)》请在冰点文库上搜索。

Matlab实训课.docx

Matlab实训课

Matlab实训

课题一Matlab基础

1、Matlab是什么?

MATLAB®是一种对技术计算高性能的语言。

它集成了计算,可视化和编程于一个易用的环境中,在此环境下,问题和解答都表达为我们熟悉的数学符号。

典型的应用有:

数学和计算

算法开发

建模,模拟和原形化

数据分析,探索和可视化

科学与工程制图

应用开发,包括图形用户界面的建立

MATLAB是一个交互式的系统,其基本数据元素是无须定义维数的数组。

这能解决很多技术计算的问题,尤其是那些要用到矩阵和向量表达式的问题。

名称“MATLAB”代表matrixlaboratory(矩阵实验室)。

MATLAB最初是编写来提供给对由LINPACK和EINPACK工程开发的矩阵软件简易访问的。

今天,MATLAB使用由LAPACK和ARPACK工程开发的软件,这些工程共同表现了矩阵计算的软件中的技术发展。

MATLAB已经与许多用户输入一同发展了多年。

在大学环境中,它是很多数学类、工程和科学类的初等和高等课程的标准指导工具。

在工业上,MATLAB是高产研究、开发和分析所选择的工具。

MATLAB以一系列称为工具箱的应用指定解答为特征。

对多数用户十分重要的是,工具箱使你能学习和应用专门的技术。

工具箱是MATLAB函数(M-文件)的全面的综合,这些文件把MATLAB的环境扩展到解决特殊类型问题上。

具有可用工具箱的领域有:

信号处理,控制系统神经网络,模糊逻辑,小波分析,模拟仿真等等。

MATLAB产品被广泛应用于下列领域:

测量测试

数学建模与分析

信号处理

财经金融建模与分析

工作空间窗口

图像处理与地理信息

……

2、Matlab桌面工具的介绍

打开编辑器窗口

这些工具是:

Ø命令窗口:

运用命令窗口去调入变量,运行函数和M-文件。

例1:

控制输出值格式的格式命令format(控制显示的数据的数值格式。

只影响数据的显示结果,而与Matlab如何计算及储存它们无关)

>>formatshort

>>x=[4/31.2345e-6]

x=

1.33330.0000

>>formatshorte

>>x=[4/31.2345e-6]

x=

1.3333e+0001.2345e-006

其他格式

formatshortg1.33331.2345e-006

formatlong1.333333333333330.00000123450000

formatlonge1.333333333333333e+0001.234500000000000e-006

formatlongg1.333333333333331.2345e-006

formatbank1.330.00

formatrat4/31/810045

formathex3ff55555555555553eb4b6231abfd271

如果表达式无法在一行输入完,用三点"…"加回车键表示下一行继续该语句的输入.例如:

例2:

长命令行的输入

s=1-1/2+1/3-1/4+1/5-1/6+1/7...

-1/8+1/9-1/10+1/11-1/12;

例3:

命令行的编辑(键盘上的多个箭头键和控制键允许撤消,编辑和重新执行之前的命令)和命令窗口常用指令

Ctrl+p

召回上一行

 

cd

设置当前工作目录

Ctrl+n

召回下一行

clf

清除图形窗

Ctrl+b

后退一个字符

clc

清除指令窗中显示内容

Ctrl+f

前进一个字符

clear

清除工作空间中保存的变量

Ctrl+→

Ctrl+r

右移一个单词

dir

列出指定目录下的文件和子目录

Ctrl+←

Ctrl+l

左移一个单词

edit

打开M文件编辑器

Home

Ctrl+a

移至行始

exit

关闭/退出

End

Ctrl+e

移至行末

quit

关闭/退出

Esc

Ctrl+u

清除该行

more

使其后的显示内容分页进行

Del

Ctrl+d

删除光标所在字符

return

返回到上层调用程序;

Backspace

Ctrl+h

删除光标之前字符

type

显示指定M文件的内容

Ctrl+k

删除至行末

which

指出其后文件所在的目录

Ø命令历史窗口在控制窗的输入内容都被记录在命令历史窗口中。

在命令历史中,你可以看到以前用过的函数,并且可以复制和执行选定行。

Ø编辑器窗口用来生成和调试M-文件,这些M-文件是你为运行MATLAB函数所写的程

如果仅是要看M-文件的内容,可以用type命令使它在命令窗口中显示。

 

Ø

工作空间浏览器

Matlab工作空间包含内建Matlab处理任务时以及储存在记忆体中的变量排列。

你可以通过使用函数、运行M-文件、装载已存文件等方式增加变量到工作区。

 

双击可查看、更改变量值

3、奇异的魔方

雕版画---忧郁者I欧洲文艺复兴时期,德国的一个艺术家兼业余数学爱好者阿布列西特.杜勒的作品。

这幅图布满了各种各样的数学符号,而且如果你仔细观察的话就会发现在右上角有一个矩阵。

那个就是奇妙的魔方矩阵。

下面让我们来输入杜勒的魔方的一组元素,只要遵循下列几个基本步骤就可以了:

⏹用空格或者逗号来区分一行里不同的元素。

⏹用分号“;”来区分不同的行。

⏹用方括号来括住全体元素。

在命令窗口输入:

>>A=[163213;510118;96712;415141]

A=

163213

510118

96712

415141

>>sum(A)%每一列的数字加起来的结果

ans=

34343434

如果每一行加起来又会怎样呢?

>>A'%一个矩阵的转置矩阵

ans=

16594

310615

211714

138121

>>sum(A')'%包含由行元素的和组成的列向量

ans=

34

34

34

34

对角线元素由diag函数很容易就被列出来

>>diag(A)

ans=

16

10

7

1

>>sum(diag(A))

ans=

34

另外的对角线呢?

即所谓的反对角线,在数学上就不是那么重要了。

所以Matlab就没有相应的函数。

但在图形函数中,函数fliplr产生一个左右调转的矩阵。

>>sum(diag(fliplr(A)))

ans=

34

我们用Matlab证明了在杜勒的木板图中的那个矩阵的确是一个魔术方阵。

关于矩阵

记i行j列元素为A(i,j)。

例如A(4,2)就是第4行2列的元素。

在魔方阵中就是15。

实际上用A(k)就可以代表阵中的第k行了,这只用了一个下标。

这是经常用来表示行和列向量的方法。

也可以应用到两维的矩阵,其中的列是由原来的列一直排下去构成的。

对魔方来说,A(8)就是A(4,2)的另一中表达方法,它的值是15。

如果想用矩阵以外的值,系统就会出错。

>>t=A(4,5)

?

?

?

Indexexceedsmatrixdimensions.

如果输入一个数值到矩阵以外的位置,矩阵的大小就会变化来容纳新的数据。

>>X=A;

X(4,5)=17

X=

1632130

5101180

967120

41514117

冒号算子冒号':

'是Matlab里面一个十分重要的算子,适用于各种不同的表达式。

如1:

10表示一行从1到10的整数

100:

-7:

50改变递变的间隔,指定一个间隔长度10093867972655851

按此A(1:

k,j)表示A的第j列前k个元素。

如:

>>A(1:

3,3)

ans=

2

11

7

因此sum(A(1:

4,4))表示计算A的第4列元素的和。

但是有一种更加方便的办法。

关键字':

'本身可以表示某行或某列的全体元素,可以用关键字end来表示最后一行或者最后一列的全体元素,所以

>>sum(A(:

end))%计算A的最后一列元素的和

ans=

34

为什么一个4×4的魔方矩阵的魔术和是34呢?

如果我们从1加到16再把答案除以4,答案当然是34。

实际上Matlab提供了一个函数可以计算出任意规格的魔方矩阵,毫不奇怪,这个函数就是magic。

>>magic(5)

ans=

17241815

23571416

46132022

101219213

11182529

【练习1】用magic函数求取杜勒的魔方矩阵。

Matlab提供产生基本矩阵的四个函数:

zeros产生一个全零矩阵;ones产生一个全1矩阵

rand产生一个元素是均匀分布随机数的矩阵;randn产生一个元素是正态分布的随机数的矩阵

>>C=zeros(2,4)

C=

0000

0000

>>F=7*ones(3,3)

F=

777

777

777

>>N=fix(10*rand(1,10))%fix函数功能是向零取整

N=

1994814979

>>R=randn(4,4)

R=

1.0668e+0002.9441e-001-6.9178e-001-1.4410e+000

5.9281e-002-1.3362e+0008.5800e-0015.7115e-001

-9.5648e-0027.1432e-0011.2540e+000-3.9989e-001

-8.3235e-0011.6236e+000-1.5937e+0006.9000e-001

【练习2】创建一个3×4的1~10随机数的矩阵。

矩阵连接

连接是一个合并小矩阵成大矩阵的过程。

事实上,你创建第一个矩阵时就是通过将它的各自独立的元素连接在一起的。

中括号[]是连接的算子。

>>B=[AA+32;CC]

B=

16321348353445

51011837424340

9671241383944

41514136474633

00000000

00000000

行与列的删除

>>X=A;

X(:

2)=[]

X=

16213

5118

9712

4141

如果删除矩阵的单个元素,其结果就不再是矩阵了。

所以,如下的表达式

>>X(1,2)=[]

?

?

?

Subscriptedassignmentdimensionmismatch.

然而,用单独的下标则是删除一个单独元素或连续的元素,并把剩下的元素改成行向量的形状。

因此

>>X(2:

2:

10)=[]

X=

1692713121

加载命令

加载命令load读出含有由早期Matlab版本形成的矩阵的二进制文件,或者读出含有数值数据的文本文件。

文本文件应该由一个数字的矩阵表格构成,由空格隔开,每一线排一行,而且每一行有相同数量的元素。

如将用微软的写字板,创建一个含有这四行的文本文件,并以magic.dat为名储存。

16.03.02.013.0

5.010.011.08.0

9.06.07.012.0

4.015.014.01.0

在命令窗口

>>loadI:

/magic.dat%读这个文件并创建一个含有我们的矩阵例子的变量magik

>>magic

magic=

163213

510118

96712

415141

M-文件

用M-文件创建自己的矩阵,这些M-文件是包含Matlab代码的文本文件。

用Matlab编辑器或另外的文本编辑器去创建一个文件,它包含你将输入到Matlab命令行的同样的语句。

例如,创建一个文件含有这五行

A=[...

16.03.02.013.0

5.010.011.08.0

9.06.07.012.0

4.015.014.01.0];

用一个后缀名为.m的dule.m名字保存该文件。

在命令窗口

>>dule%读出该文件并产生一个变量A,含有我们的矩阵示例。

A=

163213

510118

96712

415141

Matlab与MicrosoftWord(Windows)关联

notebook%开启Word新文档,并提示Matlab此后自动作为服务器

notebook('filename')%开启名为filename的Word文档,如filename不在当前路径,则应加入文件的全路径。

notebook('-setup')%创建Matlab与MicrosoftWord接口,命令窗口将显示创建成功与否信息。

利用Notebook可以在word环境下操作Matlab。

其产生的文件称为M-book,可包含固定的文本、Matlab命令和Matlab的输出。

Notebook的功能在于:

使用户能在Word环境中“随心所欲地享用”MATLAB的浩瀚科技资源,为用户营造融文字处理、科学计算、工程设计于一体的完美工作环境。

M-book.dot模板的外形和使用方法,几乎与普通Word模板Normal.dot完全相同。

因此,在M-book中,文字、图象、表格、数学公式等的输入、排版、编辑方法,与在普通Word文档没有什么区别。

在Notebook中,凡参与Word和Matlab之间信息交换的部分,就称之谓“Cells(Cellgroup)”。

由M-book送向Matlab的指令,称为(Inputcells);由Matlab返回M-book的计算结果,称为(Outputcells)。

较之普通Word,Notebook最宝贵的东西就是Inputcells(group)。

从应用上讲,学会其创建和运行,就意味着掌握了Notebook。

Cells(group)创建、正确运行的两个基本操作:

Ø以普通文本形式输入的必须是MATLAB指令。

特别注意:

标点符号必须是在英文状态下输入的。

Ø不管文本形式的一条指令有多长,不管一行有多少条文本形式指令,不管有多少行文本形式指令,只要能用鼠标把它们同时“点亮”选中,那么可以被创建或运行,具体如下:

(A)在文本内容“点亮”后,按组合键[Ctrl-Enter],或选中下拉菜单项{EvaluateCell},那么被“点亮”部分就被激活成Inputcells(group),文字颜色将呈现为象征生命的绿色。

与此同时,细胞所含指令被送进Matlab运行,最后在该Cell的下方嵌入计算结果(数据或图形)。

这就是输出细胞,它的文字用蓝色显示。

(B)在文本内容“点亮”后,按组合键[Alt-D],或选中下拉菜单项{DefineInputCell},那么被“点亮”

部分只是变成了Inputcells(group),没被送去运行,当然也就没有运行结果。

【练习3】利用notebook功能在Word环境下,在一张图上画出一个周期内的单位幅值正弦、余弦图。

 

课题二Matlab数学计算

1、简单的计算

为易于学习,本节以算例算例归纳一些MATLAB最基本的规则和语法结构。

【例1】求[12+2×(7-4)]÷32的算术运算结果。

用键盘在Matlab指令窗中输入以下内容或在M-book中

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

ans=

2

变量命名规则

✧变量名、函数名是对字母大小写敏感的。

如变量myvar和MyVar表示两个不同的变量。

sin是Matlab定义的正弦函数名,但SIN,Sin等都不是。

✧变量名的第一个字符必须是英文字母,最多可包含63个字符(英文、数字和下连符)。

如myvar201是合法的变量名。

✧变量名中不得包含空格、标点、运算符,但可以包含下连符。

如变量名my_var_201是合法的,且读起来更方便。

【例2】运用以下指令,以便初步了解预定义变量。

本例演示:

预定义变量已经存在的事实;

formatlong

realmax

ans=

1.797693134862316e+308

realmin

ans=

2.225073858507201e-308

pi

ans=

3.141592653589793

多项式的表示方法和运算

【例3】p(x)=x3-3x-5可以表示为p=[10-35],求x=5时的值用

p=[10-35];

polyval(p,5)%polyval(p,a)

ans=

115

也可以求向量:

a=[345];polyval(p,a)

ans=

2357115

求多项式的根

【例4】求x4-5x2+6的根

p=[10-506];

x=roots(p)%roots(p),p为多项式的系数向量,求得的根返回向量x。

x=

-1.7321

-1.4142

1.7321

1.4142

反过来,已知多项式的根,求该多项式用函数poly(x)

G=poly(x)

G=

1.00000.0000-5.0000-0.00006.0000

多项式乘法(执行两个数组的卷积)

【例5】求(x3+4x-1)×(x2+8)

x1=[104-1];x2=[108];

relt=conv(x1,x2)%conv(x1,x2)的逆运算是deconv(x1,x2)即多项式除法,返回商式及余式

relt=

1012-132-8

x_2=deconv(relt,x1)

[Qr]=deconv(x1,x2)

x_2=

108

Q=

10

r=

00-4-1

【练习1】1)求多项式3y4+2y2-8y-56,y=2.1的值。

2)求(x4+5x2-1)×(x2-x+9)

面向复数设计的运算是MATLAB特点之一。

MATLAB的所有运算都是定义在复数域上的。

这样设计的好处是:

在进行运算时,不必像其他程序语言那样把实部、虚部分开处理。

为描述复数,虚数单位用预定义变量i或j表示。

复数z=a+bj=rejθ直角坐标表示和极坐标表示之间转换的MATLAB指令如下:

real(z)给出复数z的实部a=rcosθ。

imag(z)给出复数z的虚部b=rsinθ。

abs(z)给出复数z的模

angle(z)以弧度为单位给出复数z的幅角

【例6】图示复数z=3+4j,z=1+2j的和

z1=4+3*j;z2=1+2*j;

z12=z1+z2

%以下用于绘图

clf,holdon%clf清空图形窗。

逗号用来分隔两个指令。

plot([0,z1,z12],'g','LineWidth',3)

plot([0,z12],'-r','LineWidth',3)

plot([z1,z12],'s','MarkerSize',8)

holdoff,gridon,

axisequal

axis([0,6,0,6])

text(3.5,2.3,'z1')

text(5,4.5,'z2')

text(2.5,3.5,'z12')

xlabel('real')

ylabel('image')

shg

z12=

5.000000000000000+5.000000000000000i

【练习2】用Matlab计算

本例证实:

Matlab运算定义是在复数域的实质。

a=-8;

r_a=a^(1/3)

r_a=

1.0000+1.7321i

解答

%先构造一个多项式(p(r)=r3+a)

p=[1,0,0,-a];%p是多项式p(r)的系数向量

R=roots(p)%求多项式的根

R=

-2.0000

1.0000+1.7321i

1.0000-1.7321i

用图形表示

MR=abs(R

(1));%计算复根的模

t=0:

pi/20:

2*pi;%产生参变量在0到2*pi间的一组采样点

x=MR*sin(t);

y=MR*cos(t);

plot(x,y,'b:

'),gridon%画一个半径为R的圆

%注意“英文状态逗号”在不同位置的作用

holdon

plot(R

(2),'.','MarkerSize',30,'Color','r')%画第一象限的方根

plot(R([1,3]),'o','MarkerSize',15,'Color','b')%画另两个方根

axis([-3,3,-3,3])%保证屏幕显示呈真圆

holdoff

可见对复数进行方根运算时,Matlab只给出处于“第一象限”的那个根。

2、数组运算面向数组设计的运算——MATLAB特点之二

在MATLAB中,标量数据被看作(1×1)的数组(Array)数据。

所有的数据都被存放在适当大小的数组中。

为加快计算速度(运算的向量化处理),MATLAB对以数组形式存储的数据设计了两种基本运算:

一种是所谓的数组运算;另一种是所谓的矩阵运算。

【例4】对复数数组

进行求实部、虚部、模和幅角的运算。

本例演示:

复数数组的生成;MATLAB指令对数组元素"并行操作"的实质。

(1)创建复数数组

AR=[1,3;2,4]%数组标识符"[]”;元素分隔符空格或逗号“,”;数组行间分隔符分号";”

AI=[5,7%或"回车"符用来分隔数组中的行。

6,8]

A=AR-AI*i%形成复数矩阵

AR=

13

24

AI=

57

68

A=

1.0000-5.0000i3.0000-7.0000i

2.0000-6.0000i4.0000-8.0000i

(2)求复数数组的实部和虚部

A_real=real(A)

A_image=imag(A)

A_real=

13

24

A_image=

-5-7

-6-8

(3)求复数数组中各元素的模和幅角

Am2=abs(A)

Aa2=angle(A)*180/pi%以度为单位计算幅角

Am2=

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

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2