matlab数学建模基础教程课件

上传人:29 文档编号:242760111 上传时间:2024-09-02 格式:PPT 页数:256 大小:2MB
返回 下载 相关 举报
matlab数学建模基础教程课件_第1页
第1页 / 共256页
matlab数学建模基础教程课件_第2页
第2页 / 共256页
matlab数学建模基础教程课件_第3页
第3页 / 共256页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,MATLAB,数学建模基础教程,主讲者:程建,MATLAB 数学建模基础教程主讲者:程建,MATLAB,的概述,MATLAB,的历史,MATLAB,的功能,其它相关软件,MATLAB的概述MATLAB的历史,MATLAB,的历史,MATLAB 1.0 1984,MATALB 2 1986,MATLAB 3 1987,MATLAB 3.5 1990,MATLAB 4 1992,MATLAB 4.2c R7 1994,MATLAB 5.0 R8 1996,MATLAB 5.1 R9 1997,MATLAB 5.1.1 R9.1 1997,MATLAB 5.2 R10 1998,MATLAB 5.2.1 R10.1 1998,MATLAB 5.3 R11 1999,MATLAB 5.3.1 R11.1 1999,MATLAB 6.0 R12 2000,MATLAB 6.1 R12.1 2001,MATLAB的历史 MATLAB 1.0 1984,MATLAB,的历史,MATLAB,是,MAT,rix,LAB,oratory,的缩写,是一款由美国,The MathWorks,公司出品的商业,数学软件,。,MATLAB,是一种用于,算法,开发、,数据可视化,、,数据分析,以及,数值计算,的高级技术计算语言和,交互式环境,。除了,矩阵运算,、绘制函数,/,数据图像等常用功能外,,MATLAB,还可以用来创建,用户界面,及与调用其它语言(包括,C,,,C+,和,FORTRAN,)编写的程序。,尽管,MATLAB,主要用于数值运算,但利用为数众多的附加工具箱(,Toolbox,)它也适合不同领域的应用,例如控制系统设计与分析、图像处理、信号处理与通讯、金融建模和分析等。另外还有一个配套软件包,Simulink,,提供了一个可视化开发环境,常用于系统模拟、动态,/,嵌入式系统开发等方面。,MATLAB的历史 MATLAB是MATrixLABora,4,MATLAB,的历史,版本歷史,:,到,7.1,版为止,,MATLB,的释放编号均以数字来命名,例如,R7,,,R12.1,,,R14 SP1,等;从,7.2,版开始,释放编号以年份来命名,每年,3,月份推出的用,a,表示,,9,月份推出的则以,b,表示,例如,R2006a,代表,2006,年,3,月推出的版本,,R2009b,指,2009,年下半年推出的版本,MATLAB 6.5 R13 2002,MATLAB 6.5.1 R13SP1 2003,MATLAB 6.5.2 R13SP2 2003,MATLAB 7 R14 2004,MATLAB 7.0.1 R14SP1 2004,MATLAB 7.0.4 R14SP2 2005,MATLAB 7.1 R14SP3 2005,MATLAB 7.2 R2006a 2006,MATLAB 7.3 R2006b 2006,MATLAB 7.4 R2007a 2007,MATLAB 7.5 R2007b 2007,MATLAB 7.6 R2008a 2008,MATLAB 7.7 R2008b 2008,MATLAB 7.8 R2009a 2009.3.6,MATLAB 7.9 R2009b 2009.9.4,MATLAB 7.10 R2010a 2010.3.5,MATLAB的历史版本歷史:到7.1版为止,MATLB的释放,5,MATLAB,的主要功能,1,数值计算和符号计算功能,MATLAB,以矩阵作为数据操作的基本单位,还提供了十分丰富的数值计算函数。,MATLAB,和著名的符号计算语言,Maple,相结合,使得,MATLAB,具有符号计算功能。,MATLAB的主要功能1数值计算和符号计算功能MATLA,6,MATLAB,的主要功能,2,绘图功能,MATLAB,提供了两个层次的绘图操作:一种是对图形句柄进行的低层绘图操作,另一种是建立在低层绘图操作之上的高层绘图操作。,MATLAB的主要功能2绘图功能MATLAB提供了两个层,7,例如描绘一个在-4,4区间内的正弦函数:, x = -4:0.05:4;, y = sin(x);, plot(x,y),例如描绘一个在-4,4区间内的正弦函数: x =,8,利用,plot,命令也可以在同一幅图中描绘多个函数图形:, x = 0:.01:2*pi;, y1 = sin(x);, y2 = sin(2*x);, y3 = sin(4*x);, plot(x, y1; y2; y3), legend(y=sin(x), y=sin(2x),y=sin(4x),利用plot命令也可以在同一幅图中描绘多个函数图形: ,9,用,MATLAB,的画图命令可以生成复杂的三维图形, t = linspace(0, 2*pi, 512);, u,v = meshgrid(t);, a = -0.4; b = .5; c = .1;, n = 3;, x = (a*(1 - v/(2*pi) .* (1+cos(u) + c) .* cos(n*v);, y = (a*(1 - v/(2*pi) .* (1+cos(u) + c) .* sin(n*v);, z = b*v/(2*pi) + a*(1 - v/(2*pi) .* sin(u);, surf(x,y,z,y), axis off, axis equal, colormap(hsv(1024), shading interp, material shiny, lighting phong, camlight(left, infinite), view(-160 25),用MATLAB的画图命令可以生成复杂的三维图形 t =,10,MATLAB,的主要功能,3,编程语言,MATLAB,具有程序结构控制、函数调用、数据结构、输入输出、面向对象等程序语言特征,而且简单易学、编程效率高。,MATLAB的主要功能3编程语言MATLAB具有程序结构,11,MATLAB,的主要功能,4,MATLAB,工具箱,MATLAB,包含两部分内容:基本部分和各种可选的工具箱。,MATLAB,工具箱分为两大类:功能性工具箱和学科性工具箱。,MATLAB的主要功能4MATLAB工具箱 MAT,12,Matlab,常用工具箱,Matlab Main Toolboxmatlab,主工具箱,Control System Toolbox,控制系统工具箱,Communication Toolbox,通讯工具箱,Financial Toolbox,财政金融工具箱,System Identification Toolbox,系统辨识工具箱,Fuzzy Logic Toolbox,模糊逻辑工具箱,Bioinformatics,Toolbox,生物分析工具箱,Matlab常用工具箱Matlab Main Toolbox,13,Image Processing Toolbox,图象处理工具箱,Database Toolbox,数据库工具箱,Model predictive Control Toolbox,模型预测控制工具箱,Neural Network Toolbox,神经网络工具箱,Optimization Toolbox,优化工具箱,Partial Differential Toolbox,偏微分方程工具箱,Robust Control Toolbox,鲁棒控制工具箱,Image Processing Toolbox图象处理,14,Signal Processing Toolbox,信号处理工具箱,Spline Toolbox,样条工具箱,Statistics Toolbox,统计工具箱,Symbolic Math Toolbox,符号数学工具箱,Simulink Toolbox,动态仿真工具箱,Virtual Reality,Toolbox,虚拟现实工具箱,Wavelet Toolbox,小波工具箱,等等,.,而且每个新出的版本都在增加、更新完善。,Signal Processing Toolbox信号处,15,控制系统工具箱,Control System Toolbox,连续系统设计和离散系统设计,状态空间和传递函数以及模型转换,时域响应(脉冲响应、阶跃响应、斜坡响应),频域响应(Bode图、Nyquist图),根轨迹、极点配置,控制系统工具箱,16,遗传算法和直接搜索工具箱,Genetic Algorithm and Direct Search Toolbox,是针对,MATLAB,优化处理算法的扩展,它在,MATLAB,和,Optimization Toolbox,的基础上,提供遗传算法和直接搜索的基本功能。,使用遗传算法工具箱的两种方法:,直接在命令窗口使用函数。,x fval = ga(fitnessfun, nvars, options),遗传算法和直接搜索工具箱Genetic Al,17,matlab数学建模基础教程课件,18,2.,图形界面互动操作方法。,可选内部函数,ackleyfcn,或者,rastriginsfcn,2. 图形界面互动操作方法。,19,matlab数学建模基础教程课件,20,Rastrigins Function,Rastrigins Function,21,matlab数学建模基础教程课件,22,可以设置参数来调整显示结果,可以设置参数来调整显示结果,23,直接搜索算法,同样有两种类似的运行方法,直接搜索算法同样有两种类似的运行方法,24,优化工具箱,(,没有图形操作界面,)Optimization Toolbox,线型规划和二次规划,求函数的最大值和最小值,多目标优化,约束条件下的优化,非线型方程求解,Demo,:,toolbox/optimization,优化工具箱(没有图形操作界面)Optimization T,25,求解线性规划,线性规划是一种优化方法,,Matlab,优化工具箱中有现成函数,linprog,对如下式描述的,LP,问题求解:,求解线性规划 线性规划是一种优化方法,Matlab优化工具箱,26,matlab数学建模基础教程课件,27,解,:,编写,M,文件小,xxgh1.m,如下:,c=-0.4 -0.28 -0.32 -0.72 -0.64 -0.6;,A=0.01 0.01 0.01 0.03 0.03 0.03;0.02 0 0 0.05 0 0;0 0.02 0 0 0.05 0;0 0 0.03 0 0 0.08;,b=850;700;100;900;,Aeq=; beq=;,vlb=0;0;0;0;0;0; vub=;,x,fval=linprog(c,A,b,Aeq,beq,vlb,vub),解:编写M文件小xxgh1.m如下:,28,解,:,编写,M,文件,xxgh2.m,如下:,c=6 3 4;,A=0 1 0;,b=50;,Aeq=1 1 1;,beq=120;,vlb=30,0,20;,vub=;,x,fval=linprog(c,A,b,Aeq,beq,vlb,vub),matlab数学建模基础教程课件,29,信号处理工具箱,Signal Processing Toolbox,数字和模拟滤波器设计、应用及仿真,谱分析和估计,FFT,、,DFT,等变换,参数化模型,matlab数学建模基础教程课件,30,学科前沿最新的工具箱,模糊控制逻辑工具箱,友好的交互设计界面,自适应神经,-,模糊学习、聚类以及,Sugeno,推理。,神经网络工具箱,神经网络系统具有集体运算的能力和自适应的学习能力。具有很强的容错性和鲁棒性,善于联想、综合和推广。,学科前沿最新的工具箱 模糊控制逻辑工具箱,31,工具箱的扩充功能:,用户可以修改工具箱中的函数,更为重要的是用户,可以通过编制,m,文件来任意地添加工具箱中原来没有的工具函数,。此功能充分体现了,matlab,语言的开发性。,工具箱的扩充功能: 用户可以修改工具箱中,32,二、通用工具箱,Matlab,主工具箱,前面课程所介绍的数值计算、符号运算、绘图以及句柄绘图都是,matlab,主工具箱的内容,是,matlab,的基本部分,也是我们课程的重点。,Matlab,主工具箱位于:,c:matlabtoolboxmatlab,matlab,主工具箱是任何版本的,matlab,都不可缺少的。,二、通用工具箱Matlab主工具箱,33,除,toolboxmatlab,之外的工具箱,在比较完整的专业版,matlab,语言中有,20,多个工具箱。这些工具箱是需要单独选择购买的。,matlab,主工具箱共有,31,个函数库,datafun ,数据分析函数库,sonnds ,声音处理函数库,dde ,动态数据交换函数库,elfun ,初等数学函数库,specmat ,特殊矩阵函数库,除toolboxmatlab之外的工具箱,在比较完整的专业,34,elmat ,初等矩阵和时间函数库,funfun ,函数功能和数学分析函数库,general ,通用命令函数库,graphics ,通用图形函数库,iofun ,底层输入输出函数库,lang ,语言结构函数库,matfun ,矩阵线性代数函数库,ops ,运算符和逻辑函数库,plotxy ,二维绘图函数库,plotxyz ,三维绘图函数库,elmat 初等矩阵和时间函数库,35,color ,颜色和光照函数库,polyfun ,多项式函数库,sparfun ,稀疏矩阵函数库,strfun ,字符串函数库,demos matlab,演示函数库,Matlab6,新增函数库,:,uitools ,图形界面函数库,datatypes ,数据类型函数库,graphics ,句柄绘图函数库,graph3d ,三维绘图,color 颜色和光照函数库,36,各函数库中的函数可用,help,函数库名,查询,或,type,函数名,方法查询,例:,help plotxy,Two dimensional graphics.,Elementary X-Y graphs.,plot - Linear plot.,loglog - Log-log scale plot.,semilogx - Semi-log scale plot.,semilogy - Semi-log scale plot.,fill - Draw filled 2-D polygons.,各函数库中的函数可用help 函数库名查询,或,37,Graph annotation.,title - Graph title.,xlabel - X-axis label.,ylabel - Y-axis label.,text - Text annotation.,gtext - Mouse placement of text.,grid - Grid lines.,See also PLOTXYZ, GRAPHICS.,Graph annotation.,38,2.,符号运算工具箱,主要功能以符号为对象的数学。,在大学教学中,符号数学是各专业都能用到的。,符号运算无须事先对独立变量赋值,,运算结果以标准的符号形式表达。,特点:, 运算对象可以是没赋值的符号变量, 可以获得任意精度的解,2. 符号运算工具箱主要功能以符号为对象的数学。,39,符号运算的功能,符号表达式、符号矩阵的创建,符号可变精度求解,符号线性代数,因式分解、展开和简化,符号代数方程求解,符号微积分,符号微分方程,符号运算的功能符号表达式、符号矩阵的创建,40,例如:,z =a*t2+b*t+c;,r =solve(z,t) ,对缺省变量求解,r =,1/2/a*(-b+(b2-4*a*c)(1/2),1/2/a*(-b-(b2-4*a*c)(1/2),例如:,41,对任意变量求解,r =solve(z,b),r =,-(a*t2+c)/t,r =solve(z,c),r =,-a*t2-b*t,r =solve(z,a),r =,-(b*t+c)/t2,对任意变量求解,42,3. Simulink,动态仿真工具箱,simulink,工具箱简介,simulink,是实现动态系统建模、仿真和分析的一个集成环境,,使得,matlab,的功能得到进一步扩展,它可以非常容易的实现可视化建模,把理论研究和工程实践有机的结合在一起。,大部分专用工具箱只要以,matlab,主包为基础就能运行,有少数工具箱(通讯工具箱、信号处理工具箱等)则要求有,simulink,工具箱的支持。,3. Simulink动态仿真工具箱simulink工具箱简,43,由于,matlab,和,simulink,是集成在一起的,因此用户可以在两种环境下对自己的模型进行仿真、分析和修改。,不用命令行编程,由方框图产生,m,文件,(s,函数,),。,当创建好的框图保存后,相应的,m,文件就自动生成,这个,.m,文件包含了该框图的所有图形及数学关系信息。,框图表示比较直观,容易构造,运行速度较快。,由于matlab和simulink是集成在一起的,因此用户可,44,Simulink,优点,适应面广:包括线性、非线性系统;离散、连续系统;定性系统。,结构和流程清晰:以方块图形式呈现,仿真精细、贴近实际,可实现物理仿真;计算机仿真;半实物仿真;虚拟仿真;构造仿真。,Simulink优点,45,simulink,的模型:,simulink,模型在视觉上表现为方框图,在文件上则是扩展名为,m,的,ASCII,代码(,matlab7,是扩展名为,mdl,的,ASCII,代码);在数学上体现为一组微分方程或差分方程;在行为上模拟了物理器件构成的实际系统的动态特性。,simulink,的一般结构:,输入,系统,输出,simulink 的模型:输入系统输出,46, 仿真原理,当在框图视窗中进行仿真的同时,,matlab,实际上是运行保存于,simulink,内存中,s,函数的映象文件,而不是解释运行该,m,文件。,s,函数并不是标准,m,文件,它可以是,m,文件,也可以是,c,或,c+,程序,通过一定的规则让,simulink,的模型或模块能够被调用。,例:连体弹簧振子运动仿真模型, dblcart1, 仿真原理,47,matlab数学建模基础教程课件,48,击三角运行仿真模型,击三角运行仿真模型,49,结构图创建方法,一个动态系统的创建过程,就是一个方框图的绘制过程,具体步骤:,在,matlab,命令窗口键入,simulink,或者单击,simulink,快捷键, 结构图创建方法,50,信号源库,离散模块库,非线性模块库,其它模块库,仿真连接模块库,线性模块库,输出模块库,信号源库离散模块库非线性模块库其它模块库仿真连接模块库线性模,51,matlab数学建模基础教程课件,52,例:对满足,数学规律的过程进行仿真,结果用示波器来显示,仿真时间,t,为,10,个单位。,解题思路:本题需要积分模块,(,积分模块的输入为 ,输出为,x),、正弦波模块作为数学处理的模块。,例:对满足,53,matlab数学建模基础教程课件,54,matlab数学建模基础教程课件,55,例:模拟一个微分方程,x = -2x + u,u,x,x,-2x,.,.,例:模拟一个微分方程u xx-2x.,56,方框图绘制完毕,一个动态系统模型也就创建好了。,选择,File,菜单,Save,保存图形,就自动生成一个可在,matlab,命令窗口运行的,m,文件。,然后就可用,simulation,菜单中,start,开始仿真了。,方框图绘制完毕,一个动态系统模型也就创建好了。,57,仿真结果 :,仿真结果 :,58,matlab数学建模基础教程课件,59,三、工具箱和工具箱函数的查询办法,matlab,的目录结构,目录树,c:matlabbin,c:matlabextern,c:matlabsimulink,c:matlabtoolboxcomm,c:matlabtoolboxcontrol,c:matlabtoolboxsymbolic,.,.,.,三、工具箱和工具箱函数的查询办法matlab的目录结构.,60,matlabbin,该目录包含,matlab,系统运行文件,,matlab,帮助文件及一些必需的二进制文件。,matlabextern,包含,MATLAB,与,C, FORTRAN,语言的交互所需的函数定义和连接库。,matlabsimulink,包含建立,simulink MEX-,文件所必需的函数定义及接口软件。,matlabtoolbox,各种工具箱,,Math Works,公司提供的商品化,matlab,工具箱有,30,多种。,toolbox,目录下的子目录数量是随安装情况而变的。,matlabbin 该目录包含matlab系统运行文,61,2.,工具箱,matlab toolbox,工具箱在,windows,下由目录检索得到。,也可以在,matlab,下得到,启动,matlab,后,cd_ ., matlab,缺省目录是,bin,,回到,matlab,目录下,cd_toolbox,2. 工具箱,62,dir,工具箱清单,. compiler fixpoint lmi nag qft,. control fuzzy local ncd robust,ada symbolic dspblks hosa matlab nnetsignal uitools codegen fdident ident mpcoptim simulink wavelet comm finance splinespde esmutools stats,dir 工具箱清单,63,3.,工具箱函数清单的获得,所有工具箱中都有函数清单文件,contents.m,可用各种方法得到工具箱函数清单, 执行在线帮助命令,help,工具箱名称,列出该工具箱中,contents.m,的内容,显示该工具箱中所有函数清单,例如:,help symbolic,help optim,函数的查询:,help,函数名,3. 工具箱函数清单的获得,64,使用,type,命令得到工具箱函数的清单,type signalcontents,type optimcontents,如果在当前工具箱目录下可用,help contents,type contents,得到该工具箱的函数清单, 由于,contents .m,为文本文件,可以通过任何文本编辑器打开阅读,如:,edit,、,word,、写字板、记事本, 使用type命令得到工具箱函数的清单,65,4. matlab,函数的查阅与定位,which,函数名,给函数定位,例如,:,which laplace,d:matlab42toolboxsymboliclaplace.m,which fft2,d:matlab42toolboxmatlabdatafunfft2.m,which poly,d:matlab42toolboxmatlabpolyfunpoly.m,4. matlab函数的查阅与定位which 函数名 ,66,which constr,d:matlab42toolboxoptimconstr.m,which plot,plot is a built-in function.,which,命令只能定位,matlab,的外部命令,而对内部命令是无效的。,matlab,内部函数只能通过,contents.m,工具箱清单文件来查询,which constr,67,matlab,函数的查询与定位,在,matlab,命令窗口键入,peaks,type peaks,得到,peaks.m,函数的清单,试确定下面,matlab,函数在工具箱中的位置,if nargin isstudent meshgrid max,disp surf axis xlabel,matlab函数的查询与定位,68,工具箱的添加,很多时候我们要将一个工具箱添加到到系统中来运行。,如果是,Matlab,安装光盘上的工具箱,重新执行安装程序,选中即可。,如果是单独下载的工具箱,一般情况下仅需要把新的工具箱解压到某个目录,(,例如,toolbox,目录下,),,然后用,addpath(,对于多个目录的使用,genpath(),或者,pathtool,添加工具箱的路径,然后用,which newtoolbox_command.m,来检验是否可以访问。如果能够显示新设置的路径,则表明该工具箱可以使用了。,具体请看工具箱自己代的,readme,文件。,如果是自己编写的工具箱添加方法同上。,工具箱的添加很多时候我们要将一个工具箱添加到到系统中来运行。,69,*,70,who,列出在,MATLAB,工作空间中已有的变量,whos,列出驻留变量的同时,还给出维数及性质,clear,删除内存中的变量(数据),clc,删除命令窗口的内容(已使用过的命令),home,光标移到命令窗口的左上角,clf,删除图形窗口的内容,调出刚才使用过的命令,quit,退出,MATLAB,11/ 15,MATLAB,常用函数介绍,MATLAB,命令窗口的部分通用命令,*70who 列出在MATLAB工作空间中已有的变量,其它相关软件,Maple,Maple,是,Waterloo Maple Inc.,(简称,Maplesoft,)开发的商业计算机代数系统,用于快速计算、开发设计表单、教学基本概念或建立高保真模拟模型等。最新版本是,2010,年,4,月发布的第,14,版,分,Student,(学生版)、,Academic,(高校版)、,Professional,(专业版)和,Personal,(个人版)。,其它相关软件Maple,71,其它相关软件,Mathematica,Mathematica,是,斯蒂芬,沃爾夫勒姆,开发的技术运算软件,开发工作现由,Wolfram Research,公司负责。最新版本是,2010,年,11,月发布的,Mathematica 8,其它相关软件Mathematica,72,LabVIEW,LabVIEW,是,美国国家仪器公司,开发的可视化编程平台,主要用于,数据采集,,,仪器控制,和,工业自动化,。最新版本是,2010,年,8,月发布的,LabVIEW 2010,LabVIEW,73,FreeMat,FreeMat,是一个与,MATLAB,和,互動式數據語言,(,IDL,)很类似的数值计算平台及程序语言。最新版本是,2009,年,10,月发布的,FreeMat 4.0,FreeMat,74,GNU Octave,GNU Octave,是一种主要用于数值计算的高级语言。它除了提供用数值方法解决线性和非线性问题的命令行界面,还提供了一种与,MATLAB,大抵兼容的语言。最新版本是,2010,年,1,月发布的,3.2.4,。,GNU Octave,75,Scilab,Scilab,是一个交互性的数值运算平台,主要用于工程和科学应用方面,例如航空航天、汽车、能源、金融、化学、生物、医学、国防等。最新版本是,5.3.3,。,Scilab,76,ScicosLab,ScicosLab,是由一些曾在,INRIA,和,ENPC,参与,Scilab,开发的研究人员,在,Scilab BUILD4,版本的基础上开发出來的,GTK+,版本,它集成了建模,/,模拟工具,Scicos,及其它数量众多的工具箱,被认为是“惟一一款可以与商业软件,MATLAB/Simulink,及,MATRIXx/SysstemBuild,媲美的开源软件”。最新稳定版本是,4.3,。,ScicosLab,77,MATLAB,程序设计基础,MATLAB,语言的基本要素,MATLAB,语言的核心,矩阵,单元型数据和结构型数据,M,文件,流程控制语句,MATLAB程序设计基础MATLAB语言的基本要素,*,79,MATLAB,语言的基本要素,变量,变量不需要事先声明,也不需要指定变量类型,它会自动根据所赋予变量的值或对变量的操作来确定变量的类型;赋值过程中,如果变量已存在,则用新值代替旧值,以新的类型代替旧的类型。,变量的命名规则:,变量名区分大小写;,变量名长度不超过,31,位,第,31,位之后的字符被忽略;,变量名以字母开头,变量名中可以包含字母、数字、下划线,但不能使用标点。,变量一般为局部变量,即仅在其调用的,M,文件内部有效;若要定义全局变量,须在变量前加关键字,global,。,Matlab,语言主要是由几个基本要素构建而成的,其中包括变量、常量、数值、字符串、运算符及标点等。,回到主目录,*79MATLAB语言的基本要素变量 Matla,*,80,常量,matlab,中预定义的一些特殊的量。,i,j,虚数单位,Realmin,最小的正浮点数,,pi,圆周率,Realmax,最大的浮点数,,eps,浮点运算的相对精度,Inf,无穷大,NaN Not-a-Number,,表示不定值,例如:,pi,ans = %ans,是默认的结果变量,3.1416,*80常量,*,81,1/0,Warning: Divide by zero.,ans =,Inf,0/0,Warning: Divide by zero.,ans =,NaN,*811/0,*,82,定义变量时应避免与常量名相同,如果改变了某个常量的值,可以用“,clear+,常量名”命令来恢复该常量的初始设定值。,pi=1,pi =,1,clear pi,pi,ans =,3.1416,*82 定义变量时应避免与常量名相同,如果改变,*,83,数值,数值缺省为实数保留小数点后,4,位浮点数表示。其输入格式与,C,语言一致:如:,9 -73 0.1999 1.475e6,输出格式由,format,命令控制,只是影响屏幕显示效果,不影响内部存储和计算。下面以,pi,为例。,format long;pi,ans =,3.14159265358979,format long e;pi,ans =,3.141592653589793e+000,format long g;pi,ans =,3.14159265358979,*83数值format long;pi,*,84, z=2*exp(pi/3i),z =,1.0000 + 1.7321i,Matlab,语言还提供了复数的表达和运算功能。复数的基本单位表示为,i,或,j,。例如:,如果是表达式,必须在虚部的数值与,i,、,j,之间使用乘号。, sin(pi/3)+cos(pi/3)j,? sin(pi/3)+cos(pi/3)j,Error: Unexpected MATLAB expression., sin(pi/3)+cos(pi/3)*j,ans =,0.8660 + 0.5000i,*84 z=2*exp(pi/3i)Matlab语言还提,*,85,字符串,字符串用单引号输入或赋值;,字符串的每个字符都是都是字符数组的一个元素;,字符串和字符数组基本上等价。, s=i love you,s =,i love you, size(s),ans =,1 10, s(2),ans =, s(10),ans =,u,字符串的每个字符(包括空格)都是字符数组的一个元素。,在,matlab,中,字符串与字符数组或矩阵基本上是等价的。,*85字符串 s=i love you size,*,86,如果在字符串内使用单引号时,可以用连续两个单引号表示。例如:,字符串之间的转换函数:,double,字符串转换为数值代码,num2str,数字转换为字符串,int2str,整数转换为字符串,mat2str,矩阵转换为字符串,str2num,转换字符串为数字, double(s) %s=i love you,ans =,105 32 108 111 118 101 32 121 111 117, s=its good,s =,its good,*86 如果在字符串内使用单引号时,可以用连续两,*,87, a=1:5,a =,1 2 3 4 5, b=num2str(a),b =,2 3 4 5, a*2,ans =,2 4 6 8 10, b*2,ans =,98 64 64 100 64 64 102 64 64 104 64 64 106,*87 a=1:5,*,88,matlab,对字符串的操作与,C,语言中的几乎完全相同:,strcat,链结串,strcmp,比较串,strvcat,垂直链结串,strncmp,比较串的前,n,个字符,findstr,在其他串中找此串,upper,转换串为大写,lower,转换串为小写,blanks,生成空串,deblank,移去串中空格, ,例如:把前面的字符串,s,转化成大写。,s=“it good”, upper(s),ans =,ITS GOOD,执行字符串的功能用,eval,来实现。,t=1/(a*b-1);a=2;b=3;c=eval(t) %,可以在一行中表示。,c =,0.2000,*88 matlab对字符串的操作与C语言中的几乎,*,89,运算符,在,matlab,语言中运算符包括算术运算符、关系运算符和逻辑运算符。其中算术运算符见右表:,其中点运算是指操作元素点对点的运算,也就是说矩阵内元素对元素之间的运算,点运算要求参与运算的变量在结构上必须是相似的。,例如:,操作符,定义,+,算术加,-,算术减,*,算术乘,.*,点乘,算术乘方,.,点乘方,算术左除,.,点左除,/,算术右除,./,点右除,*89运算符操作符定义+算术加-算术减*算术乘.*点乘算术,*,90, a=1,2,3;4,5,6;7,8,9,a =,1 2 3,4 5 6,7 8 9, b=1 2 3,4 5 6,7 8 9,b =,1 2 3,4 5 6,7 8 9, c=a*b,c =,30 36 42,66 81 96,102 126 150, d=a.*b,d =,1 4 9,16 25 36,49 64 81,思考:,题目:通过描点法得到,sin(x)xcos(x),函数在,0-pi,区间上的曲线。,提示:通过点运算获得。(附件,diancheng,。,txt,),*90 a=1,2,3;4,5,6;7,8,9,*,91,Matlab,语言的关系运算符如右表:,当判断一个矩阵是否为空矩阵时,一般不用“,=”,,而应当使用函数,isempty,。,操作符,定义,=,等于,=,不等于,大于,=,大于等于,小于,a=1:3;4:6;7:9;,x=5;,y=ones(3)*5;,xa=xb=0 1 0;1 0 1;0 0 1;,ab=a&b,ab =,0 1 0,1 0 1,0 0 1,nb=b,nb =,1 0 1,0 1 0,1 1 0,*93a=1:3;4:6;7:9;ab=a&b,*,94,a=magic(5);,a(:,3)=zeros(5,1),a =,17 24 0 8 15,23 5 0 14 16,4 6 0 20 22,10 12 0 21 3,11 18 0 2 9,a1=all(a(:,1)a2=all(a3),a2 =,1 1 0 0 0,a11=any(a(:,1)10),a11 =,1,a22=any(a10),a22 =,1 1 0 1 1,*94a=magic(5);a2=all(a3),*,95,标点,在,matlab,中一些标点符号也被赋以特殊的意义,或表示要进行一定的运算等,如下表:,标点,定义,标点,定义,:,冒号,具有多种应用功能,续行符,;,区分行,及取消结果显示,%,注释标记,,,区分列,及函数参数分隔符等,!,调用操作系统运算,( ),指定运算过程中的先后次序等, ,矩阵定义的标志等, ,用于构成单元数组等,字符串的标示符,*95标点标点定义标点定义:冒号,具有多种应用功能续行符;,*,96,下面对上表中各标点作进一步的介绍。,首先,用冒号来定义行向量。,基本格式:,x,x1:step:x2,(初始值:步长:尾元素数值限),x,x1:x2,(默认步长为,1,),注意,:这里强调,x2,为尾元素数值限,而不是尾元素值。当,x2-x1,恰为步长的整数倍时,,x2,才能成为尾值。,例如:,*96 下面对上表中各标点作进一步的介绍。,*,97, a=1:2:12,a =,1 3 5 7 9 11, a=12:-2:1,a =,12 10 8 6 4 2, a=1:6,a =,1 2 3 4 5 6, a=2:2:12,a =,2 4 6 8 10 12,*97,*,98,其次,通过使用冒号,可以截取指定矩阵中的部分。例如:, a=1:18;a=reshape(a,3,6) %,重组矩阵,a =,1 4 7 10 13 16,2 5 8 11 14 17,3 6 9 12 15 18, a1=a(:,1:3),%,提取矩阵,a,的第,1,到,3,列元素组成的子矩阵。,a1 =,1 4 7,2 5 8,3 6 9, a2=a(1:2,3:end),a2 =,7 10 13 16,8 11 14 17,思考:,B1=a(1:3,:)?,*98其次,通过使用冒号,可以截取指定矩阵中的部分。例如:,*,99,分号在,matlab,语言中所起的作用是作为分隔行的标志,这里包括在,矩阵定义中对行的区分以及在程序代码中对行的划分,。在矩阵定义中,分号之间的数据被认为是矩阵的同一行。对于以分号结尾的行语句,,matlab,语言,不会把其运算结果显示在命令窗口中。,逗号主要起两个作用。其一是逗号是函数参数的分隔符,也是矩阵下标的分隔符。其二是逗号也是区分矩阵列的标志,在同一行中,逗号分隔开的是各个列。,括号是调整运算先后次序的标点,可以通过引用括号来调整运算次序。,矩阵的定义需要使用中括号。此外,中括号可以表示空矩阵,,并通过该空矩阵实现对矩阵的部分删除,。以下举例:,*99 分号在matlab语言中所起的作,*,100, a=1,2,3,4;5,6,7,8;4,3,2,1;8,7,6,5,a =,1 2 3 4,5 6 7 8,4 3 2 1,8 7 6 5, a(:,1:2)=,a =,3 4,7 8,2 1,6 5, b=a(1 3,:),b =,3 4,2 1,*100 a=1,2,3,4;5,6,7,8;4,3,*,101,大括号是单元型数据所特有的标点。后面介绍。,小数点“,.”,,它起到了数学符号的作用;而作为点运算的标志符,它又构成了各种各样的点运算;最重要的是它可作为结构型数组应用时的专有符号。,“,”,为,matlab,语言中的续行符,但是该续行符只能出现在各个语义群之间,也就是说不能出现在变量名之间,否则出错。例如:, a=sin(pi/4)+cos(pi/4)-tan(pi/4).,+cot(pi/4),a =,1.4142, a=sin(pi/4)+cos(pi/4)-t.,an(pi/4),? an(pi/4) |,Error: Unexpected MATLAB expression.,*101 大括号是单元型数据所特有的标点。后面介绍,*,102,在,matlab,语言中,一行内在“,%”,之后的文字均被认为是对,M,文件或程序代码的解释部分。,“!”可以在命令窗口直接调用操作系统命令,例如,DOS,命令,并将结果展示在命令窗口中,比如在命令窗口中调用“,!dir c”,,以显示,C,盘的文件列表。,单引号作为字符串的标示符而存在,同时,它在矩阵运算中也表示矩阵的转置运算及复数的共轭值。,*102 在matlab语言中,一行内在,*,103, a=1,2,3,4;5,6,7,8,a =,1 2 3 4,5 6 7 8, a,ans =,1 5,2 6,3 7,4 8, s=3-4i;s,ans =,3.0000 + 4.0000i,回到主目录,*103 a=1,2,3,4;5,6,7,8回到主目,*,104,MATLAB,语言的核心,矩阵,矩阵的生成,直接输入小矩阵(最简便的方法),注意点:,输入矩阵时要以“, ”,为其标识,即矩阵的元素应在“,”,内部。,矩阵的同行元素之间可由空格或“ ,”分隔,行与行之间用“,;”,或回车符分隔。,矩阵元素可为运算表达式。,无任何元素的空矩阵也合法。,回到主目录,*104MATLAB语言的核心矩阵矩阵的生成回到主目录,*,105,A = 1,2,3; 4,5,6; 7,8,9,A =,1 2 3,4 5 6,7 8 9,a=1 2 3,4 5 6,7 8 9,a =,1 2 3,4 5 6,7 8 9,创建带有运算表达式的矩阵:,b=sin(pi/3),cos(pi/4);log(9),tan(pi/4);%,什么样的结果?,*105A = 1,2,3; 4,5,6; 7,8,9,*,106,利用中括号将小矩阵合成一个大矩阵, b=1,2;3,4;, a=b,b;b2,b*3,a =,1 2 1 3,3 4 2 4,7 10 3 6,15 22 9 12,从外部文件引用矩阵(,excel,txt,),(,shuju1,,,shuju2,),*106利用中括号将小矩阵合成一个大矩阵,*,107,特殊矩阵的生成,常用的特殊矩阵,空 阵:, ,单 位 阵:,eye(m,n); eye(m),零 矩 阵:,zeros(m,n); zeros(m),全,1,阵:,ones(m,n); ones(m),对 角 阵:对角元素向量,V=a1,a2,an A=diag(V),随 机 阵:,rand(m,n),产生一个,mn,的均匀分布的随机矩阵,*107特殊矩阵的生成,*,108, eye(2,3),ans =,1 0 0,0 1 0, zeros(2,3),ans =,0 0 0,0 0 0, ones(2,3),ans =,1 1 1,1 1,1,v=5 6 7;a=diag(v),a =,5 0 0,0 6 0,0 0 7, eye(2),ans =,1 0,0 1, zeros(2),ans =,0 0,0 0, ones(2),ans =,1 1,1 1,如果已知,a,为方阵,则,v=diag(a),可以提取
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > PPT模板库


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!