科学计算之MATLAB.pptx

上传人:小飞机 文档编号:6595951 上传时间:2023-11-16 格式:PPTX 页数:50 大小:2.11MB
返回 下载 相关 举报
科学计算之MATLAB.pptx_第1页
第1页 / 共50页
科学计算之MATLAB.pptx_第2页
第2页 / 共50页
科学计算之MATLAB.pptx_第3页
第3页 / 共50页
科学计算之MATLAB.pptx_第4页
第4页 / 共50页
科学计算之MATLAB.pptx_第5页
第5页 / 共50页
点击查看更多>>
资源描述

《科学计算之MATLAB.pptx》由会员分享,可在线阅读,更多相关《科学计算之MATLAB.pptx(50页珍藏版)》请在三一办公上搜索。

1、在欧美各高等学校,Matlab成为线性代数、自动控制理论、数字信号处理、时间序列分析、动态系统仿真、图像处理等诸多课程的基本教学工具,成为本科生、硕士生和博士生的必须掌握的基本技能。在设计研究单位和工业部门,Matlab已被广泛地用于研究和解决各种具体的工程问题。可以预见,Matlab将在我国科学研究和工程应用中发挥越来越大的作用。,1.1 Matlab语言的作用,1.2 MATLAB的发展历史,70年代后期,Cleve Moler担任美国墨西哥大学计算机系系主任,为了让学生方便的调用EISPACK和LINPACK,设计了接口程序,取名MATLAB(MATrix LABoratory),即Ma

2、trix和Laboratory的组合。MATLAB的第一个商业化的版本是1984年推出的是3.0的DOS版本1992年MathWorks 公司于推出了4.0版本1994年的4.2版本扩充了4.0版本的功能,尤其在图形界面设计方面更提供了新的方法。1997年推出的5.0版允许了更多的数据结构,如单元数据、多维矩阵、对象与类等,使其成为一种更方便编程的语言。1999年推出的 MATLAB 5.3版在很多方面又进一步改进了 MATLAB 语言的功能。2000年10月底推出了其全新的 MATLAB 6.0正式版(Release 12),在核心数值算法、界面设计、外部接口、应用桌面等诸多方面有了极大的改

3、进。现在的MATLAB支持各种操作系统,它可以运行在十几个操作平台上,其中比较常见的有基于Windows 9X/NT、OS/2、Macintosh、Sun、Unix、Linux等平台的系统。现在的MATLAB再也不是一个简单的矩阵实验室了,它已经演变成为一种具有广泛应用前景的全新的计算机高级编程语言了。其功能也越来越强大,会不断根据科研需求提出新的解决方法。,1.3 Matlab 特点,1、语言简洁紧凑,库函数丰富,使用方便2、运算符丰富 由于Matlab是用C语言编写的,Matlab提供了和C语言几乎一样多的运算符3、结构化编程,面向对象特性4、程序设计限制宽松,自由度大 无需对矩阵预定义就

4、可以使用5、程序的可移植性很好 基本上不做修改就可以在各种型号的计算机和操作系统上运行6、图形功能强大 数据的可视化非常简单7、功能强大的工具箱8、源程序的开放性 所有Matlab的核心文件和工具文件都是可读可改的源文件9、缺点:和其他高级程序相比,程序的执行速度较慢,1.4MATLAB 工具箱列表,2 MATLAB的桌面环境及入门知识,启动与退出MATLAB MATLAB缺省桌面命令窗口的使用工作空间历史窗口当前目录窗口和搜索路径,2.1 启动与退出MATLAB,启动MATLAB直接用鼠标双击桌面上MATLAB7.1图标或Windows桌面的“开始”“所有程序”“MATLAB7.1”“MAT

