MATLAB教程16章.docx
- 文档编号:3519118
- 上传时间:2022-11-23
- 格式:DOCX
- 页数:102
- 大小:391.23KB
MATLAB教程16章.docx
《MATLAB教程16章.docx》由会员分享,可在线阅读,更多相关《MATLAB教程16章.docx(102页珍藏版)》请在冰豆网上搜索。
MATLAB教程16章
MATLAB数学工具软件
实例简明教程
王正盛编写
南京航空航天大学
第一章MATLAB简介
MALAB译于矩阵实验室(MATrixLABoratory),是用来提供通往LINPACK和EISPACK矩阵软件包接口的。
后来,它渐渐发展成了通用科技计算、图视交互系统和程序语言。
MATLAB的基本数据单位是矩阵。
它的指令表达与数学、工程中常用的习惯形式十分相似。
比如,矩阵方程Ax=b,在MATLAB中被写成A*x=b。
而若要通过A,b求x,那么只要写x=A\b即可,完全不需要对矩阵的乘法和求逆进行编程。
因此,用MATLAB解算问题要比用C、Fortran等语言简捷得多。
MATLAB发展到现在,已经成为一个系列产品:
MATLAB“主包”和各种可选的toolbox“工具包”。
主包中有数百个核心内部函数。
迄今所有的三十几个工具包又可分为两类:
功能性工具包和学科性工具包。
功能性工具包主要用来扩充MATLAB的符号计算功能、图视建模仿真功能、文字处理功能以及硬件实时交互功能。
这种功能性工具包用于多种学科。
而学科性工具包是专业性比较强的,如控制工具包(ControlToolbox)、信号处理工具包(SignalProcessingToolbox)、通信工具包(CommunicationToolbox)等都属此类。
开放性也许是MATLAB最重要、最受人欢迎的特点。
除内部函数外,所有MATLAB主包文件和各工具包文件都是可读可改的源文件,用户可通过对源文件的修改或加入自己编写文件去构成新的专用工具包。
MATLAB已经受了用户的多年考验。
在欧美发达国家,MATLAB已经成为应用线性代数、自动控制理论、数理统计、数字信号处理、时间序列分析、动态系统仿真等高级课程的基本教学工具;成为攻读学位的大学生、硕士生、博士生必须掌握的基本技能。
在设计研究单位和工业部门,MATLAB被广泛地用于研究和解决各种具体工程问题。
第二章MATLAB入门
2.1工作窗和指令行的操作
除了通过菜单选项对工作窗进行控制外,MATLAB还提供了许多通过键盘输入的控制指令。
如下表
MATLAB工作窗中的部分通用指令
quit
关闭和退出MATLAB
clc
擦除MATLAB工作窗中的所有显示内容
clf
擦除MATLAB的当前图形窗中的图形
clear
清除内存中的变量和函数
pack
收集内存碎片以扩大内存空间
dir
列出指定目录下的文件和子目录清单
cd
改变当前工作子目录
disp
(在运行中)显示变量和文字内容
type
显示所有指定文件的全部内容
echo
控制运行文件指令是否显示的开关
hold
控制当前图形窗对象是否被刷新
启动MATLAB后,就可以利用它工作了。
由于MATLAB是一种交互式语言,随时输入指令、即时给出运算结果是它的主要工作方式(当然更可以编制程序,详见第七章)。
比如要计算
的值,只要在光标位置处键入:
2*sin(0.3*pi)/(1+sqrt(5))
然后按[Enter]键,该指令便被执行并给出结果:
ans=0.5000
下面介绍控制光标、对指令进行编辑的一些常用操作键。
常用操作键
键名
作用
键名
作用
前寻式调回已输入过的指令行
Home
使光标移到当前行的首端
后寻式调回已输入过的指令行
End
使光标移到当前行的尾端
在当前行中左移光标
Delete
删除光标右表边的字符
在当前行中右移光标
Backspace
删除光标左表边的字符
PageUp
前寻式翻阅当前窗中的内容
Esc
清楚当前行的全部内容
PageDown
后寻式翻阅当前窗中的内容
2.2简单矩阵的输入
在MATLAB中,矩阵输入的方法有多种,此处只简单介绍矩阵的直接输入法,详细介绍见第三章。
在MATLAB中不必对矩阵维数做任何说明,存储将自动配置。
在直接输入矩阵时,矩阵元素用空格或逗号分隔,矩阵行用“;”隔离。
整个矩阵放在方括号“[]”里。
[例1]
A=[1,2,3;4,5,6;7,8,9;10,11,12]
A=
123
456
789
101112
说明:
指令执行后,矩阵A被保存在MATLAB的工作间(Workspace)中,以备后用。
如果用户不用clear指令清除它,或对它重新定义,该矩阵会一直保存在工作间中,直到本MATLAB指令窗被关闭为止。
[例2]矩阵分行输入
A=[1234
5678
0123]
A=1234
5678
0123
[例3]矩阵元素输入
B(1,2)=3;B(4,4)=6;B(4,2)=11
B=0300
0000
0000
01106
2.3语句与变量
MATLAB采用表达式语句。
用户输入语句由MATLAB系统结实运行。
MATLAB语句有两种常见的形式:
(1)表达式;
(2)变量=表达式
说明:
(1)表达式由算符、函数、变量名和数字构成。
(2)在第一种形式中,表达式被执行后产生的矩阵,将被自动赋给名为“ans”的变量,并显示在屏幕上,“ans”是一个缺省变量名,它会被以后类似的操作刷新。
(3)在第二种形式中,等号右边的表达式是被演绎后产生的矩阵,将被赋给等号左边的变量存入内存,并显示在屏幕上。
(4)书写表达式时,运算符号“=”、“+”、“—”以及“*”等两侧允许有空格,以增加可读性。
但在复数或符号表达式中,要尽量避免“装饰性”空格,以防出错。
(5)变量名、函数名以一个字母打头,后面最多可接19个字母或数字。
注意:
MATLAB是区分字母的大小写的。
[例1]表达式的计算结果
2001/81
ans=24.7037
[例2]运算结果的赋值。
s=1-1/2+1/3-1/4+1/5-1/6+1/7-1/8;
说明:
结尾的分号“;”作用是:
指令执行结果将不会显示在屏幕上,但变量s仍将驻留在内存中。
如想看s的值,只要键入:
s
s=0.6345
2.4Who、Whos和永久变量
Who和Whos这两个指令的作用都是列出在MATLAB工作间中已经驻留的变量名清单。
不过,Whos在给出变量名的同时,还给出它们的维数及性质。
[例1]用who检查内存变量
who
Yourvariablesare:
s
[例2]用whos检查驻留变量的详细情况。
whos
NameSizeBytesClass
s1x18doublearray
Grandtotalis1elementsusing8bytes
在MATLAB工作内存中,还驻留几个由系统本身在启动时定义的变量(如下表),称为“永久变量”(Permanentvariables),或称为“预定义变量”(Predefinedvariables)。
系统预定义的变量
eps
计算机的最小正数,在pc机上,它等于
pi
圆周率
的近似值3.14159265358979
inf或Inf
无穷大
NaN
不定量
i,j
虚数单位,定义
flops
浮点运算次数,用于统计计算量
说明:
(1)它们是在MATLAB启动时自定义的。
(2)它们不会被“清除内存变量”指令clear所清除。
(3)他们可以重新定义为其他值,但用clear可清除重定义值,恢复预定义值。
[例1]无穷大
s=1/0
Warning:
Dividebyzero.
s=Inf
无穷大
a=Inf/inf
a=
NaN
2.5数与表达式
MATLAB的数值采用习惯的十进制表示,可以带小数点或负号。
如下是合法的:
3-990.00139.24451541.2434e-64.673e33
在采用IEEE浮点算法的计算机上,数值的相对精度是eps,即大约保持16位有效数字,数值范围大致为
。
表达式由下列算符构成,并按习惯的优先次序进行运算。
+加法—减法*乘法/右除\左除^乘方
注意:
设置两种除法是为了方便矩阵的运算,对标量而言两者作用相同。
[例1]
x=2*pi/3+2^3/5-0.3e-3
x=
3.6941
2.6复数和复矩阵
MATLAB认识复数,并定义i和j作为虚数单位。
矩阵元素允许是复数、复变量和由它们组成的表达式。
[例1]
z1=3+4*i,z2=2*exp(i*pi/6)
z=z1*z2
z1=
3.0000+4.0000i
z2=
1.7321+1.0000i
z=
1.1962+9.9282i
[例2]
A=[1,3;2,4]-i*[5,8;6,9]
B=[1+5*i,2+6*i;3+8*i,4+9*i]
C=A*B
A=
1.0000-5.0000i3.0000-8.0000i
2.0000-6.0000i4.0000-9.0000i
B=
1.0000+5.0000i2.0000+6.0000i
3.0000+8.0000i4.0000+9.0000i
C=
1.0e+002*
0.99001.1600-0.0900i
1.1600+0.0900i1.3700
2.7函数
MATLAB的强大功能可函数中略见一斑,本质上讲分为三类:
(1)内部函数
(2)系统附带各种工具包中的M文件所提供的大量函数
(3)用户自己增加的函数,这一特点是其他许多软件平台无法比拟的。
MATLAB提供的通用数理类函数包括:
●基本数学函数
●特殊函数
●基本矩阵函数
●特殊矩阵函数
●矩阵分解和分析函数
●数据分析函数
●微分方程求解
●多项式函数
●非线性方程及其优化函数
●数值积分函数
●信号处理函数
[例]
z=1233.344
x=sqrt(log(z))
z=
1.233344000000000e+003
x=
2.66786140168028
2.8显示格式
在缺省的状态下,MATLAB以短格式(short格式)显示计算结果。
可以用MATLAB命令窗口中format指令来改变数字的显示格式。
由于MATLAB以双精度执行所有运算,显示格式的设置仅影响矩阵的显示,不影响矩阵的计算与存储。
如果矩阵的所有元素都是整数,则矩阵以不带小数点的格式显示。
如果有一个元素不是整数,则有几种输出格式。
默认格式为short格式,只显示5位有效数字,其他的显示格式可显示更多的有效数字,还可用科学表示法。
[例]
x=[4/31.2345e-6]
默认(short)格式
x=
1.33330.0000
formatshorte(短格式科学表示)
x
x=
1.3333e+0001.2345e-006
formatlong(长格式)
x
x=
1.333333333333330.00000123450000
formatlonge(长格式科学表示)
x
x=
1.333333333333333e+0001.234500000000000e-006
formatbank(银行格式)
x
x=1.330.00
formathex(十六进制格式)
x
x=3ff55555555555553eb4b6231abfd271
format+(+格式—用于显示大矩阵的紧凑格式,+、—、空格分别表示正数、负数和零。
x
x=++
另外,还有一种命令为formatcompact(紧凑格式),它消去了矩阵之间的间隔行,这样可在一屏中显示更多的信息。
2.9变量的存储与调用
quit和exit指令都可退出MATLAB。
结束MATLAB任务会删除工作间中的变量。
在退出前,可以保存工作空间,以备再次调出使用这些变量。
保存的指令格式:
(1)save工作间中的所有变量保存在磁盘上名为matlab.mat的文件中
(2)save[文件名][变量名]将指定的变量保存在指定文件中。
如:
savetempxyz把x,y,z这三个变量保存在文件temp.mat中。
在下次加载MATLAB时,可以利用load指令将保存在文件中的变量恢复到工作间中,其格式有:
(1)load将保存在matlab.mat中的变量装入到MATLAB工作间中。
(2)load[文件名][变量名]从指定的文件中将指定的变量装入MATLAB工作间。
如:
loadtempx从文件temp.mat中只将变量x装入到MATLAB工作间中。
2.10图形
图形是MATLAB的主要特色之一。
MATLAB图形指令具有自然、简洁、灵活及易扩充的特点。
MATLAB的指令很多,这里仅介绍几个简单的绘图指令,详见第六章。
[例1]作多条曲线
t=0:
pi/50:
4*pi;
y0=exp(-t/3);
y=exp(-t/3).*sin(3*t);
plot(t,y,t,y0,t,-y0)
grid
[例2]三维曲面
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;
mesh(Z);
colormap([1,0,0])
2.11lp指令、lookfor指令及其他帮助指令
MATLAB的在线帮助系统相当完备,就查询系统的调用方式而言,可分为两种:
(1)从MATLAB指令窗的help菜单选项中寻求帮助。
此与一般windows的求助方法一样。
(2)在MATLAB指令窗中,直接键入求助指令。
(i)help不带任何参数,显示出MATLAB的目录项,产生清单信息:
help
HELPtopics:
matlab\general-Generalpurposecommands.
matlab\ops-Operatorsandspecialcharacters.
matlab\lang-Programminglanguageconstructs.
matlab\elmat-Elementarymatricesandmatrixmanipulation.
matlab\elfun-Elementarymathfunctions.
matlab\specfun-Specializedmathfunctions.
matlab\matfun-Matrixfunctions-numericallinearalgebra.
matlab\datafun-DataanalysisandFouriertransforms.
matlab\polyfun-Interpolationandpolynomials.
matlab\funfun-FunctionfunctionsandODEsolvers.
matlab\sparfun-Sparsematrices.
matlab\graph2d-Twodimensionalgraphs.
matlab\graph3d-Threedimensionalgraphs.
matlab\specgraph-Specializedgraphs.
matlab\graphics-HandleGraphics.
matlab\uitools-Graphicaluserinterfacetools.
matlab\strfun-Characterstrings.
matlab\iofun-Fileinput/output.
matlab\timefun-Timeanddates.
matlab\datatypes-Datatypesandstructures.
matlab\winfun-WindowsOperatingSystemInterfaceFiles(DDE/ActiveX)
matlab\demos-Examplesanddemonstrations.
toolbox\runtime-MATLABRuntimeServerDevelopmentKit
rtw\windows-RealTimeWindowsTarget.
daq\daq-DataAcquisitionToolbox
daq\daqdemos-DataAcquisitionToolbox-DataAcquisitionDemos.
toolbox\dials-Dials&GaugesBlockset
toolbox\rptgenext-SimulinkReportGenerator
toolbox\rptgen-MATLABReportGenerator
database\database-DatabaseToolbox.
database\dbdemos-DatabaseToolboxDemonstrationFunctions.
powersys\powerdemo-PowerSystemBlocksetDemos.
powersys\powersys-PowerSystemBlockset
toolbox\compiler-MATLABCompiler(andCompiler1.2.1)
comm\comm-CommunicationsToolbox.
comm\commmasks-CommunicationsToolboxmaskhelperfunctions.
comm\commsfun-CommunicationsToolboxS-functions.
comm\commsim-CommunicationsToolboxSimulinkfiles.
toolbox\symbolic-SymbolicMathToolbox.
nag\nag-NAGFoundationToolbox-Numerical&StatisticalLibrary
nag\examples-NAGFoundationToolbox-Numerical&StatisticalLibrary
map\map-MappingToolbox
map\mapdisp-MappingToolboxMapDefinitionandDisplay.
map\mapproj-MappingToolboxProjections.
wavelet\wavelet-WaveletToolbox.
wavelet\wavedemo-WaveletToolboxDemos.
toolbox\pde-PartialDifferentialEquationToolbox.
finance\finance-FinancialToolbox.
finance\calendar-FinancialToolboxcalendarfunctions.
finance\findemos-FinancialToolboxdemonstrationfunctions.
lmi\lmictrl-LMIControlToolbox:
ControlApplications
lmi\lmilab-LMIControlToolbox
qft\qft-QFTControlDesignToolbox.
qft\qftdemos-QFTControlDesignToolboxDemos
toolbox\fixpoint-Fixed-PointBlockset
fixpoint\fxpdemos-Fixed-PointBlocksetDemos
fixpoint\obsolete-ObsoleteFixed-PointBlockset
dspblks\dspblks-DSPBlockset.
dspblks\dspmex-(Notableofcontentsfile)
dspblks\dspdemos-DSPBlocksetdemonstrationsandexamples.
dspblks\dspmasks-DSPBlocksetmaskhelperfunctions.
fuzzy\fuzzy-FuzzyLogicToolbox.
fuzzy\fuzdemos-FuzzyLogicToolboxDemos.
mpc\mpccmds-ModelPredictiveControlToolbox.
mpc\mpcdemos-ModelPredictiveControlToolbox
fdident\fdident-FrequencyDomainIdentificationToolbox.
fdident\fddemos-DemonstrationsfortheFDIDENTToolbox
hosa\hosa-Higher-OrderSpectralAnalysisToolbox.
hosa\hosademo-Higher-OrderSpectralAnalysisToolbox-Demosuite
toolbox\stats-StatisticsToolbox.
toolbox\ncd-NonlinearControlDesignBlockset
images\images-ImageProcessingToolbox.
images\imdemos-ImageProcessingToolbox---demosandsampleimages
nnet\nnet-NeuralNetworkToolbox.
nnet\nndemos-NeuralNetworkDemonstrations.
nnet\nnutils-(Notableofcontentsfile)
nnet\nnobsolete-(Notableofcontentsfile)
mutools\commands-Mu-AnalysisandSynthesisToolbox.
muto
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MATLAB 教程 16