出版时间:2011-12 出版社:北京航空航天大学出版社 作者:张志涌 等 页数:691
Tag标签:无
前言
1.编写背景MATLAB(MATrix LABoratory)自20世纪80年代初问世以来,历经30年的实践检验、市场筛选和时间凝炼,已成为科学研究、工程技术等众多领域最可信赖的科学计算环境和标准仿真平台,成为高等教学必须传授的学习和计算软件,成为学术演讲、交流中实验数据和曲线图形的来源。近年我国经济发展迅猛,“便携式个人电脑 + MATLAB”的配置工具在高校、科研院所以惊人的速度迅速普及。这使得理工科高校的每位师生、科研院所的每位研发人员都拥有了前所未有的巨大“计算潜能”。原有的研究方法、设计程式、论文写作方式以及教学内容等都必将受到这种新的“计算潜能”的巨大的冲击。为缓和巨大计算潜能和原有教材之间的矛盾,国内外理工科高校教材几乎都作出了把MATLAB引进教材的努力。这种努力大致可分为两个层面。第一层面,完全不改变原有教材内容,而仅把MATLAB作为“手算的替身”用于相关内容的算例习题解算。第二层面,对原有教材中“那些手算所不能处理”的内容加以改变,而成为由MATLAB实施的新章节;或把原教学大纲中“那些采用硬件设备进行”的实验改成MATLAB仿真。MATLAB对我国高等教学的影响,虽然比国外晚10年左右,但变化之迅速却远非欧美所及。在几乎“人手一机”和MATLAB普及使用的高校里,无论是教师或学生,也不管有意识思考还是无意识感受,都会时时面临一个共同的问题:拥有崭新电脑工具的我们还有必要循着计算尺时代形成的模式去学习分析和综合设计吗?硬件的低成本化、外界的需求又反过来推动MATLAB自身的改变和发展。近30年的历练,MATLAB已经从纯指令操作软件发展为在各种界面进行交互式操作的平台,从单纯的分析、计算软件发展成为集计算、仿真、硬件开发于一体的综合环境,从单一学科辅助工具扩展为多门类多学科的计算资源库。2.编写宗旨及特点本书作者自2000年编写《精通MATLAB 5.3版》和2003年编写《精通MATLAB 6.5版 》以来,主要精力一直投入于以MATLAB为工具的控制、信号处理及智能计算等研究。与此同时,随着MATLAB的不断升级,每年也为《精通》一书写些修订和增补文档,直接服务于面向本校学生的MATLAB课程。在此七、八年期间,本书作者曾多次尝试《精通》一书的修订,但终因时间不足,致半途而废。2008年秋,MATLAB的默认符号计算引擎由Maple更换为MuPAD。这一重大变化促使本书作者下定“重写《精通》”的决心。此后,历时2年多,完成此书初稿,共1150页(A4版面)。这样大的篇幅令人尴尬。一方面,恐因篇幅过大,而束缚对内容深度与广度应有的舒展;另方面,这千余页篇幅,无疑不便于读者使用。经与编辑多次商讨后,决心对MATLAB与C、C++等外部程序关联的内容作“切除留后”处理,对MATLAB“自封闭”内容则进行了削枝强干的调整。现在本书具有如下几个特点。秉承《精通MATLAB 6.5版》的编写宗旨:全面地多层次地描述MATLAB的通用功能。“全面及多层次”表现为:本书对MATLAB本身的入门引导写得相当细腻,即使是对MATLAB一无所知的读者,也可以循着本书的第1章,顺利跨入门槛。对于那些不大熟悉数值、符号、Simulink等计算、建模的读者来说,只要找到相关章节,沿着若干初始算例树立的“路标”,循序渐进,就能很快通过自我学习获得熟练运用的能力。涉及MATLAB较深应用层面,如数值计算泛函指令的参数传递、符号变量的非负、整数域约束及跨空间计算、Simulink的信息流控制、图形用户界面回调函数编写等内容,本书的阐述也都可以为读者解除困惑。本书276个算例中的绝大多数都是相对独立的,都配有可实际运行的完整解算指令。即使MATLAB新手,或对算例所涉及知识不甚了解的读者,只要循序操作算例指令,并阅读指令后的相关解释,也能顺利实践,获得启发后,更可举一反三。继续保持《精通MATLAB 6.5版》的编写传统:在避免囫囵吞枣的限度内,尽可能简明完整地透析MATLAB指令、Simulink模块的数学本质及其应用。例如:依托有限差分、积分等章节的算例,揭示建立在“浮点数系”基础上的数值计算,如何受“精度、空间、时间”等微观、宏观测度有限性的影响。借助奇异值分解阐述秩、范、子空间等矩阵结构计算的数值本质,借助特征值分解描述矩阵函数的计算本质。鉴于MATLAB R2011a版关于随机流概念的系统归纳和rng新指令的给出,本书用较多篇幅阐述了伪随机流、随机序列的创建、重现控制和独立性控制的多种方法。此外,还简明描述了均值、偏差、斜度、峭度等统计量的几何意义及计算指令。提出求取系统传递函数的代数方程符号法,此法不仅系统性强而不依赖“人工技巧”,而且还原了梅逊信流图法的数学实质。借助积分模块的两种不同数学表述,隐喻Simulink积分解算方式与数值积分指令的本质差异——前者体现“时间流”,后者依赖“数据流”。保持并延伸《精通MATLAB 6.5版》所涉内容的数学知识纵深度,多方位地适应MATLAB用户知识层面的深化和多样化。例如:在数值积分方面,不仅介绍了MATLAB“求面积、求体积”的quad类指令,而且介绍了样条积分、Monte Carlo积分、Simulink积分的基本原理和实现方法。在随机变量和数理统计方面,较大篇幅增添的内容有:全局随机流、随机序列的创建、重现控制和独立性控制,三阶斜度、四阶峭度计算等。在模型拟合和参数估计方面,新增内容——以多项式拟合为算例,描述了拟合参数标准差及置信区间、新观察预测区间等。在优化计算方面,不仅介绍了无约束优化计算,还新增了带约束优化计算及全域寻优算法和思想。推介MATLAB现代计算能力在方法学层面的新表现,描述这种现代计算能力对“计算尺时代”遗留下来的传统概念、方法和技巧的审视和冲击。例如:第5.7.1节利用代数方程求根的现代计算能力和MATLAB的图形表现力,直接根据不同放大倍数下求得的闭环根序列,绘制“精良根轨迹”,并进而借助MATLAB提供的数据探索工具形象、互动地表现放大倍数与闭环根之间的依赖关系。这种新方法概念清晰、操作简单、图形精准。值得指出的是:现今高校教材所教授的传统根轨迹绘制法,乃是建立在“计算尺能力”之上的。第5.7.2节利用求解符号代数方程的现代能力,直接求取“方框图”或“信流图”的系统传递函数。该方法系统性、规范性及计算的简单性远胜于“计算尺时代”的梅逊法。值得指出的是:梅逊法至今仍广泛地存在于我国高校的“信号与系统”“自动控制原理”等教材中。第5.8.3节,借助MATLAB的图形表现力,绘制误差曲面,形象地展示了泰勒近似的“邻域适用性”。第8.7.51小节利用微分方程单步仿真法绘制“状态轨迹”,其对系统性状的描述能力远强于“传统相轨迹”。这种单步状态轨线,不仅能精确地表现稳定平衡点周围的速度场,而且能同样精确地表现不稳定平衡点周围的速度场。第8.7.52小节利用数值优化指令求得的ITAE标准型系统的性能显然优于“模拟机时代”给出的那些传统ITAE标准型系统。本书特别在第6.8节新增3小节用于表述MATLAB的交互式数据探索工具:数据探针、数据刷和数据链。而算例5.7.1则综合地表现了数据探索工具的具体应用。算例4.53、4.121、4.123分别表现了MATLAB图形能力在非线性方程求解、单变量寻优、带约束二元函数寻优等方面的应用价值。本书第9章详细叙述了对研究方法有重大影响的图形用户界面(GUI)的制作方法。该章算例9.21展示了GUI表现二阶系统阶跃响应各种特征时所特有的能力。此外,也对原《精通MATLAB 6.5版》少部分内容进行了删减。完全删去原书中的“MATLAB编译器”、“应用程序接口API”两章。原因是:一,避免因篇幅限制,使其内容显得肤浅;二,避免因外部程序变化,使其内容不稳定。删除原书中“句柄图形”一章。原因是:一,各种图形对象的属性,现已可在MATLAB图形窗中便捷地读取和设置;二,部分常用的图形对象属性的指令设置内容已被融入新书的其他章节。原书中“Notebook”一章,精简后以附录形式出现。3. 内容简介全书由目录、正文、附录和随书光盘组成。正文共9章。第1章基础准备及入门详细讲述MATLAB的工作平台、基本特征和使用方法,讲授如何借助MATLAB的帮助系统解决所遇到的困难。任何MATLAB新手借助本章都可以比较顺利地跨入MATLAB门槛。第2章数值数组及向量化运算介绍MATLAB的两个数据类型(数值数组、逻辑数组),两个特有变量(“非数”及“空”),两个MATLAB指令及编程特征(数组运算和向量化编程)。其中数值数组创建、编址、援引寻访、扩展收缩等所涉的概念和技法也适用于其他数据类型数组。第3章字符串、胞元和构架数组集中介绍字符串、胞元、构架三种数据类型的创建、特点及相互转换。掌握这些数据类型有助于理解MATLAB(方程求解、优化)泛函指令、图形对象、Simulink模型模块等的参数设置和使用。第4章数值计算集中描述MATLAB的数值计算能力,其节次按数学类别划分。所涉数学理论知识大致涵盖理工科本科及研究生知识层面。每个算例都会简明地勾勒问题的来龙去脉,帮助读者克服由于理论数学、计算数学、MATLAB指令间的知识跳跃和交叉引起的困惑。第5章符号计算MATLAB由数值计算引擎驱动,其随带的符号计算引擎是MuPAD。本章内容完全适配MuPAD引擎。该章的解题理念、建模计算、结果表述等都不同于数值计算,而与传统教科书的理论内容相似,因此学生更容易接受并使用。因为该章内容相对独立,所以在内容设计上,安排了从简单入门到跨空间进入MuPAD环境的多层次节次。第6章数据可视及探索系统阐述离散数据绘制成图的基本机理、基本技法、绘图指令的调用和搭配。介绍MATLAB图形窗所具备的“数据——图形双向交互能力”,推介MATLAB最新体现的“交互式数据探索”研究方法。第7章M文件和函数句柄系统介绍MATLAB编程的基本构件、数据流控制、各类子函数、两种函数句柄、泛函计算指令、跨空间调用和赋值等内容,为编写较复杂程序读者所必读。第8章Simulink交互仿真环境Simulink的建模、解算、结果表述既不同于数值计算,也不同于符号计算,相对独立,由浅入深层次分明。第一个算例,非常详尽地描写Simulink的交互式建模步骤、操作要领、注意事项,以使新手可循此例而入门。其他节次则涉及构造并运作复杂Simulink模型所必需的各种连续和离散模块,各种条件控制子系统,各种操作指令。第9章图形用户界面(GUI)重点介绍GUI的GUIDE辅助设计法。算例9.21的细腻叙述,足以帮助对GUI完全陌生的读者,初步掌握创建图形用户界面的全部操作要领。该章内容的重要性在于:GUI不仅使研发过程友善、结果表现形象生动,而且有孕育新研发技术和思维方式的潜能。附录共3个。附录A Notebook简扼介绍Notebook工作环境的创建、组织及应用。该附录将有助于读者创建集文字表述、数学公式、解算指令、计算结果、图形表现于一体的学术演讲稿、教学课件、科研报告、学位论文等。附录 B 光盘使用说明专为随书光盘编写,主要用于:说明光盘mbook目录上所载DOC文件的开启环境和使用方法;说明光盘mfile目录上M、MDL文件的使用。附录 C 索引根据英文字母排列次序,列出了本书叙述文字或算例中所涉及的所有符号、指令、模块和图形对象属性的“英文关键词(或符)”。读者借助该“索引”,可以由“英文关键词(或符)”找到相关的中文说明或使用算例。4. 读者对象MATLAB自身性质决定了本书的主要读者对象是:需要数学建模、研究分析、理论验证、计算机仿真的各类大学生、研究生、教师和科研人员。本书的章节安排、各章内容、276个算例是作者根据MATLAB所跨数学及程序语言两大范畴的内涵融合而成的。与一般程序语言类书籍相比,本书的特点在于:包含了较大篇幅的理论数学、计算数学及其他专业基础方面的理论描述。而与一般的数学教材、计算方法书籍相比,不同之处又在于:本书并不停留于纯推理性阐述,而特别注重于表述完成计算任务的MATLAB指令的使用要旨及注意事项。因此,本书可以用作为MATLAB编程、数学建模、科学计算、数字仿真的综合教学用书和科研参考书。本书在讲述数值建模、符号建模、Simulink建模、及GUI制作等内容时,都专门设计了操作步骤及引导性算例(所涉工具介绍得特别详细),用以帮助初学者顺利地入门,并使他们在阅读指令的注解说明后,可以举一反三。因此,本书也可以供各类研发人员自学使用。除显而易见的简单算例外,本书作者在设计和编写算例时,尽力在理论和编程两方面保持各算例的独立性和完整性,以供各类读者根据需要随时片段地翻阅,掌握具体的算法和指令配合。换句话说,像字典一样,本书可用作查阅算法或MATLAB具体指令调用方法的“手册”。5. 使用建议本书用于教学时,教师可参考本书章节次序安排教学进程。讲授时,不建议使用PowerPoint形式的课件,而建议采用Notebook制作的课件。这是因为,后者可以让听课的学生在Word文字环境中看到MATLAB指令的实时操作和现场显示出的数值或图形结果。本书为教师制作课件方便,在随书光盘里,提供了保持全书章节结构、算例可运行M码的电子文档。本书用于系统自学时,读者可不必循序阅读,也不建议通读。建议先认真阅读并实践入门性算例,而不必强求自己去操练那些数学知识过深或编程过于复杂的算例。此外,再次诚恳地建议:不要采用“复制随书光盘中现成M码”的方法,去实践本书算例,而应采用“自己键入”的方式去实践,以体会编写程序的思路和过程。本书用作“手册”查阅参考时,读者应注意目录、索引、英文关键词的不同检索功用。目录用于“可能模糊的内容”检索;索引用于“已知指令名称”的交叉检索;(本书中出现的)英文关键词专供MATLAB帮助浏览器信息的检索使用。本书所有算例的M码都是可靠且可运行的,所有算例结果也都是可重现的。至于那些无法通过纸质书籍表现的Simulink模型代码和彩色图形,读者都可以在随书光盘中找到相应的MDL文件或电子文档。随书光盘中,还存放有与《精通MATLAB 6.5版》相配的电子文档,以供读者不时之需。6. 致谢本书是作者长年科研和教学积累的结果。本书的成稿得到张昀、阮秀凯、靳种宝、李娟娟、胡丽珍、谢逢博、冯子豪、王贵银、张传飞、朱捷、钱建平、江洁、蒋啸、王担担、张蓉等博士和硕士研究生的帮助和支持,得到我始终一贯的合作者杨祖樱教授的全力支持。借本书出版之际,向他们表示真诚的感谢。最后还要感谢北京航空航天大学出版社长期一贯的支持和合作。本书虽几经反复筛选提炼,但限于作者知识,赘病、错误和偏见仍难避免。在此,恳切各方面专家和广大读者的不吝指教。作者电子信箱:zyzh@njupt.edu.cn。作者2011年6月初于南京江宁
内容概要
本书由纸质媒体和电子媒体有机结合而成。纸质媒体便于读者进行系统、全面、长时间连续地阅读,便于随心翻阅、浏览;而电子媒体向读者提供色彩信息和动态交互的软件环境,提供读者实践本书内容所需的各种文件。
本书包含MATLAB使用和数学知识的丰富层次。编著本书有四个主要目的:(1)帮助初学者顺利跨入MATLAB大门;(2)全面、多层次、细致而深入地叙述MATLAB中数值、字符串、胞元、构架、逻辑、函数句柄六种重要数据类型的应用规则、相互配用和编程规范;(3)由浅入深地阐述MATLAB三种建模、分析、仿真环境——数值计算、符号计算和Simulink环境的特征和使用要领;(4)以实例讲述MATLAB代表的现代计算能力对传统算法和思维的影响。
全书包含276个算例。所有算例的程序都是可靠、完整的。读者可以完整、准确地重现本书所提供的算例结果,以掌握要领,举一反三,到达灵活应用的境地。
本书正文和算例所涉及的指令全部罗列在“附录C索引”中。该索引与目录组合,可为读者提供比较完善的快速查阅环境。
随书光盘中包含:黑白纸质印刷版无法表现的各种彩色图形;用Mbook模板制作的“活性”的各章DOC文档;各算例运行所需的M文件和MAT数据文件;Simulink块图模型的MDL文件;图形用户界面的FIG文件。
本书既可作为理工科院校研究生、本科生系统学习的教材,又可以作为广大科技工作者借助MATLAB进行科学计算及仿真的自学和参考用书。
作者简介
张志涌
籍贯无锡,教授,博士生导师,享受国务院专项津贴;IEEE高级会员、中国智能自动化专委会委员、中国机器人竞赛工作委员会委员、江苏省自动化学会常务理事;先后受教育于清华大学、上海交通大学、荷兰王国Eindhoven技术大学。
1989年至今,先后用MATLAB
3.0及以后各版本,从事系统辨识、故障诊断、系统仿真、智能计算和控制、无线信道盲辨识及盲均衡、仿真机器人足球和多智能体等方面的研究,先后主持和完成国家自然科学基金、省部基金资助的科研项目10多项,以第一作者身份发表论文80余篇。
1993年起,先后为研究生、本科生讲授模式识别、系统辨识、故障诊断、自控原理、盲系统辨识和盲信号处理、MATLAB与仿真等课程。其中MATLAB与仿真课程,至今已有十多年的持续讲授经验。
2003年起,利用MATLAB作为研究基础和仿真平台,从事SCILAB科学计算开放软件和RoboCup
2D/3D仿真足球机器人研究,指导学生在国内外大赛中持续取得包括全国冠军、世界冠军在内的优异成绩。
1992年对MATLAB
3.0实现汉化,并编写相应讲义。1997年出版《掌握和精通MATLAB》;2000年出版《精通MATLAB
5.3版》;2001年出版《MATLAB教程——基于6.x版本》。2003年出版《精通MATLAB
6.5版》;2006年出版《MATLAB教程》的第一版,该书每年都作更新,以及时适应MATLAB的最新变化,最新版已升级至R2011a;2011年出版本书《精通MATLAB
R2011a》。
书籍目录
第1章 基础准备及入门1
1.1MATLAB的安装和工具包选择1
1.2Desktop操作桌面的启动2
1.2.1MATLAB的启动2
1.2.2Desktop操作桌面简介2
1.3Command Window运行入门3
1.3.1Command Window指令窗简介3
1.3.2最简单的计算器使用法3
1.3.3数值、变量和表达式5
1. 数值的记述5
2. 变量命名规则5
3. MATLAB默认的数学常数5
4. 运算符和表达式7
5. 面向复数设计的运算——MATLAB特点之一8
6. 面向数组设计的运算——MATLAB特点之二11
1.4Command Window操作要旨14
1.4.1指令窗的显示方式14
1. 默认的输入显示方式14
2. 运算结果显示14
3. 显示方式的永久设置15
1.4.2指令行中的标点符号15
1.4.3常用控制指令17
1.4.4指令窗中指令行的编辑17
1.5历史指令窗(Command History)18
1.5.1Command History历史指令窗简介18
1.5.2历史指令的再运行19
1.6当前目录浏览器(Current Directory)、路径设置器和文件管理19
1.6.1当前目录浏览器简介20
1.6.2用户目录和当前目录设置21
1.6.3MATLAB的搜索路径21
1.6.4MATLAB搜索路径的扩展22
1. 何时需要修改搜索路径22
2. 利用设置路径对话框修改搜索路径22
3. 利用指令path设置路径22
1.7工作空间浏览器和变量编辑器23
1.7.1工作空间浏览器和变量可视化23
1.7.2工作空间的管理指令25
1. 查询指令who及whos25
2. 从工作空间中删除变量和函数的指令clear25
3. 整理工作空间内存碎片的指令pack25
1.7.3Variable Editor变量编辑器26
1.7.4数据文件和变量的存取26
1. 借助工作空间浏览器产生保存变量的MAT文件26
2. 借助输入向导Import Wizard向工作空间装载变量26
3. 存取数据的操作指令save和load27
1.8Editor/Debugger和脚本编写初步28
1.8.1Editor/Debugger M文件编辑器简介28
1.8.2M脚本文件编写初步29
1.9帮助系统及其使用30
1.9.1帮助体系的三大系统30
1.9.2常用帮助指令30
1. 函数搜索指令30
2. 词条搜索指令31
1.9.3Help 帮助浏览器32
1. 帮助浏览器的导出32
2. 帮助浏览器界面简介32
3. 帮助浏览器默认显示的利用34
第2章数值数组及向量化运算39
2.1数值数组的创建和寻访39
2.1.1一维数组的创建39
1. 递增/减型一维数组的创建39
2. 其他类型一维数组的创建40
2.1.2二维数组的创建41
1. 小规模数组的直接输入法41
2. 中规模数组的数组编辑器创建法41
3. 中规模的M文件创建法42
4. 利用MATLAB函数创建数组43
2.1.3二维数组元素的标识和寻访45
1. 数组的维数和大小45
2. 数组的标识和寻访46
2.1.4数组的扩缩和特殊操作47
1. 数组的扩充和收缩47
2. 数组的特殊操作49
3. 数组操作函数51
2.2数组运算52
2.2.1数组运算的由来和规则52
1. 函数关系数值计算模型的分类52
2. 提高程序执行性能的三大措施52
3. 数组运算规则52
4. 数组运算符及数组运算函数53
2.2.2数组运算和向量化编程54
2.2.3数组特殊运算指令汇总57
2.3高维数组59
2.3.1高维数组的创建59
2.3.2高维数组的孤维删除61
2.3.3高维数组的维度重排62
2.4“非数”和“空”数组64
2.4.1非数NaN64
2.4.2“空”数组66
2.5关系操作和逻辑操作67
2.5.1关系操作67
2.5.2逻辑操作69
2.5.3常用逻辑函数71
第3章字符串、胞元和构架数组72
3.1MATLAB的数据类型72
3.2字符串数组73
3.2.1串数组的属性和标识73
3.2.2复杂串数组的创建75
1. 多行字符串数组的创建75
2. 利用胞元数组创建复杂字符串77
3.2.3串转换函数78
3.2.4串操作函数82
3.3胞元数组82
3.3.1胞元数组的创建和显示83
1. 胞元标识寻访和内容编址寻访的不同83
2. 胞元数组的创建和显示83
3.3.2胞元数组的扩充、收缩和重组84
3.3.3胞元数组内容的获取和配置85
3.3.4胞元与数值数组之间的转换87
3.3.5对胞元数组运算的cellfun指令88
3.3.6胞元数组的操作函数汇总90
3.4构架数组90
3.4.1构架数组的创建和显示91
1. 直接创建法及显示91
2. 利用构造函数创建构架数组92
3.4.2构架数组域中内容的调取和设置93
3.4.3构架数组的扩缩、域的增删和域名重排96
3.4.4构架数组和胞元数组之间的转换97
3.4.5对构架域运算的structfun和arrayfun指令100
3.4.6构架数组的操作函数汇总102
第4章数值计算103
4.1MATLAB的浮点数体系103
4.2数值微积分104
4.2.1数值极限104
4.2.2数值差分106
4.2.3数值积分(Numerical Integration)108
1. 一元函数积分(Quadrature)108
2. 样条法求一元数值积分112
3. 用SIMULINK求一元数值积分112
4.2.4多重数值积分113
1. 常限重积分113
2. 变限重积分114
4.3矩阵分析117
4.3.1矩阵运算和特征参数117
1. 矩阵运算117
2. 矩阵的标量特征参数118
4.3.2奇异值分解和矩阵结构119
1. 奇异值分解119
2. 与奇异值相关的矩阵结构119
4.4特征值分解和矩阵函数123
4.4.1特征值分解问题123
4.4.2矩阵的谱分解和矩阵函数125
4.5解线性方程126
4.5.1求解线性方程的相关指令127
4.5.2线性方程矩阵除解法127
4.5.3线性二乘问题的解129
4.5.4一般代数方程的解130
4.6随机数的产生及其特征描述133
4.6.1随机数的产生及重现控制133
1. 默认全局随机流的简明管理指令133
2. 三种基本随机数发生指令134
3. 用户随机流的创建和使用136
4. 随机流的重现控制140
5. 独立随机数序列和随机流的产生143
6. 随机数重现控制旧版指令的使用建议148
4.6.2数据样本分布可视化描述149
4.6.3随机分布的数字特征及其统计量150
1. 随机分布的中心位置统计量150
2. 随机分布的聚散度统计量151
3. 斜度和峭度高阶统计量152
4.7多项式运算和卷积157
4.7.1多项式的运算函数157
1. 多项式表达方式的约定157
2. 多项式运算函数157
4.7.2卷积161
1. 两有限长序列的卷积161
2. 有限长序列与无限长序列的卷积164
4.8多项式拟合和非线性最小二乘165
4.8.1线性拟合和最小二乘165
4.8.2多项式拟合166
4.8.3非线性最小二乘拟合172
1. 伪线性化处理172
2. 非线性最小二乘拟合172
4.9插值和样条176
4.9.1一维插值176
4.9.2高维函数的插值179
4.9.3样条插值181
4.9.4样条函数的应用183
1. 样条函数的微积分183
2. 样条函数的零点和最小值186
4.10 Fourier分析191
4.10.1快速Fourier变换和逆变换指令191
4.10.2连续时间函数的Fourier级数展开192
1. 展开系数的积分求取法192
2. Fourier级数与DFT之间的数学联系193
3. MATLAB算法实现193
4.10.3利用DFT计算连续函数Fourier变换CFT201
1. CFT与DFT之间的数学联系201
2. MATLAB算法实现202
4.11常微分方程205
4.11.1常微分方程初值问题的解算205
1. 求解初值问题的思路205
2. 解算指令的调用格式206
3. 解算指令的属性及其设置207
4. 嵌套函数法传递解算参数209
5. 匿名函数法传递解算参数213
6. 带事件设置的微分方程解算215
4.11.2常微分方程的边值问题解218
1. bvp4c求解边值问题的思路219
2. 求解边值问题的配套指令220
3. 求解含未知参数的边值问题222
4.12最小值优化问题227
4.12.1MATLAB最小值优化指令概述227
4.12.2单变量局域优化指令fminbnd228
4.12.3多变量无约束局域优化指令fminsearch232
4.12.4多变量约束局域优化指令fmincon236
4.12.5GlobalSearch实施的全域优化242
第5章符号计算250
5.1符号对象的产生和识别250
5.1.1基本符号对象的创建250
1. 定义符号数字和符号常数
2. 定义基本符号变量251
3. 定义元符号表达式251
5.1.2符号计算中的算符和函数指令252
1. 符号计算中的算符252
2. 符号计算中的函数指令252
5.1.3符号对象、变量、自由变量的识别253
1. 符号对象的识别253
2. 符号变量及自由变量的认定254
5.1.4符号运算机理和变量假设259
1. 符号运算的工作机理259
2. 对符号变量的限定性假设259
3. 清除变量和撤销假设260
5.1.5符号帮助及其他常用指令263
1. 符号运作的帮助体系263
2. 服务于符号运算的其他指令267
5.2数字类型转换及符号表达式操作268
5.2.1数字类型及转换268
1. 三种数字类型及转换指令268
2. 双精度数字向符号数字转换269
3. 符号数字向双精度数字转换274
4. 符号数字的任意精度表达形式275
5.2.2符号表达式的简化操作277
5.2.3表达式中的置换操作280
1. 公因子法简化表达280
2. 通用置换指令282
5.3符号微积分285
5.3.1极限和导数的符号计算285
5.3.2序列/级数的符号求和290
5.3.3符号积分291
5.4微分方程的符号解法295
5.4.1符号解法和数值解法的互补作用295
5.4.2求微分方程符号解的一般指令295
5.4.3微分方程符号解示例296
5.5符号变换和符号卷积299
5.5.1Fourier变换及其反变换299
5.5.2Laplace变换及其反变换303
5.5.3Z变换及其反变换305
5.5.4符号卷积308
5.6符号矩阵分析和代数方程解309
5.6.1符号矩阵分析309
5.6.2线性方程组的符号解310
5.6.3一般代数方程组的解311
5.7符号算法的综合应用313
5.7.1三维根轨迹和数据探索313
5.7.2代数状态方程求符号传递函数319
1. 结构框图的代数状态方程解法320
2. 信号流图的代数状态方程解法322
3. 多输入、多输出系统传递矩阵的求取324
5.8符号计算结果的可视化326
5.8.1直接可视化符号表达式326
1. 单独立变量符号函数的可视化327
2. 双独立变量符号函数的可视化329
5.8.2符号计算结果的数值化绘图330
5.8.3可视化与数据探索332
5.9符号计算资源的数值环境应用335
5.9.1符号表达式、串操作及数值计算M码间的转换335
5.9.2符号工具包资源表达式转换成M码函数337
1. 转换指令matlabFunction337
2. 把符号包资源转换成M码函数的示例338
3. 把MuPAD资源转换为M码函数的示例344
5.9.3用符号表达式创建Simulink用户模块345
1. 转换指令emlBlock345
2. 把符号包资源转换为Simulink模块的示例346
5.10MuPAD资源的深层利用349
5.10.1借助mfun调用MuPAD特殊函数349
5.10.2直接调用MuPAD的函数352
1. 非mfunlist列表MuPAD函数的调用步骤353
2. 借助evalin运行MuPAD函数353
3. 借助feval运行MuPAD函数356
第6章数据可视及探索359
6.1引导359
6.1.1离散数据和离散函数的可视化359
6.1.2连续函数的可视化360
6.1.3可视化的一般步骤362
1. 绘制二维图形的一般步骤362
2. 绘制三维图形的一般步骤363
6.2二维线图及修饰操作364
6.2.1基本指令plot的调用格式365
1. 基本调用格式365
2. 衍生调用格式366
3. 带属性设置的调用格式367
6.2.2坐标控制和图形标识369
1. 坐标轴的控制369
2. 分格线和坐标框371
3. 图形标识指令371
4. 标识字符的精细控制372
6.2.3多次叠绘、双纵坐标和多子图375
1. 多次叠绘375
2. 双纵坐标图376
3. 多子图377
6.3三维绘图及修饰操作378
6.3.1三维线图指令plot3378
6.3.2三维曲面/网线图指令379
1. 基本调用格式379
2. 衍生调用格式380
3. 色图colormap381
4. 浓淡处理shading381
6.3.3视点控制和图形的旋动382
1. 视点控制view382
2. 图形旋动rotate383
6.3.4光照、材质和透视384
1. 光照light384
2. 材质处理material384
3. 透明处理386
6.3.5消隐、镂空和裁切390
1. 网线的消隐390
2. 图形的镂空390
3. 图形的裁切391
6.4高维可视化392
6.4.1二维半图线392
6.4.2准四维表现393
6.4.3四维切片及等位线394
6.5动态图形396
6.5.1高层指令生成动态图形396
1. 彗星状轨迹图396
2. 色图的变幻397
3. 影片动画397
6.5.2低层指令生成实时动画398
6.6特殊图形指令401
6.6.1彩色份额图401
1. 面域图area401
2. 直方图bar, barh, bar3, bar3h402
3. 饼图pie, pie3402
6.6.2有向线图402
6.6.3多面体异形图403
1. 德洛奈三角剖分和Voronoi图403
2. 填色图fill,fill3404
3. 不规则数据的网线图和曲面图405
4. 彩带图ribbon406
6.6.4散点图scatter和plotmatrix407
6.6.5泛函绘图指令fplot408
6.7图像409
6.7.1图像的类别和显示410
6.7.2图像的读写411
6.8图形窗的编辑探索功能414
6.8.1图形窗的结构414
1. 图形窗的功能分区414
2. 图形窗工具条415
3. 主要构件与对应菜单416
6.8.2指令鼠标混合操作生成绘图文件418
6.8.3数据探针422
6.8.4数据刷424
6.8.5数据链和数据联动427
第7章M文件和函数句柄432
7.1M码编程的基本构件432
7.2MATLAB的数据流控制434
7.2.1for循环和while循环控制434
1. 循环结构的基本形式434
2. 辅助控制指令continue和break438
7.2.2if?elseif?else条件分支控制440
7.2.3switch?case切换多分支控制442
7.2.4try?catch容错控制443
7.2.5编程用的其他指令446
1. return返回和pause暂定446
2. error出错信息和warning警告447
3. 与键盘交互指令input和keyboard447
7.3M文件和P文件448
7.3.1M文件448
1. M脚本文件448
2. M函数文件449
7.3.2P码文件的创建、查询和清除452
7.4MATLAB的函数类别453
7.4.1主函数和子函数454
7.4.2匿名函数456
7.4.3嵌套函数456
7.5函数句柄458
7.5.1函数作用域和优先等级458
7.5.2函数句柄的创建459
1. 直接函数句柄的创建法459
2. 匿名函数句柄的创建法459
7.5.3函数句柄的调用格式460
1. 直接函数句柄调用格式460
2. 匿名函数句柄调用格式460
7.5.4观察函数句柄的内涵461
7.6泛函演算指令462
7.6.1eval462
7.6.2feval464
7.6.3内联对象465
7.7变量的使用域和跨内存交换466
7.7.1输入输出检测指令466
7.7.2“变长度”输入输出量467
7.7.3局域变量、全域变量和持存变量471
7.7.4跨内存计算及赋值472
1. 跨内存计算串表达式472
2. 跨内存赋值474
7.8编辑调试器的应用深入475
7.8.1词串彩化和定界符匹配提示475
1. 词串彩化475
2. 定界符匹配提示475
7.8.2M?Lint代码分析器477
1. 检测信息的界面静态标识477
2. 详细检测信息的鼠标动态获取478
7.8.3M文件调试器479
1. 直接调试法480
2. 交互式调试器的界面480
3. 调试器应用示例482
第8章Simulink交互式仿真486
8.1引导486
8.1.1Simulink模型本质和一般结构486
8.1.2创建块图模型的方法和基本环境487
8.2连续系统建模490
8.2.1微分方程建模和积分模块490
1. 微分方程块图模型的创建和操作细节490
2. 创建微分方程的向量化块图模型498
3. 积分模块501
8.2.2状态空间建模503
1. 状态空间模块及其建模应用503
2. 模型内存和模型浏览器506
8.2.3传递函数建模及模型内存的操控510
1. 单位脉冲信号的近似实现510
2. 传递函数模块和非零初始系统建模510
8.3子系统和分层模型513
8.3.1创建简装子系统的套装法514
8.3.2创建简装子系统的容器法521
8.3.3精装子系统和装帧编辑器523
8.4使能触发子系统531
8.4.1使能子系统531
1. 子系统结构和工作原理531
2. 子系统非状态输出的两种形态533
3. 子系统状态输出的四种形态537
8.4.2触发子系统539
1. 子系统的结构和工作原理539
2. 子系统的三种触发方式541
8.5Simulink的控制流544
8.5.1For环544
8.5.2While环548
8.5.3If?else条件转向和信号合成551
8.6离散时间系统和混合系统554
8.6.1单位延迟模块和差分方程建模555
1. 单位延迟模块555
2. 差分方程的标量法建模555
3. 差分方程组的向量建模法558
8.6.2离散积分模块和混合系统559
1. 离散时间积分模块559
2. 混合系统的s变量替换法560
8.6.3多速率系统的色彩标识562
8.7Simulink的分析工具563
8.7.1模型和模块信息的获取563
1. 模型状态及输入输出特征的获取563
2. 模型/模块参数的指令获知和设置566
8.7.2用Sim指令运行Simulink模型568
1. 运行块图模型的sim指令568
2. sim指令的参数名/值设置法569
3. sim指令的参数构架设置法 570
8.7.3模型的线性化问题572
1. 线性化的数学描述572
2. 模型线性化573
8.7.4系统平衡点和普通状态轨线图577
8.7.5M码和Simulink模型的综合运用580
1. 单步仿真和精良状态轨线图580
2. 仿真模型和优化指令的协调583
8.8数值计算方面的考虑586
8.8.1微分方程解算器Solver586
1. ode45和ode23运作机理简要586
2. ode113运作机理简要587
3. ode15s和ode23s运作机理简要587
4. 不同解算器解Stiff方程的表现587
8.8.2积分步长和容差589
1. 积分步长的选择589
1. 计算容差的选择590
8.8.3代数环问题590
8.9S函数模块的创建和应用594
8.9.1S函数概述594
8.9.2S函数模块及其运作机理595
8.9.3M码S函数596
1. 两个级别的M码S函数596
2. 对二级M码S函数模版的注释596
3. 二级M码S函数模块设计示例599
第9章图形用户界面(GUI)605
9.1设计原则和一般步骤605
9.1.1设计原则605
9.1.2一般制作步骤606
9.2借助GUIDE创建GUI606
9.2.1GUIDE607
1. GUIDE的启动607
2. Preferences设置对版面编辑器的影响607
3. GUIDE的功能分区608
4. 待设计用户界面的性状预设609
5. 设计区的坐标参照和位置编排器610
6. 控件组件属性值的初始设置612
7. 创建界面的文件保存和重命名614
9.2.2控件的运作机理及创建615
1. 各控件的运作机理615
2. 常需设置的控件通用属性622
9.2.3GUI的创建示例623
1. 二阶系统阶跃响应演示界面623
2. 多指令输入的演示界面634
9.2.4界面菜单和工具图标的创建639
1. 标准菜单条和工具条的配置639
2. 定制菜单的创建和变量handles的观察642
3. 现场菜单创建和Tag属性应用646
9.3全手工编程创建GUI650
9.3.1采用M脚本文件创建用户界面651
9.3.2采用嵌套函数创建用户界面655
附录ANotebook658
A.1Notebook的配置和启动658
A.1.1Notebook的配置658
A.1.2Notebook的启动658
1. 创建新的Mbook文件658
2. 打开已有的Mbook文件660
A.2Mbook模板的使用660
A.2.1输入细胞(群)的创建和运行660
1. 细胞(群)660
2. 基本操作661
3. 输入细胞(群)操作示例661
A.2.2Notebook菜单的其他选项663
2. 整个Mbook文件的运行663
3. 删去Mbook 文件所有输出细胞664
A.2.3输出细胞的格式控制664
1. 数据输出的表示形式控制664
2. 图形的嵌入控制665
3. 嵌入图形大小的控制665
4. 嵌入图形的背景色问题665
A.3使用Mbook模板的若干注意事项666
附录B光盘使用说明667
B.1光盘文件的结构667
B.2关于光盘第一级目录和文件的说明667
B.3光盘对软件环境的要求668
B.4光盘文件的操作准备668
B.5mbook目录上DOC文件的使用668
B.6mfile目录上的M、MDL文件的使用669
附录C索引670
C.1MATLAB的标点及符号670
1. 算术运算符Arithmetic operators670
2. 关系运算符 Relational operators670
3. 逻辑运算符 Logical operators670
4. 特殊符号Special characters 671
C.2MATLAB的函数及指令Functions and Commands671
A a671
B b672
C c673
D d674
E e675
F f676
G g677
H h678
I i678
J j 680
K k 680
L l 680
M m 681
N n 681
O o 682
P p 682
Q q 683
R r683
S s684
T t687
U u687
V v688
W w688
X x688
Y y688
Z z689
C.3 Simulink的库模块689
参考文献691
章节摘录
版权页:插图:
媒体关注与评论
《精通Matlab6.5》是我学习Matlab的入门教程,它综合性强,内容详细,实例也很有特点,能够涵盖住所述知识点,并给出扩展。我曾经阅读《精通Matlab6.5》八遍左右,每一次都有收获。期待《精通MatlabR2011a》的出版,因为随着科学技术的发展,Matlab也在不断的退出新版,功能越来越强大。希望《精通MatlabR2011a》再续《精通Matlab6.5》的辉煌,为广大莘莘学子提供帮助。 ——lyqmath第一次接触《精通MATLAB 6.5》还是在大学本科时,《精通MATLAB 6.5》是我大学选修课的一本推荐教程。那时候的主流的MATLAB版本还是6.5版。由于是理学专业,对科学计算的要求比较高。所以很多课程上都会用到MATLAB。同时在大学期间,参加了大学生科技创新项目以及数学建模,所以MATLAB成为了我必备的一个编程工具,与此同时《精通MATLAB 6.5》也就成了经常放在手边的一个得力的工具书。这本书陪伴我顺利完成了科技创新项目、数学建模,以及课堂上的各种编程实践作业,通过这个过程也积累了很多MATLAB的经验和技巧。由于MATLAB语言的特殊性,例如矩阵处理,它的一些语言规则与其他语言不同,所以很多细小的技巧和语法会经常忘掉,但是《精通MATLAB 6.5》解决了这个难题,它里面有丰富的实例,同时也有系统的讲解,我们随时都可以翻阅和查询,能够快速得出解决方案。所以,我个人认为这还是一本MATLAB领域中文版难的一本系统工具书。时间飞逝,转眼间,硕士毕业,博士也已开始,又重新返回到了崇尚科学计算的科研大军中。而MATLAB这个工具又一次进入我的视野。如今,MATLAB版本已经升级到了matlab2011a版本。上半年在ILOVEMATLAB论坛中,参加了关于matlab2011a中C语言与MATLAB语言无缝转换的工具包,听了之后,非常震撼。个人认为,这个是MATLAB向主流语言进军迈出的一大步,因为这个工具包已经是很多人期待很久的东西了。作为MATLAB以及《精通MATLAB 6.5》的忠实粉丝,非常希望《精通matlab2011a》能够有更多和更新的信息提供给用户,能够在中国为MATLAB的普及和发展做出重要的贡献,同时希望为更多的科研人员提供给帮助,成为一笔隐形的财富。 ——cheewii
编辑推荐
《精通MATLAB R2011a》是一本极具生命力的书!从它最早的雏形《掌握和精通MATLAB》1997年问世,到2000年最早版本《精通MATLAB 5.3版》出版,再到《精通MATLAB 6.5版》2003年更新版本,终于在2011年底,又推出了全新改版的《精通MATLAB R2011a》。都说“十年磨一剑”,我们跟随《精通MATLAB R2011a》作者张志涌老师一起,用15年的时间,倾心打造一本【全面】【可靠】【实用】的MATLAB图书。其间有削枝强干的不舍,有半途而废的遗憾,但更多的是对内容编写的精益求精,对各方鼓励的不胜感激,对出版形式的不断改进。在《精通MATLAB 6.5版》之后,时隔七年,新版《精通》终于在广大读者的热切期盼中终于出版了!我们真诚地感谢张志涌老师对我们的信任和支持,以及对《精通MATLAB R2011a》所倾注的心血!我们还要感谢一路以来,不断支持和帮助我们的读者朋友们,你们反馈的每一条意见和建议我们都如获至宝,并鞭策我们不断努力改进,以不辜负你们的希望。非常荣幸,进十年来与《精通MATLAB R2011a》共同成长,与各位读者共同进步!
图书封面
图书标签Tags
无
评论、评分、阅读与下载