5、LAB7.1”。退出MATLAB关闭MATLAB桌面在命令窗口执行quit或exit命令,菜单栏,工具栏,文件编辑窗口,工作空间,历史命令窗口,Start 菜单,命令窗口,命令提示符,2.2 MATLAB缺省桌面,2.2.1 命令窗口的使用,激活命令窗口。“”与闪烁的光标一起表明系统就绪,等待输入。简单计算【例2.2-1】计算(1)在MATLAB命令窗口输入 以下内容:(12+2*(7-4)/32(2)按【Enter】键,指令执行。(3)返回的计算结果:ans=2,常见通用命令命令 含义clc 清除命令窗口的显示内容clear 清除Matlab工作空间中保存的变量who或whos 显示Matl

6、ab工作空间中的变量信息dir 显示当前工作目录的文件和子目录清单cd 显示或设置当前工作目录type 显示指定m文件的内容help或doc 获取在线帮助quit或exit 关闭/推出MATALB,2.2.2 工作空间,查看工作空间内存变量,可以由who、whos。命名新变量。修改变量名删除变量绘图保存变量数据装入数据,2.2.3 历史窗口,历史窗口:首先记录每次启动时间并记录在命令窗口输入命令,此次运行期间,输入的所有命令被记录为一组,并以此次启动时间为标志。使用历史窗口:可以查看命令窗口输入过的命令或语句可以选择一条或多条命令执行拷贝、执行、创建M文件等。,要清除历史记录,可以选择Edit

7、菜单中的Clear Command History 命令,2.2.4 当前目录窗口和搜索路径,当前目录窗口:指Matlab运行时的工作目录。只有在当前目录和搜索路径下的文件、函数才可以被运行和调用。如果没有特殊指明,数据文件也将存放在当前目录下;用户可以将自己的工作目录设置成当前目录,从而使得所有操作都在当前目录中进行。,搜索路径:指Matlab执行过程中对变量、函数和文件进行搜索的路径。在File菜单中选择Set Path命令或在命令窗口输入pathtool命令,出现搜索路径设置对话框:,!修改完搜索路径后,需要进行保存。,3 MATLAB 数值计算,MATLAB中的变量与表达式数组构造矩阵

8、运算关系逻辑运算数据分析,3.1 MATLAB中的变量与表达式,变量MATLAB 中变量名是以字母开头,可以由字母、数字或下划线组成MATLAB 区分大小写,他的命令和函数全是小写的MATLAB 变量名不超过19个字符表达式MATLAB中的表达式由运算符、函数、变量名和数字组成MATLAB语句由变量和表达式组成,由两种常见形式:形式1:表达式。形式2:变量=表达式。若不想显示形式1或2的运算结果,可在表达式后加分号“;”。,特殊变量,3.2 数组构造,以左方括号开始,以空格或逗号为间隔输入元素,最后以右方括号结束X=0 1 3 5 7 9 10X=0,1,3,5,7,9,10X=0 1 3 5

9、 7 9 10,a:步长:b a:b(默认 步长=1)x=0:0.5:2y=0:5x=0 0.5000 1.0000 1.5000 2.0000 y=0 1.0000 2.0000 3.0000 4.0000 5.0000,以空格或逗号分隔,指定不同的列以分号或回车分隔,指定不同的行A=2,4,6,8;1 3 5 7;0 0 0 0;1,0,1,0,3.3 矩阵的运算,矩阵与标量间的四则运算x=1 3 4;2,6,5;3 2,4a=2*x-2,矩阵间的四则运算必须具有相同的维数,对应元素进行运算+-.*./.乘(*):要求第一个数组的列数等于第二个数组的行数。a=1 3 4;2,6,5;3 2

10、,4b=2 3 1;4 1 2;4 5 3c=a+bd=a.*be=a./bf=a*b,a./b=b.a,矩阵的幂运算.乘方():在指数n为自然数时相当于n次自乘。a=1 3 4;2,6,5;3 2,4b=2 3 1;4 1 2;4 5 3c=a.2d=a2e=a.b,特殊的矩阵,3.4 关系逻辑运算,关系操作符 大于=大于等于=等于=不等于逻辑操作符&与|或 非,运算法则:若关系式成立,结果为1;若关系式不成立,结果为0.,运算法则:若逻辑真,结果为1;若逻辑假,结果为0.,3.5数据分析常用函数,4 MATLAB数据可视化,二维曲线绘图的基本操作多次叠绘和多子图绘制图形的辅助操作 坐标、刻

11、度和分格线控制刻度、分格线和坐标框,4.1 二维曲线绘图的基本操作,plot指令的基本调用格式(1)plot(x)x为向量时,以该元素的下标为横坐标、元素值为纵坐标绘出曲线x为实数二维数组时,则按列绘制每列元素值相对其下标的曲线,曲线数等于x数组的列数。x为复数二维数组时,则按列分别以数组的实部和虚部为横、纵坐标绘制多条曲线(2)plot(x,y)x、y为同维数组时,绘制以x、y元素为横纵坐标的曲线x为向量,y为二维数组、且其列数或行数等于x的元素数时,绘制多条不同颜色的曲线x为二维数组,y为向量时,情况与上相同,只是y仍为纵坐标。(3)plot(x1,y1,x2,y2,)绘制以x1为横坐标、

12、y1为纵坐标的曲线1,以x2为横坐标、y2为纵坐标的曲线2,等等。其中x为横坐标,y为纵坐标,绘制y=f(x)函数曲线。,在0,2区间内,绘制曲线x=0:pi/100:2*pi;y=2*exp(-0.5*x).*sin(2*pi*x);plot(x,y),绘制曲线t=-pi:pi/100:pi;x=t.*cos(3*t);y=t.*sin(t).2;plot(x,y),4.2多次叠绘和多子图,多次叠绘多次调用plot命令在一幅图上绘制多条曲线,需要hold指令的配合。hold on 保持当前坐标轴和图形,并可以接受下一次绘制。hold off 取消当前坐标轴和图形保持,这种状态下,调用plot

13、绘制完全新的图形,不保留以前的坐标格式、曲线。,重绘波形 及其包络线。t=(0:pi/100:pi);%长度为101的时间采样列向量y1=sin(t)*1,-1;%包络线函数值,是(101x2)的矩阵y2=sin(t).*sin(9*t);%长度为101的调制波列向量t3=pi*(0:9)/9;y3=sin(t3).*sin(9*t3);plot(t,y1,r:)hold onplot(t,y2,b)plot(t3,y3,bo)axis(0,pi,-1,1)%控制轴的范围 hold off,MATLAB允许在同一图形窗口布置几幅独立的子图。具体指令:subplot(m,n,k)使(mxn)幅子

14、图中第k个子图成为当前图subplot(postion,left,bottom,width,height)在指定的位置上开辟子图,并成为当前图说明:subplot(m,n,k)的含义:图形窗口包含(mxn)个子图,k为要指定的当前子图的编号。其编号原则:左上方为第1子图,然后向右向下依次排序。该指令按缺省值分割子图区域。subplot(postion,left,bottom,width,height)用于手工指定子图位置,指定位置的四元组采用归一化的标称单位,即认为整个图形窗口绘图区域的高、宽的取值范围都是0,1,而左下角为(0,0)坐标。产生的子图彼此独立。所有的绘图指令均可以在子图中使用。

15、,t=(pi*(0:1000)/1000);y1=sin(t);y2=sin(10*t);y12=sin(t).*sin(10*t);subplot(2,2,1),plot(t,y1);axis(0,pi,-1,1)subplot(2,2,2),plot(t,y2);axis(0,pi,-1,1)subplot(position,0.2,0.05,0.6,0.45)plot(t,y12,b-,t,y1,-y1,r:);,4.3绘制图形的辅助操作,曲线线形控制符 曲线颜色控制符,曲线的线形控制符、颜色控制符、数据点形控制符可以组合使用其先后次序不影响绘图结果也可以单独使用。,例子Specify

16、Line properties t=(0:15)*2*pi/15;y=sin(t);subplot(3,2,1),plot(t,y);title(Lins style is default)subplot(3,2,2),plot(t,y,o);title(Lins style is o)subplot(3,2,3),plot(t,y,k:);title(Lins style is k:)subplot(3,2,4),plot(t,y,k:*);title(Lins style is k:*)subplot(3,2,5),plot(t,y,m-d);title(Lins style is m-d

17、)subplot(3,2,6),plot(t,y,r-p);title(Lins style is r-p),4.4坐标、刻度和分格线控制,例子绘制椭圆,长轴为3.25,短轴为1.15t=0:2*pi/99:2*pi;x=1.15*cos(t);y=3.25*sin(t);%y为长轴,x为短轴subplot(2,2,1);plot(x,y);axis offtitle(axis off);subplot(2,2,2);plot(x,y);axis image;title(axis image);subplot(2,2,3);plot(x,y);axis equal;title(axis Equ

18、al);subplot(2,2,4);plot(x,y);axis square;title(axis Square);,4.5刻度、分格线和坐标框,分格线与grid指令 grid on画出分格线grid off不画分格线MATLAB的缺省设置是不画分格线;分格线的疏密取决于坐标刻度(改变坐标刻度,可改变分格线的疏密)。坐标框box on控制加边框线box off 控制不加边框线刻度设置指令及格式:set(gca,xtick,xs,ytick,ys)xs、ys可以使任何合法的实数向量,用于分别设置x、y轴的刻度。,绘制y=1-exp(-0.3*t).*cos(0.7*t)t=6*pi*(0:1

19、00)/100;y=1-exp(-0.3*t).*cos(0.7*t);tt=t(find(abs(y-1)0.05);ts=max(tt);plot(t,y,r-);grid on;axis(0,6*pi,0.6,max(y);title(y=1-exp(-alpha*t)*cos(omega*t);hold on;plot(ts,0.95,bo);hold off;set(gca,xtick,2*pi,4*pi,6*pi,ytick,0.95,1,1.05,max(y);grid on;,5 Matlab程序设计,Matlab命令的执行方式程序控制结构顺序结构条件结构循环结构,5.1 Ma

20、tlab命令的执行方式,交互式命令执行方式(命令窗口)逐条输入,逐条执行,操作简单、直观,但速度慢,执行过程不能保留。M文件的程序执行方式 将命令编成程序存储在一个文件中(M文件),依次运行文件中的命令,可以重复进行。,例:建立文件将变量a、b的值互换。命令文件:clear;a=1:10;b=11,12,13,14;15,16,17,18;c=a;a=b;b=c;ab将文件保存为exch,并在命令窗口执行。执行结果:a=11 12 13 14 15 16 17 18b=1 2 3 4 5 6 7 8 9 10,5.2 程序控制结构,顺序结构选择结构循环结构 任何复杂的程序都可以由这3种基本结构

21、构成。,顺序结构例5.2 求一元二次方程 的根。由于Matlab能进行复数运算,所以不需要判断方程的判别式,可直接根据求根公式求根。程序如下:a=input(a=?);b=input(b=?);c=input(c=?);d=b*b-4*a*c;x=(-b+sqrt(d)/(2*a),(-b-sqrt(d)/(2*a);disp(x1=,num2str(x(1),x2=,num2str(x(2);程序输出为:a=?4b=?78c=?54x1=-0.7188,x2=-18.7812,选择结构根据给定的条件成立或不成立,分别执行不同的语句。(if语句,switch语句和try语句)1.if语句在Ma

22、tlab中,if语句有3种格式。,(2)双分支if语句语句格式:if 条件 语句组 1else 语句组 2end当条件成立时,执行语句组1,否则执行语句组2,然后再执行if语句的后续语句,(1)单分支if语句语句格式:if 条件 语句组end例如:当x是整数矩阵时,输出x的值if fix(x)=x disp(x);End,(3)多分支if语句语句格式:if 条件1 语句组 1elseif 条件2 语句组 2elseif 条件m 语句组 melse 语句组nend,2、switch语句switch语句根据表达式的取值不同,分别执行不同的语句,其语句格式:switch 表达式case 表达式1 语

23、句组1case 表达式2 语句组2case 表达式m 语句组motherwise 语句组 nend,switch子句后面的表达式应为一个标量或一个字符串;case子句后面的表达式不仅可以为一个标量或一个字符串,还可以为一个元胞矩阵。,3.try语句 try语句是一种试探性执行语句,其语句格式为:try 语句组1 catch 语句组2 end try语句先试探性执行语句组1,如果在执行过程中出现错误,则将 错误信息赋给保留的lasterr变量,并转去执行语句组2.,5.2.3 循环结构,循环是指按照给定的条件,重复执行指定的语句,Matlab提供了两种实现循环结构的语句:for语句和while语

24、句。1、for语句for语句的格式为:for 循环变量=表达式1:表达式2:表达式3 循环体语句end其中表达式1的值为循环变量的初值,表达式2的值为步长,表达式3的值为循环变量的终值。步长为1时,表达式2可以省略。,2、while语句while语句的一般格式为:while条件 循环体语句end其执行过程为:若条件成立,则执行循环体语句,执行后再判断条件是否成立,如果不成立则跳出循环。,3、break语句和continue语句它们一般与if语句配合使用。break语句用于终止循环的执行。当在循环体内执行到该语句时,程序将跳出循环,继续执行循环语句的下一语句。continue语句控制跳过循环体中的某些语句。当在循环体内执行到该语句时,程序将跳过循环体中所有剩下的语句,继续下一次循环。,

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

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号