第一章Matlab程序设计基础Word格式文档下载.docx
- 文档编号:17144199
- 上传时间:2022-11-28
- 格式:DOCX
- 页数:15
- 大小:207.55KB
第一章Matlab程序设计基础Word格式文档下载.docx
《第一章Matlab程序设计基础Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《第一章Matlab程序设计基础Word格式文档下载.docx(15页珍藏版)》请在冰豆网上搜索。
用MATLAB计算小球在t=5s时的位置,已知x0=10m,v0=15m/s,a=-9.84m/s2.
参考资料:
【1】MatlabProgrammingforEngineers.(SecondEdition).StephenJ.Champan
【2】精通Matlab7王正林.刘明编著.电子工业出版社
第1章Matlab程序设计基础
一、MATLAB能做什么
MATLAB是一个可视化的计算程序,被广泛地使用于从个人计算机到超级计算机范围内的各种计算机上。
MATLAB包括命令控制、可编程,有上百个预先定义好的命令和函数。
这些函数能通过用户自定义函数进一步扩展。
MATLAB有许多强有力的命令。
例如,MATLAB能够用一个单一的命令求解线性系统,能完成大量的高级矩阵处理。
MATLAB有强有力的二维、三维图形工具。
MATLAB能与其他程序一起使用。
例如,MATLAB的图形功能,可以在一个FORTRAN程序中完成可视化计算。
25个不同的MATLAB工具箱可应用于特殊的应用领域。
MATLAB在以下的领域里解决各种问题是一个十分有效的工具:
•工业研究与开发。
•数学教学,特别是线性代数。
所有基本概念都能涉及。
•在数值分析和科学计算方面的教学与研究。
能够详细地研究和比较各种算法。
•在诸如电子学、控制理论和物理学等工程和科学学科方面的教学与研究。
•在诸如经济学、化学和生物学等有计算问题的所有其他领域中的教学与研究。
•在MATLAB中创建的组是矩阵,MATLAB的名字取自矩阵实验室(MATrixLABoratory)。
二、Matlab产生的历史背景
1、70年代中后期,cleveMoIg博士和其同事在美国国家科学基金的资助下开发了调用EISPACK和LINPACK的NRTRM子程序库。
EISPACK是特征值求解的FORTRAN程序库,LINPACK是解线性方程的程序库。
在当时,这两个程序库代表矩阵运算的最高水平。
2、到70年代后期,身为美国NewMexico大学计算机系系主任的CleveMoler,在给学生讲授线性代数课程时,想教学生使用EISPACK和LINPACK程序库,但他发现学生用FORTRAN编写接口程序很费时间,于是他开始自己动手,利用业余时间为学生编写EISPACK和LINPACK的接口程序。
CleveMoler给这个接口程序取名为MATLAB,该名为矩阵(matrix)和实验室(1aboratry)两个英文单词的前三个字母的组合。
在以后的数年里,MATLAB在多所大学里作为教学辅助软件使用,并作为面向大众的免费软件广为流传。
3、1984年,C1eveMoler和JohnLittle成立了Mathworks公司,正式把MATLAB推向市场。
4、目前,在大学里,MATLAB已成为线性代数、自动控制理论、数理统计、数字信号处理、时间序列分析、动态系统仿真等高级课程的基本教学工具;
成为攻读学位的大学生、硕士生、博士生必须掌握的基本技能。
三、Matlab实例
【例1】求[12+2×
(7−4)]÷
32的算术运算结果。
(1)用键盘在MATLAB指令窗中输入以下内容
>
(12+2*(7-4))/3^2
(2)在上述表达式输入完成后,按【Enter】键,该就指令被执行。
(3)在指令执行后,MATLAB指令窗中将显示以下结果。
ans=
2
【例2】求方程3x4+7x3+9x2-23=0的全部根
p=[3,7,9,0,-23];
%建立多项式系数向量
x=roots(p)%求根
x=
-1.8857
-0.7604+1.7916i
-0.7604-1.7916i
1.0732
【例3】简单矩阵
的输入步骤。
(1)在键盘上输入下列内容
A=[1,2,3;
4,5,6;
7,8,9]
(2)按【Enter】键,指令被执行。
(3)在指令执行后,MATLAB指令窗中将显示以下结果:
A=
123
456
789
【例4】线性系统与特征值
(a)MATLAB可以用一个简单的命令行求解线性系统,系数矩阵A和右侧b定义如下:
对应于线性系统Ax=b,如下所示:
(b)例(a)中矩阵A的特征值很容易地可以由下列命令得到:
[EigenVectors,EigenValues]=eig(A)
其结果为:
EigenVectors=
-0.31290.9482-0.0553
0.77560.28870.5613
-0.5482-0.13280.8258
EigenValues=
-1.230500
03.44450
007.7860
矩阵EigenVectors的列是A的特征向量,EigenValues中对角线元素是特征值。
由于矩阵A是对称的,因此,所有的特征值都是实数,三个特征向量是相互正交的。
【例5】复数,表达,计算:
z1=3+4i;
z2=1+2i;
z3=2*exp(i*pi/6);
z=z1*z2/z3
z=
0.3349+5.5801i
【例6】二维和三维函数
MATLAB能用于计算,并以二维和三维图形显示各种函数。
在MATLAB函数中包括了所有主要的数学函数和大量的高级函数。
(a)用简短的MATLAB命令计算并绘制在0≤x≤6范围内的sin(2x)、sinx2和sin2x。
x=linspace(0,6);
%创建一个向量x。
y1=sin(2*x);
%向量y1等于x坐标上某一x的sin(2x)值。
y2=sin(x.^2);
%向量y2等于sin(x.^2),同上。
y3=(sin(x)).^2;
%向量y3等于(sin(x)).^2,同上。
plot(x,y1,x,y2,x,y3)
gridon
legend('
y1=sin(2x)'
'
y2=sinx^2'
y3=sin(x).^2'
)
命令plot(x,y1)绘制向量y1,y1作为向量x的一个函数,由此能够很容易地在一个图上绘制sin(2x)、sin(x2)和sin2x的曲线并正确地标记它们。
(b)画出衰减振荡曲线及其它的包络线,t的取值范围是[0,4π]。
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,'
grid
(c)画出,所表示的三维曲线,x,y的取值范围为[-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'
【例7】对于函数,求,及计算
symsxy
f=‘x*exp(-x*y)’;
dfdxdy=diff(diff(f,x),y)
dfdxdy=
-2*x*exp(-x*y)+x^2*y*exp(-x*y)
dsdxdy=simplify(dsdxdy)
x*exp(-x*y)*(-2+x*y)
int(int(s,x),y)
1/y*exp(-x*y)
对于常用随机变量数学期望和方差,MATLAB提供相对应的函数
【例8】随机变量X在(-1,3)服从均匀分布,则求数学期望与方差。
[m,v]=unifstat(-1,3)
m=
1
v=
1.3333
【例9】傅里叶变换和信号分析
MATLAB能利用快速傅立叶变换FFT计算离散傅立叶变换,这用于信号分析和解微分方程。
为了证明MATLAB的傅立叶变换,用0和1之间的随机数干扰5sin(x)+2sin(5x)函数:
依次输入以下语句:
symsx
f=sin(x)*exp(-x^2);
F1=fourier(f)
symsw
g=exp(-abs(w));
F2=fourier(g)
symsu
h=x*exp(-abs(x));
F3=fourier(h,u)
【例10】求解由方程构成的线性方程组。
【例11】仿真模型。
创建一个正弦信号的模型。
四、MATLAB的主要功能
1.数值计算和符号计算功能
MATLAB以矩阵作为数据操作的基本单位,还提供了十分丰富的数值计算函数。
MATLAB和著名的符号计算语言Maple相结合,使得MATLAB具有符号计算功能。
2.绘图功能
MATLAB提供了两个层次的绘图操作:
一种是对图形句柄进行的低层绘图操作,另一种是建立在低层绘图操作之上的高层绘图操作。
3.编程语言
MATLAB具有程序结构控制、函数调用、数据结构、输入输出、面向对象等程序语言特征,而且简单易学、编程效率高。
4.MATLAB工具箱
五、Matlab的特点
MATLAB语言相对于传统的科技编程语言有诸多的优点。
主要包括:
1.易用性
MATLAB是种解释型语言,就像各种版本的BASIC。
和BASIC一样,它简单易用程
序可用作便笺簿求打在命令行处表达式的值,也可执行预先写好的大型程序。
在MATLAB
集成开发环境下,程序可以方便的编写,修改和调试。
这是因为这种语言极易使用,对于教育应用和快速建立新程序的原型,它是一个理想的工具。
许多的编程工具使得MATLAB十分简单易用。
这些工具包括:
一个集成的编译/调试器,在线文件手册,工作台和扩展范例。
2.平台独立性
MATLAB支持许多的操作系统,提供了大量的平台独立的措施。
windows98/2000/NT和许多版本的UNIX系统都支持它。
在一个平台上编写的程序,在其它平台上一样可以正常运行,在一个平台上编写的数据文件在其它平台上一样可以编译。
因此用户可以根据需要把MATLAB编写的程序移植到新平台。
3.预定义函数
MATLAB带有一个极大的预定义函数库,它提供了许多已测试和打包过的基本工程问
题的函数。
例如,假设你正在编写一个程序,这个程序要求你必须计算与输入有关的统计量。
在许多的语言中,你需要写出你所编数组的下标和执行计算所需要的函数,这些函数包括其
数学意义,中值,标准误差等。
像这样成百上千的函数已经在MATLAB中编写好,所以让
编程变得更加简单。
除了植入MATLAB基本语言中的大量函数,还有许多专用工具箱,以帮助用户解决在
具体领域的复杂问题。
例如,用户可以购买标准的工具箱以解决在信号处理,控制系统,通
信,图象处理,神经网络和其他许多领域的问题。
4.机制独立的画图
与其他语言不同,MATLAB有许多的画图和图象处理命令。
当MATLAB运行时,这些标绘图和图片将会出现在这台电脑的图象输出设备中。
此功能使得MATLAB成为一个形象化技术数据的卓越工具。
5.用户图形界面
MATLAB允许程序员为他们的程序建立一个交互式的用户图形界面。
利用MATLAB的这种功能,程序员可以设计出相对于无经验的用户可以操作的复杂的数据分析程序。
6.MATLAB编译器
MATLAB的灵活性和平台独立性是通过将MATLAB代码编译成设备独立的P代码,然后在运行时解释P代码来实现的。
这种方法与微软的VB相类似。
不幸的是,由于MATLAB是解释性语言,而不是编译型语言,产生的程序执行速度慢。
当我们遇到执行速度慢的程序时,我们将会指出其这一特性。
*MATLAB的缺点
MATLAB有两个基本的缺点。
第一,它是解释型语言,其执行速度要比编译型语言慢得多。
这个问题可以通过合理的MATLAB结构得到缓解,也可以在发行广泛使用前编译出MATLAB程序。
第二,他的费用较高。
一个完全版MATLAB编译器的大小是一个C语言或Fortan语言编译器的5到10倍。
但MATLAB能够节省大量的时间在科技编程方面,故MATLAB
在商业编程过程中是节省成本的。
尽管如此,相对于大多数考虑购买的人还是很昂贵的。
幸运的是,它有一个价格便宜的学生专用版本,对学生来说它是学习MATLAB语言的一个重
要工具。
学生版的MATLAB和完全版的MATLAB是基本一致的。
六、Matlab的开发环境
1、Matlab桌面
任何一个MATLAB程序的基本组成单元是数组。
数组是一组数据值的集合,这些数据
被编上行号和列号,拥有唯一的名称。
数组中的单个数据是可以通过带有小括号的数组名访
问,括号内有这个数据的行标和列标,中间用逗号隔开。
标量也被MATLAB当作数组,只不过只有一行和一列。
在第二章我们将学习如何创建和操作MATLAB数组。
当MATLAB运行时,有多种类型的窗口,有的用于接收命令,有的用于显示信息。
三个重要的窗口有命令窗口;
图像窗口;
编辑/调试窗口;
它们的作用分别为输入命令;
显示
图形;
充许使用者创建和修改MATLAB程序。
在本节课中我们将会看到这三个窗口的例子。
当MATLAB程序启动时,一个叫做MATLAB桌面的窗口出现了。
默认的MATLAB桌面结构如图所示。
在MATLAB集成开发环境下,它集成了管理文件、变量和应用程序的许多编程工具。
1、主窗口
MATLAB主窗口是MATLAB的主要工作界面。
主窗口除了嵌入一些子窗口外,还主要包括菜单栏和工具栏。
在MATLAB7.5主窗口的菜单栏,包含File、Edit、Debug、Desktop、Window和Help共6个菜单项。
MATLAB7.5主窗口的工具栏共提供了12个命令按钮和一个当前路径列表框。
命令窗口(TheCommandWindow)
MATLAB桌面的右边是命令窗口。
在命令窗口中,用户可以在命令行提示符(>
)后输
入一系列的命令,这些命令的执行也是在这个窗口中实现的。
举一个简单的例子,假设你要计算一个半径为2.5m的圆的面积。
在命令窗口中的操作如下:
area=pi*2.5^2
area=
19.6350
当回车键敲下的一瞬间,结果被计算了出来,并被存储到一个叫area的变量中(其实是一个1×
1的数组)。
这个变量的数值将显示在命令窗口(TheCommandWindows)所示,而且这个变量能进行进一步的计算。
(注意π是MATLAB预先定义好的变量,所以pi不需要预先声明。
当前路径窗口
当前路径窗口主要显示当前工作在什么路径下,包括M文件的打开路径等,。
当前路径窗口允许用户对MATLAB的路径进行查看和修改,如果修改了路径立即产生作用。
通常启动MATLAB系统之后的默认当前路径是“\Matlab\Work”,如果不改变当前目录,用户自己的工作空间和文件都将保存到该目录。
工作空间窗口
工作空间窗口是MATLAB的重要组成部分,例如表达式x=100产生了一个名为x的变量,而且这个变量x被赋予值100,这个值就被存储在计算机的内存中。
工作空间窗口就是用来显示当前计算机内存中MATLAB变量的名称、数据结构、该变量的字节数及其类型,在MATLAB中不同的变量类型对应不同的变量名图标,所示。
在MATLAB命令窗口中运行的所有命令都共享一个相同的工作空间,所以它们共享所有的变量,初学者应当重视。
命令历史窗口
在默认设置下,命令历史窗口自动显示于MATLAB界面中,用户也可以选择Desktop/Workspace命令调出或隐藏该命令窗口,其窗口形式如图1.19所示。
命令历史窗口显示用户在命令窗口中所输入的每条命令的历史记录,并标明使用时间,这样可以方便用户查询。
如果用户想再次执行某条已经执行过的命令,只需在命令历史窗口中双击该命令;
如果用户需要从命令历史窗口中删除一条或多条命令,只需选中这些命令,并单击右键,在弹出的快捷菜单中选择Deleteselection命令即可。
Start菜单
MATLAB7.5的主窗口左下角有一个Start按钮,单击该按钮会弹出一个菜单,选择其中的命令可以执行MATLAB产品的各种工具,并且可以查阅MATLAB包含的各种资源。
七、MATLAB的帮助系统
MATLAB为用户提供了非常完善的帮助系统,包括帮助命令、帮助窗口、HTML格式帮助、pdf格式帮助及帮助演示等。
有效地使用帮助系统所提供的信息,是用户掌握好MATLAB应用最佳途径。
1、帮助命令
MATLAB帮助命令包括help命令和lookfor命令。
help命令
在MATLAB命令窗口中直接输入help命令将会显示当前帮助系统中所包含的所有项目,即搜索路径中所有的目录名称。
同样,可以通过help加函数名来显示该函数的帮助说明。
lookfor命令
help命令只搜索出那些关键字完全匹配的结果,lookfor命令对搜索范围内的M文件进行关键字搜索,条件比较宽松。
lookfor命令只对M文件的第一行进行关键字搜索。
若在lookfor命令加上-all选项,则可对M文件进行全文搜索。
八、小结
在本章中,我们学到了基本类型的MATLAB窗口,工作区和如何得到在线帮助。
当MATLAB程序启动时,MATLAB桌面就会被显示出来。
在单一位置它集成许多的MATLAB工具。
这些工具包括命令窗口(TheCommandWindows),命令历史窗口,启动平台,数组编
辑器,和当前目录查看器。
命令窗口是最重要的窗口,因为所有的命令都得在此键入,所有的结果在此输出。
用编辑/调试器经常用于创建和修改M文件。
它用于显示M文件的内容,内容用不同的颜色显示出来:
解释,关键字,字符串等等。
图象窗口用于显示图象。
MATLAB用户可以通过帮助空间窗口,help命令,lookfor命令三种方式得到帮助。
帮助空间窗口可以帮助用户访问所有的MATLAB文件设置。
而help命令是一个在命令窗口内显示帮助的方法。
不幸的是,运用这个命令你必须知道你所要帮助的函数的名字。
只要MATLAB函数评论的第一评论句中的单词与搜索词相对应,那么用lookfor命令就可找到,并显示出来。
当用户在命令窗口中键入一个命令,MATLAB按照MATLAB路径特殊编排而成的目录搜索这个命令。
当MATLAB执行了路径中第一个与之对应的M文件,其他的拥有相同名字的M文件将会被忽略。
路径工具(thepathtool)允许使用者添加,删除路径和改变在目录中的顺序。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第一章 Matlab 程序设计 基础