欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    Matlab编程及系统仿真调好.ppt

    • 资源ID:6512109       资源大小:2.12MB        全文页数:324页
    • 资源格式: PPT        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    Matlab编程及系统仿真调好.ppt

    1,Matlab编程及系统仿真,华中科技大学文华学院控制系 余愿信息学部 B313,2,上课认真听讲 课后认真复习、加以实践 独立完成不定期课堂练习,不抄袭 上机是学习本课程的重要环节,珍惜上机的时间,学时安排:32(讲课)/8(实验)成绩=平时成绩+考试成绩 30%70%,3,MATLAB语言控制系统计算机仿真Simulink动态仿真集成环境基于MATLAB的控制系统分析与设计,本书内容:,4,第一章 绪论,1.1系统建模与仿真,1.2 Matlab相关知识简介,5,1.1系统建模与仿真,1.1.1 系统、模型、仿真的基本概念1.1.2 仿真软件的发展状况及应用,6,1.1.1系统、模型、仿真的基本概念,系统:系统是客观世界中实体与实体之间相互作用、相互依赖所构成的具有某种特定功能的有机体。特点:系统作为一个整体存在,各个部分、元素之间相互联系、不可分割。,7,模型:系统模型是对实际系统的一种抽象,是对系统本质(或是系统的某种特性)的一种描述。模型可视为对真实世界中的物体或过程的信息进行形式化的结果。特点:模型具有与系统相似的特性,可以以各种形式给出我们感兴趣的信息。实体模型:与实物按一定比例制作的物理模型,如船模 数学模型:原始系统数学模型:对系统的原始数学描述,如加速度、概率密度函数等。仿真系统数学模型:适合在计算机上演算的数学模型。主要是根据计算机的运算特点、仿真方式、计算方法、精度要求将原始数学模型转换为计算机程序。,1.1.1系统、模型、仿真的基本概念,8,1.1.1系统、模型、仿真的基本概念,仿真:以相似性原理、控制论、信息技术及相关领域的有关知识为基础,以计算机和各种专用物理设备为工具,借助系统模型对真实系统进行试验研究的一门综合性技术。,9,仿真的作用:仿真技术具有很高的科学研究价值和巨大的经济利益。由于仿真技术的特殊功效,特别是安全性和经济性,使得仿真技术得到广泛的应用。首先由于仿真技术在应用上的安全性,使得航空、航天、核电站等成为方技术最早的和最主要的应用领域。,1.1.1系统、模型、仿真的基本概念,10,1.1.2 仿真软件的发展状况及应用,仿真软件:仿真软件是一类面向仿真用途的专业软件,它可能是面向通用的仿真,也可以是面向某个领域的仿真。功能如下:(1)为仿真提供算法支持。(2)模型描述,用来建立计算机仿真模型。(3)仿真实验的执行和控制。(4)仿真数据的显示、记录和分析。(5)对模型、实验数据、文档资料和其他仿真信息的存储、检索和管理(即用于仿真数据信息管理的数据库系统)。,11,1.1.2 仿真软件的发展状况及应用,根据软件功能,仿真软件可分为以下三个层次:(1)仿真程序库:有一组完成特定功能的程序组成的集合,专门面向某一问题或某一领域。它可能是用通用的语言(C+、FORTRAN等)开发的程序软件包,也可能是依附于某种集成仿真环境的函数库或模块库。(2)仿真语言:多属于面向专门问题的高级语言,它是针对仿真问题,在高级语言的基础上研制的。(3)集成仿真环境:它是一组用于仿真的软件工具的集合,包括设计、分析、编制系统模型、编写仿真程序、创建仿真模型,运行、控制、观察仿真实验,记录仿真数据,分析仿真结果,校验仿真模型等。,12,1.1.2 仿真软件的发展状况及应用,计算机仿真的一般过程:第一步:根据仿真目的确定仿真方案 根据仿真目的确定相应的仿真结构和方法,规定仿真的边界条件与约束条件。第二步:建立系统的数学模型 根据系统的先验知识、实验数据及机理研究,按照物理原理或者采用系统辨识的方法,确定模型的类型、结构及参数。要确保模型的准确性和经济性。,13,第三步:建立仿真模型 根据数学模型的形式、计算机类型、采用的高级语言或其它仿真工具,将数学模型转换为能在计算机上运行的程序或其它类型,获得系统的仿真模型。第四步:实验 设定实验环境、条件和记录数据,进行实验,并记录数据。第五步:进行仿真实验并输出仿真结果 通过实验对仿真系统模型及程序进行校验和修改,然后按系统仿真的要求输出仿真结果。,1.1.2 仿真软件的发展状况及应用,14,15,计算机仿真技术发展阶段:1.硬件发展,1.1.2 仿真软件的发展状况及应用,模拟计算机-数字计算机-使用基于数字计算机的仿真软件,说明:模拟计算机即模拟电子计算机,其各个主要部件的输入量及输出量都是连续变化着的电压、电流等物理量。模拟计算机由若干种作用及数量不同的积分器、加法器、乘法器、函数发生器等部件组成、按照待研究问题的数学模型把一个部件的输出端与另一个或几个部件的输入端连接起来,用整个计算机的输出量与输入量之间的数学关系模拟所研究问题的客观过程。,1.硬件发展,16,2.软件发展,1.1.2 仿真软件的发展状况及应用,软件包(software package)类似windows或MATLAB工具箱中的文件夹。包括一个或一个系列具有一定功能的程序。软件包由一个基本配置和若干可选部件构成。,早期的数学软件包:针对数值计算 连续系统仿真语言CSSL(Continuous System Simulation Langusge)连续系统建模语言CSMP(Continuous System Modeling Program)微分分析器置换语言DARE(Differential Analyzer Replacement),17,1.1.2 仿真软件的发展状况及应用,ACSL仿真语言 需模型文件 提供命令进行仿真、分析 直接调用FORTRAN 提供系统模块,MATLAB/SIMULINK 免费高功能仿真软件,18,1.2 Matlab相关知识简介,1.2.1 Matlab的发展历程1.2.2 Matlab语言的特色1.2.3 Matlab的安装1.2.4 Matlab基础操作,19,Cleve Moler和John Litter等人成立了一个名叫The MathWorks的公司,于1984年推出了第一个MATLAB的商业版,该版本已经用C语言作出了修改。,1.2.1 MATLAB的发展历程,1980年,美国新墨西哥州大学计算机主任Cleve Moler在讲授线性代数课程时,发现了用其他高级编程语言编程极为不便,便构思开发了MATLAB(即Matrix Laboratory,意为“矩阵实验室”),用Fortran语言编写了集命令翻译、科学计算于一身的一套交互式软件系统。,早期只能做矩阵运算,内部数十个函数,简单的绘图功能。其后又增添了丰富多彩的图形图像处理、多媒体功能、符号运算和它与其他流行软件的接口功能,使得 Matlab 的功能越来越强大。,20,Matlab的发展 1984年,Matlab 1.0版(DOS版,182K,20来个函数)1992年,Matlab 4.0版(93年推出Windows版本)1994年,Matlab 4.2,1999年,Matlab 5.3 2000年,Matlab 6.0,2002年,Matlab 6.5 2004年,Matlab 7.0,2006年,Matlab2006a 2007年,Matlab2007a、b 2008年,Matlab2008a、b 最新版Matlab2011b(7.12),目前,Matlab 已经成为国际上最流行的科学与工程计算的软件工具,它已经不仅仅是一个“矩阵实验室”了,而成为了一种具有广泛应用前景的全新的计算机高级编程语言了,有人称它为“第四代”计算机语言。就影响而言,至今仍然没有一个别的计算软件可与 Matlab 匹敌。,21,Matlab是一种广泛应用于工程计算及数值分析领域的新型高级语言,自1984年由美国 MathWorks 公司推向市场以来,历经二十多年的发展与竞争,现已成为国际公认的最优秀的工程应用开发环境。Matlab功能强大、简单易学、编程效率高,深受广大科技工作者的欢迎。,在欧美各高等院校,Matlab已经成为线性代数、自动控制理论、数字信号处理、时间序列分析、动态系统仿真、图像处理等课程的基本教学工具,成为本科生、硕士生以及博士生必须掌握的基本技能。,22,数值计算功能,Matlab是一个交互式软件系统 给出一条命令,立即就可以得出该命令的结果,Matlab以矩阵作为基本单位,但无需预先指定维数(动态定维)按照IEEE的数值计算标准进行计算 提供十分丰富的数值计算函数,方便计算,提高效率 Matlab命令与数学中的符号、公式非常接近,可读性强,容易掌握,符号运算功能,和著名的 Maple 相结合,使得 Matlab 具有强大的符号计算功能,绘图功能,Matlab 提供了丰富的绘图命令,能实现一系列的可视化操作,1.2.2 Matlab的语言特色,23,24,1.2.3 Matlab的安装,硬件要求 x86:软件要求 Windows:Linux:Adobe acrobat reader,25,学习途径,参考书目:基于MATLAB、Simulik的系统仿真技术与应用 薛定宇学习网站:1.Matlab官方网站:http:/2.Matlab中国:http:/3.MATLAB中文爱好者论坛:http:/4.Matlab中文论坛:http:/,26,命令窗口,当前工作目录,当前工作空间,输入命令的历史记录,命令提示符,27,1.2.4 Matlab基础操作,一、MATLAB语言的显著特点1、具有强大的矩阵运算能力:Matrix Laboratory(矩阵实验室),使得矩阵运算非常简单。2、是一种演算式语言MATLAB的基本数据单元是既不需要指定维数,也不需要说明数据类型的矩阵(向量和标量为矩阵的特例),而且数学表达式和运算规则与通常的习惯相同。因此MATLAB语言编程简单,使用方便。例 exp2_1.m,28,二、MATLAB命令窗口1、启动MATLAB命令窗口计算机安装好MATLAB之后,双击MATLAB图标,就可以进入命令窗口,此时意味着系统处于准备接受命令的状态,可以在命令窗口中直接输入命令语句。MATLAB语句形式 变量表达式;通过等于符号将表达式的值赋予变量。当键入回车键时,该语句被执行。语句执行之后,窗口自动显示出语句执行的结果。如果希望结果不被显示,则只要在语句之后加上一个分号(;)即可。此时尽管结果没有显示,但它依然被赋值并在MATLAB工作空间中分配了内存。,29,2、命令行编辑器(1)方向键和控制键可以编辑修改已输入的命令:回调上一行命令:回调下一行命令(2)多行命令()如果命令语句超过一行或者太长希望分行输入,则可以使用多行命令继续输入。S=1-12+13+4+9-4-18;,30,三、简单的数学运算(例exp2_2.m)1、常用的数学运算符,*(乘),/(右除),(左除),(幂)在运算式中,MATLAB通常不需要考虑空格;多条命令可以放在一行中,它们之间需要用分号隔开;逗号告诉MATLAB显示结果,而分号则禁止结果显示。2、常用数学函数 abs,sin,cos,tan,asin,acos,atan,sqrt,exp,imag,real,sign,log,log10,conj等 教材P16见表1-3,31,四、MATLAB的工作空间1、MATLAB的工作空间包含了一组可以在命令窗口中调整(调用)的参数who:显示当前工作空间中所有变量的一个简单列表 例如:who 得到结果:your variable are:a ans b c dwhos:则列出变量的大小、数据格式等详细信息clc:清屏,清除命令窗口中的内容,不能删除变量,32,clear:清除工作空间中所有的变量clear 变量名:清除指定的变量,2、退出工作空间quit 或 exit,33,五、文件管理文件管理的命令,包括列文件名、显示或删除文件、显示或改变当前目录等。(what、dir、type、delete、cd、which)what:显示当前目录下所有与matlab相关的文件及它们的路径。dir:显示当前目录下所有的文件which:显示某个文件的路径cd path:由当前目录进入path目录cd.:返回上一级目录cd:显示当前目录type filename:在命令窗口中显示文件filenamedelete filename:删除文件filename,34,六、使用帮助1、help命令,在命令窗口中显示MATLAB的所有函数都是以逻辑群组方式进行组织的,而MATLAB的目录结构就是以这些群组方式来编排的。help matfun:矩阵函数数值线性代数help general:通用命令help graphics:通用图形函数help elfun:基本的数学函数help elmat:基本矩阵和矩阵操作help datafun:数据分析和傅立叶变换函数help ops:操作符和特殊字符,35,help polyfun:多项式和内插函数help lang:语言结构和调试help strfun:字符串函数help control:控制系统工具箱函数2、helpwin:帮助窗口3、helpdesk:帮助桌面,浏览器模式4、lookfor命令:返回包含指定关键词的那些项5、demo:打开示例窗口,36,第二章 Matlab基础,37,2.1 数值计算2.2 符号运算2.3 绘图功能2.4 程序设计,38,2.1 数值计算,2.1.1 数值类型变量命名数据显示复数和复数矩阵2.1.2 矩阵运算创建矩阵矩阵操作矩阵运算向量运算多项式处理2.1.3 数据分析与统计2.1.4 函数方程2.1.5 MATLAB解方程,39,变量命名(1)基本的命名规则:变量名必须是不包含有空格的单个词;变量名最多不超过19个字符,第19个字符之后的字符将被忽略;变量名必须以字母打头,之后可以是任意字符、数字或下划线;变量名区分大小写。M-book1 1_a M inute,2.1.1 数值类型,40,(2)变量操作 在命令窗口中,同时存储着输入的命令和创建的所有变量值,它们可以在任何需要的时候被调用。如要察看变量a的值,只需要在命令窗口中输入变量的名称即可:a(3)特殊变量,2.1.1 数值类型,41,Matlab中的特殊变量,42,MATLAB命令语句能即时执行,它不是输入完全部MATLAB命令语句经过编译、连接形成可执行文件后才开始执行,而是每输入完一条命令,MATLAB就立即对其处理,并得出中间结果,完成了MATLAB所有命令语句的输入,也就完成了它的执行,直接便可得到最终结果。例如 a=5;b=6;c=a*b,结果显示 c=30,43,MATLAB语句的间隔符:分号 间隔符的作用:当有多个命令输入时,不立即显示运行的中间结果 MATLAB语句的结束符:逗号或回车 结束符的作用:立即显示本条命令的结果,44,任何MATLAB的语句的执行结果都可以在屏幕上显示,同时赋值给指定的变量,没有指定变量时,赋值给一个特殊的变量ans,数据的显示格式由format命令控制。format只是影响结果的显示,不影响其计算与存储;MATLAB总是以双字长浮点数(双精度)来执行所有的运算。format命令调用格式:format 控制参数,数值显示格式,45,format命令的控制参数,46,复数和复数矩阵,MATLAB的矩阵元素可以是复数或复数表达式,在matlab中,用i或j字元来表示虚部。x=1-2*i 注意是2*i而不是2ireal(x)列出实部imag(x)列出虚部conj(x)计算共轭复数abs(x)计算复数大小angle(x)计算复数向量的夹角(弧度表示)y=exp(x)以指数方式表示一个复数,47,2.1.2 矩阵运算,创建矩阵1直接输入法 最简单的建立矩阵的方法是从键盘直接输入矩阵的元素。具体方法如下:将矩阵的元素用方括号括起来,按矩阵行的顺序输入各元素,同一行的各元素之间用空格或逗号分隔,不同行的元素之间用分号分隔。2利用M文件建立矩阵 对于比较大且比较复杂的矩阵,可以为它专门建立一个M文件。后面会通过一个简单例子来说明如何利用M文件创建矩阵。,48,矩阵生成不但可以使用纯数字(含复数),也可以使用变量(或者说采用一个表达式)。,y=2,4,5;3 6 8y=2 4 5 3 6 8,a=1;b=2;c=3;x=5 b c;a*b a+c c/bx=5.0000 2.0000 3.0000 2.0000 4.0000 1.5000,例2-1 在命令窗口中直接输入矩阵,z=1,4,1+2*i z=1.0000 4.0000 1.0000+2.0000*i,49,例2-2 利用M文件建立mymatrix矩阵。启动有关编辑程序或MATLAB文本编辑器,并输入待建矩阵:把输入的内容以纯文本方式存盘(设文件名为mymatrix.m)。在MATLAB命令窗口中输入mymatrix,即运行该M文件,就会自动建立一个矩阵,可供以后使用。,50,3建立大矩阵 大矩阵可由方括号中的小矩阵或向量建立起来。4利用冒号表达式建立一个向量 冒号表达式可以产生一个行向量,一般格式是 e1:e2:e3其中,e1为初始值,e2为步长(可以为负数),e3为终止值。例如:a=1:2:10 a=1 3 5 7 9,51,5.使用函数产生矩阵 用linspace函数产生行向量 其调用格式为:linspace(a,b,n)其中,a和b是生成向量的第一个和最后一个元素,n是元素总数,缺省值为100。例如:a=linspace(1,10,10)a=1 2 3 4 5 6 7 8 9 10显然,linspace(a,b,n)与a:(b-a)/(n-1):b等价。,52,用logspace函数产生行向量 其调用格式为:a=logspace(a,b,n)在对数空间上,行矢量的值从10a到10b,数据个数为n,缺省n为50。这个指令为建立为对数频域轴坐标提供了方便。例如:a=logspace(1,3,3)a=10 100 1000,53,一些常用的特殊矩阵 单位矩阵:eye(m,n);eye(m)零矩阵:zeros(m,n);zeros(m)一矩阵:ones(m,n);ones(m)对角矩阵:对角元素向量 V=a1,a2,an A=diag(V)随机矩阵:rand(m,n)产生一个mn的0,1均匀分布的随 机矩阵 伴随矩阵:compan(p),其中p=1,a1,a2,an为多项式 系数组成的向量 上三角矩阵:triu(A)下三角矩阵:tril(A),54,空矩阵当一操作无结果时,Matlab常返回一个空矩阵,空矩阵大小为0,但是确实存在于工作空间中,可以用变量名访问。x=1:6;y=find(x6)size(y),随机矩阵如:在区间20,50内均匀分布的5阶随机矩阵;命令如下:x=20+(50-20)*rand(5),魔方矩阵magic(3),零矩阵zeros(2,3)zeros(3),全1矩阵ones(2,3)ones(2),单位矩阵eye(3)eye(2,3),对角矩阵提取向量元素构成方阵的对角元素。V=5 7 2;A=diag(V),伴随矩阵P为多项式的系数向量p=1,0,-7,6;compan(p),55,矩阵操作1、矩阵下标,A(m,n):提取第m行,第n列元素A(:,n):提取第n列元素A(m,:):提取第m行元素A(m1:m2,n1:n2):提取第m1行到第m2行和第n1列到第n2列的所有元素(提取子矩阵)。A(:):得到一个长列矢量,该矢量的元素按矩阵的列进行排列。,56,实例A=1,2,3;4,5,6;7,8,9;C=A(:);A(2,3)=5;B=A(2,1:3);A=A B;A(:,2)=;,结果:A=1,3,4;4,5,5;7,9,5B=4,5,5C=1;4;7;2;5;8;3;6;9,57,矩阵扩展:如果在原矩阵中一个不存在的地址位置上设定一个数(赋值),则该矩阵会自动扩展行列数,并在该位置上添加这个数,而且在其他没有指定的位置补零。例如:a=1,2,3;4,5,6;a(3,1)=9;结果为:a=1 2 3 4 5 6 9 0 0,58,2、矩阵的大小m,n=size(A):返回矩阵的行列数m与n,size(A,x):当x=1,则只返回行数m,当x=2,则只返回列数n。x为向量时,length(x):返回值为向量元素x的个数。length(A)或max(size(A):返回行数或列数的最大值。,a=1 2 3;3 4 5;m,n=size(a)m=2n=3,length(a)ans=3max(size(a)ans=3,59,3、矩阵操作函数:flipud;fliplr;rot90,rot90 矩阵旋转函数rot90(A,k)将矩阵A旋转90的k倍,当k=1的时候可以忽略,flipud矩阵上下翻转函数,fliplr矩阵左右翻转函数,例如:a=1,2,3;4,5,6;rot90(a)结果为:a=3 6 2 5 1 4,60,1、矩阵的转置 对于实矩阵用()符号或(.)求转置结果是一样的;然而对于含复数的矩阵,则()将同时对复数进行共轭处理,而(.)则只是将其排列形式进行转置。,矩阵的运算,(1)基本运算,61,a=1 2 3;4 5 6a=1 4 2 5 3 6,a=1 2 3;4 5 6.a=1 4 2 5 3 6,b=1+2i 2-7ib=1.0000-2.0000i 2.0000+7.0000ib=1+2i 2-7i.b=1.0000+2.0000i 2.0000-7.0000i,62,2、矩阵的加和减,矩阵的加减法的运算符为“”和“”。矩阵只有同阶方可进行加减运算,标量可以和矩阵进行加减运算但应对矩阵的每个元素施加运算。例如 A=1 2 3;4 5 6;B=A+1 B=2 3 4 5 6 7 a=1 2 3;4 5 6;b=0 1 2;3 4 5;a-b ans=1 1 1 1 1 1,63,3、矩阵的乘法,矩阵的乘法运算符为“*”。当两个矩阵中前一矩阵的列数和后一矩阵的行数相同时,可以进行乘法进行运算,这与数学上的形式是一致的。例如:CA*B;在MATLAB中还可进行矩阵和标量相乘,其结果为标量与矩阵中的每个元素分别相乘。,64,矩阵的除法有两种运算符“”和“/”,分别表示左除和右除。x=AB是A*x=B的解,x=B/A是x*A=B的解,通常ABB/A,而AB=inv(A)*B,B/A=B*inv(A)。,4、矩阵的除法,65,矩阵的乘方运算符为“”。一个方阵的乘方运算可以用AP来表示。P为正整数,则A的P次幂即为A矩阵自乘P次。如果P为负整数,则可以将A自乘 P次,然后对结果进行求逆运算,就可得出该乘方结果。如果P是一个分数,例如Pmn,其中n和m均为整数,则首先应该将A矩阵自乘n次,然后对结果再开m次方。例如:A=1,2,3;4,5,6;7,8,9;A2;%等效于A*A A-2;%等效于inv(A*A),5、矩阵的乘方,66,4、了解矩阵超越函数 在MATLAB中exp、sqrt等命令也可以作用到矩阵上,但这种运算是定义在矩阵的单个元素上的,即分别对矩阵的每一个元素进行计算。超越数学函数可以在函数后加上m而成为矩阵的超越函数,例如expm(A),sqrtm(A),logm(A)分别为矩阵指数、矩阵开方和矩阵对数。矩阵的超越函数要求运算矩阵为方阵。,67,(2)矩阵的特殊运算,1、方阵行列式:det(A)2、方阵的逆:inv(A)3、矩阵的迹矩阵的对角线元素之和,也等于矩阵的特征值之和:trace(A)4、矩阵的秩矩阵线性无关的行数(列数):rank(A)5、矩阵的三角分解(LU分解)目的是将一个矩阵A分解成一个下三角矩阵L和一个上三角矩阵U的乘积,亦即可以写成AL*U形式:L,U=lu(A),矩阵的特殊运算包括以下内容。,矩阵的运算,68,6、矩阵的奇异值分解:cond(A)7、矩阵的特征值与特征向量:eig(A)x=eig(A),求矩阵A的全部的特征值构成向量x;V,D=eig(A),求矩阵A的全部特征值构成对角阵 D,并求A的特征向量构成V的列向量。8、矩阵的特征多项式、特征方程和特征根:p=poly(A),p为矩阵A的特征多项式系数组成的行向量 V=roots(p),根据矩阵的特征多项式求特征根,69,例2-4 求矩阵A=1 2 3;4 5 6;7 8 9的特征多项式及特征根。程序如下:A=1 2 3;4 5 6;7 8 9;p=poly(A),V=roots(p)结果:p=1.0000-15.0000-18.0000-0.0000 V=16.1168-1.1168-0.0000 也可直接用eig(A)求矩阵特征根,得到一样的结果V,70,向量运算,虽然在MATLAB中向量和矩阵在形式上有很多的一致性,但它们实际上遵循着不同的运算规则。MATLAB向量运算符由矩阵运算符前面加一点“.”表示,如“.*”、“./”和“.”等。,1.向量的加减 向量的加、减运算与矩阵的运算相同,所以“”和“”既可被向量接收又可被矩阵接收。,71,2.向量的乘法 向量乘法的操作符为“.*”。如果x,y两向量具有相同的维数,则x.*y表示x和y单个对应元素之间的对应相乘。例如 x=1 2 3;y=4 5 6;z=x.*y z=4 10 18 可见向量的输入和输出与矩阵具有相同的格式,但它们的运算规则不同,例如,如果x是一个向量,则求取函数x平方时不能直接写成x*x,而必须写成x.*x,否则将给出错误信息。,72,但是对于矩阵可以使用向量运算符号,此时相当于把矩阵看成了向量进行运算。例如对于两个维数相同的A,B矩阵,A.*B表示A和B矩阵的相应元素之间直接进行乘法运算把这种运算称为矩阵的点积运算。例如 A=1 2 3;4 5 6;7 8 9;B=2 3 4;5 6 7;8 9 0;C=A.*B;D=A*B;结果:C=D=2 6 12 36 42 18 20 30 42 81 96 51 56 72 0 126 150 84,73,3.向量的除法 向量除法的操作符为“./”或“.”。它们的运算结果一样。x=1 2 3;y=4 5 6;z=y./x z=4.0000 2.5000 2.0000 对于向量x.y和y./x一样,将得到相同的结果,这与矩阵的左、右除是不一样的,因向量的运算是它们对应元素间的运算。对于矩阵也可使用向量的除法操作符,这时就相当于把矩阵看成向量进行运算。,74,4.向量的乘方 向量乘方的运算符为“.”。向量的乘方是对应元素的乘方,在这种底与指数均为向量的情况下,要求它们的维数必须相同。例如 x=1 2 3;y=4 5 6;z=x.y z=1 32 729 它相当于 z=1 2 3.4 5 6=14 25 36,75,在MATLAB中,多项式使用降幂系数的行向量表示,如:,p=poly(r)p=1-12-0 25 116,(1)多项式的建立与表示方法,r=roots(p)r=11.7473 2.7028-1.2251+1.4672i-1.2251-1.4672i,表示为:p=1-12 0 25 116,使用函数roots可以求出多项式等于0的根,根用列向量表示。若已知多项式等于0的根,函数poly可以求出相应多项式。,多项式处理,76,将多项式的系数向量表示成相应多项式的习惯表示形式的MATLAB函数为poly2str(),函数的调用格式为f=poly2str(p,s)其中,p为多项式的系数向量,s为变量名,f为相应的多项式,例:p=1 2 3 0 4;y=poly2str(p,x)y=x4+2 x3+3 x2+4,77,(2)多项式的运算,相加、减 f(x)=x4+5x3+3x+2,g(x)=x2+6x+5的命令:p1=1 5 0 3 2;p2=0 0 2 6 5;p=p1+p2相乘conva=1 2 3;b=1 2 c=conv(a,b)=1 4 7 6conv指令可以嵌套使用,如conv(conv(a,b),c)相除deconvq,r=deconv(c,b)q=1 2 3 整除多项式r=0 0 0 余数多项式,78,求多项式函数值polyval(p,n):将值n代入多项式求解。a=1 2 3;polyval(a,2)=11多项式求导数函数polyderk=polyder(p)可得到多项式的导数例如:p=5 1 8 5;y=poly2str(p,x)y=5 x3+x2+8 x+5 k=polyder(p)k=15 2 8,79,例2-5 求多项式 的展开式,p=conv(1 1,conv(1 1,1 6 5);y=poly2str(p,x)y=x4+8 x3+18 x2+16 x+5,例2-6 求多项式 在点x=5,7,9处的值 p=3 2 1;f=polyval(p,5,7,9)f=86 162 262,80,多项式的拟合多项式拟合又称为曲线拟合,其目的就是在众多的样本点中进行拟合,找出满足样本点分布的多项式。这在分析实验数据,将实验数据做解析描述时非常有用。命令格式:p=polyfit(x,y,n),其中x和y为样本点向量,n为所拟合的多项式的阶数,p为求出的多项式。例exp2_15.m多项式插值多项式插值是指根据给定的有限个样本点,产生另外的估计点以达到数据更为平滑的效果。该技巧在信号处理与图像处理上应用广泛。,81,所用指令有一维的interp1、二维的interp2、三维的interp3。这些指令分别有不同的方法(method),设计者可以根据需要选择适当的方法,以满足系统属性的要求。help polyfun可以得到更详细的内容。yi=interp1(x,y,xi,method)在有限样本点向量x与y中,插值产生向量xi和yi,所用方法定义在method中,有4种选择:nearest:执行速度最快,输出结果为直角转折linear:默认值,在样本点上斜率变化很大cubic:最占内存,输出结果与spline差不多spline:最花时间,但输出结果也最平滑,82,例:x=-2 1 5 10 20;y=1 9 11 20 24;xi=3;yi=interp1(x,y,xi,linear)yi=10 例:exp2_16.m,83,2.1.3数据分析与统计,随机数最大值和最小值求和与求积平均值和均值累加和和累加积标准差与方差排序,84,随机数 rand(n,m)在0,1上产生一个nm的矩阵 randn(n,m)生成一个nm的均值为0、标准差为1的正态分布的随机矩阵例:randn(2,3)ans=-0.4326 0.1253-1.1465-1.6656 0.2877 1.1909,85,最大值和最小值 1求向量的最大值和最小值 y=max(X):返回向量X的最大值存入y,如果X中包含复数元素,则按模取最大值。y,i=max(X):返回向量X的最大值存入y,最大值的序号存入i,如果X中包含复数元素,则按模取最大值。求向量X的最小值的函数是min(X),用法和max(X)完全相同。,86,例2-7 求向量x的最大值。命令如下:x=-43,72,9,16,23,47;y=max(x)%求向量x中的最大值 y,i=max(x)%求向量x中的最大值及其该 元素的位置结果:y=72 y=72 i=2,87,2求矩阵的最大值和最小值求矩阵A的最大值的函数有3种调用格式,分别是:(1)max(A):返回一个行向量,向量的第i个元素是矩阵A的第i列上的最大值。(2)Y,U=max(A):返回行向量Y和U,Y向量记录A的每列的最大值,U向量记录每列最大值的行号。(3)max(A,dim):dim取1或2。dim取1时,该函数和max(A)完全相同;dim取2时,该函数返回一个列向量,其第i个元素是A矩阵的第i行上的最大值。求最小值的函数是min,其用法和max完全相同。,88,例2-8:分别求34矩阵x中各行和各列元素中的最大值和最小元素,并求整个矩阵的最大值和最小值。,A=rand(3,4);max(A,2)min(A,2)max(A)min(A)max(max(A)min(min(A),89,3两个向量或矩阵对应元素的比较 函数max和min还能对两个同型的向量或矩阵进行比较,调用格式为:(1)U=max(A,B):A,B是两个同型的向量或矩阵,结果U是与A,B同型的向量或矩阵,U的每个元素等于A,B对应元素的较大者。(2)U=max(A,n):n是一个标量,结果U是与A同型的向量或矩阵,U的每个元素等于A对应元素和n中的较大者。min函数的用法和max完全相同。例 求两个23矩阵x,y所有同一位置上的较大元素构成的新矩阵p。,p=max(x,y),90,求和与求积 设X是一个向量,A是一个矩阵,函数的调用格式为:sum(X):返回向量X各元素的和。prod(X):返回向量X各元素的乘积。sum(A):返回一个行向量,其第i个元素是A的第i列元素和。prod(A):返回一个行向量,其第i个元素是A的第i列的元素乘积。sum(A,dim):当dim为1时,该函数等同于sum(A);当dim为2时,返回一个列向量,其第i个元素是A的第i行的各元素之和。prod(A,dim):当dim为1时,该函数等同于prod(A);当dim为2时,返回一个列向量,其第i个元素是A的第i行的各元素乘积。,91,例 求矩阵A的每行元素的乘积和全部元素的乘积。,M=prod(A,2);prod(M);,92,平均值和中值mean(X):返回向量X的算术平均值。median(X):返回向量X的中值。mean(A):返回一个行向量,其第i个元素是A的第i列的算术平均值。median(A):返回一个行向量,其第i个元素是A的第i列的中值。mean(A,dim):当dim为1时,该函数等同于mean(A);当dim为2时,返回一个列向量,其第i个元素是A的第i行的算术平均值。median(A,dim):当dim为1时,该函数等同于median(A);当dim为2时,返回一个列向量,其第i个元素是A的第i行的中值。,93,累加和与累乘积cumsum(X):返回向量X累加和向量。cumprod(X):返回向量X累乘积向量。cumsum(A):返回一个矩阵,其第i列是A的第i列的累加和向量。cumprod(A):返回一个矩阵,其第i列是A的第i列的累乘积向量。cumsum(A,dim):当dim为1时,该函数等同于cumsum(A);当dim为2时,返回一个矩阵,其第i行是A的第i行的累加和向量。cumprod(A,dim):当dim为1时,该函数等同于cumprod(A);当dim为2时,返回一个向量,其第i行是A的第i行的累乘积向量。例 求向量X=(1!,2!,,10!)的值。,X=cumprod(1:10),94,95,标准差与方差1求标准差std(X):对于向量X,返回一个标准差。std(A):对于矩阵A,返回一个行向量,它的各个元素便是矩阵A各列的标准差。std(A,dim):当dim=1时,求各列元素的标准差;当dim=2时,则求各行元素的标准差。2方差var(X):对于向量X,返回一个方差。var(A):对于矩阵A,返回一个行向量,它的各个元素便是矩阵A各列的方差。var(A,dim):当dim=1时,求各列元素的方差;当dim=2时,则求各行元素的方差。,96,排序sort(X):返回一个对X向量中的元素按升序排列的新向量。sort(A,dim):若dim=1,则按列排;若dim=2,则按行排。,97,1.代数方程组求解2.微分方程组求解3.函数积分4.函数绘图,2.1.4 函数方程,98,1、代数方程组求解,利用MATLAB中求函数f(.)=0的函数fzero()和fsolve(),可以很方便地求得非线性方程组的解,调用格式分别为x=fzero(fun,x0)x=fsolve(fun,x0),前者针对一元方程求解,后者是对多元方程求解;fun表示函数名,x0表示函数的初值。x0为标量时,该命令在它两侧寻找一个与之最靠近的解;x0为区间a,b时,在此区间内寻找一个解。,99,例 试求函数 的零点,命令如下:f=fzero(sin(x),0,pi),例 求f(x)=x-10 x+2=0在x0=0.5附近的根。直接求根方法:z=fzero

    注意事项

    本文(Matlab编程及系统仿真调好.ppt)为本站会员(牧羊曲112)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开