登入帳戶  | 訂單查詢  | 購物車/收銀台( 0 ) | 在線留言板  | 付款方式  | 聯絡我們  | 運費計算  | 幫助中心 |  加入書簽
會員登入 新註冊 | 新用戶登記
HOME新書上架暢銷書架好書推介特價區會員書架精選月讀2023年度TOP分類閱讀雜誌 香港/國際用戶
最新/最熱/最齊全的簡體書網 品種:超過100萬種書,正品正价,放心網購,悭钱省心 送貨:速遞 / EMS,時效:出貨後2-3日

2024年03月出版新書

2024年02月出版新書

2024年01月出版新書

2023年12月出版新書

2023年11月出版新書

2023年10月出版新書

2023年09月出版新書

2023年08月出版新書

2023年07月出版新書

2023年06月出版新書

2023年05月出版新書

2023年04月出版新書

2023年03月出版新書

2023年02月出版新書

『簡體書』MATLAB程序设计与最优化计算

書城自編碼: 2930631
分類: 簡體書→大陸圖書→教材研究生/本科/专科教材
作者: 臧文科
國際書號(ISBN): 9787302447337
出版社: 清华大学出版社
出版日期: 2016-12-01
版次: 1 印次: 1

書度/開本: 16开 釘裝: 平装

售價:NT$ 263

我要買

share:

** 我創建的書架 **
未登入.



新書推薦:
舵手证券图书 短线交易大师:工具和策略 24年新修订版 实战验证的交易技术 经典外版书
《 舵手证券图书 短线交易大师:工具和策略 24年新修订版 实战验证的交易技术 经典外版书 》

售價:NT$ 437.0
中国古兵器集成
《 中国古兵器集成 》

售價:NT$ 3808.0
空腹力+轻断食:正在横扫全球的瘦身革命(全2册)
《 空腹力+轻断食:正在横扫全球的瘦身革命(全2册) 》

售價:NT$ 577.0
临床牙周病学和口腔种植学 第7版
《 临床牙周病学和口腔种植学 第7版 》

售價:NT$ 7269.0
粤港澳大湾区文化产业圈论纲
《 粤港澳大湾区文化产业圈论纲 》

售價:NT$ 717.0
粤港澳大湾区蓝皮书:粤港澳大湾区建设报告(2023)
《 粤港澳大湾区蓝皮书:粤港澳大湾区建设报告(2023) 》

售價:NT$ 1053.0
邂逅晚清——中美的对望与凝视(罕见国内作者所著全面反映晚清中美交往历史的通俗作品)
《 邂逅晚清——中美的对望与凝视(罕见国内作者所著全面反映晚清中美交往历史的通俗作品) 》

售價:NT$ 493.0
广东当代金融史:全三册
《 广东当代金融史:全三册 》

售價:NT$ 3349.0

建議一齊購買:

+

NT$ 443
《 武汉城市圈制造业发展研究报告2014 》
+

NT$ 113
《 植物生物化学实验指导 》
+

NT$ 270
《 传染病学临床实习指南 》
+

NT$ 257
《 数据库理论与应用(普通高等教育“十二五”应用型本科规划教材) 》
+

NT$ 621
《 电子商务(原书第10版,有效融合管理与技术、紧跟最新理论与实践,采用案例分析的启发式教学,该领域最早引进的美国教材之一,国内电子商务教师的首选!) 》
+

NT$ 247
《 网站建设与管理(高等职业教育“十二五”规划教材) 》
編輯推薦:
(1)MATLAB程序设计与*化计算一书以MATLAB的编程为基础,引领读者跨入MATLAB的大门,并向读者展示了MATLAB的强大功能。(2)MATLAB程序设计与*化计算一书的内容涵盖了*化理论和方法,以MATLAB计算功能求解*化问题。(3)MATLAB程序设计与*化计算一书做到了理论与实践相结合。理论的检验和验证也必须通过实践实现,*化技术理论和系统实验相结合是有效的途径之一。(4)MATLAB程序设计与*化计算一书深入浅出、循序渐进地让读者从整体上把握*化计算的实质,进而可将实际问题抽象成易于理解的数学模型,同时利用MATLAB语言进行求解。(5)MATLAB程序设计与*化计算一书力求内容丰富,各章节相互联系,内容具有系统性、科学性、实用性和引导性;同时,各章节又相对独立,自成体系,为读者提供了极大方便。
內容簡介:
MATLAB程序设计与最优化计算一书首先介绍MATLAB的基本使用方法和程序设计基础,然后将MATLAB与最优化计算相结合,基于最优化理论与方法,讲解如何使用MATLAB求解最优化领域的计算问题。全书共15章,第1~7章介绍MATLAB入门、MATLAB编程基础、MATLAB矩阵计算、MATLAB数值计算及MATLAB符号计算等内容,将读者领入MATLAB的大门,并熟练使用MATLAB。第8~9章主要介绍MATLAB绘图,如何通过MATLAB的强大绘图功能使得数据可视化。第10章对优化计算进行概述,让读者领略什么是优化计算及优化设计的基本原理。第11~13章系统地介绍线性规划、非线性规划、数值优化、多目标规划、优化工具箱等内容,让读者轻松地掌握MATLAB在优化计算中的应用。第14~15章为优化计算高级篇,主要讲解遗传算法和微粒群优化计算在MATLAB中的应用。
MATLAB程序设计与最优化计算一书内容循序渐进、由浅入深,并结合大量实例帮助读者理解和掌握最优化问题的建模方法与求解技巧。MATLAB程序设计与最优化计算一书适合计算应用、最优化领域和科学计算的研究人员使用,也可作为高等院校计算机专业、通信专业等相关专业的教材。
目錄
目录Contents第1篇MATLAB编程篇
第1章导论3
1.1概论3
1.2算法的开发与应用3
1.3数据获取与分析6
1.4数据可视化7
1.5数值计算9
第2章MATLAB基础10
2.1启动MATLAB10
2.2命令行窗口13
2.3输出命令15
2.3.1disp命令15
2.3.2fprintf命令16
2.4保存与加载命令22
2.4.1save命令23
2.4.2load命令23
2.5导入与输出数据25
2.5.1数据导入或输出命令25
2.5.2使用导入向导27
2.6工作空间28
2.7显示格式30
2.8定义标量变量30
2.8.1赋值运算符31
2.8.2变量的命名规则32
2.8.3预定义变量和关键字32◆MATLAB程序设计与最优化计算目录第3章MATLAB编程34
3.1带标量的算术运算34
3.1.1优先级34
3.1.2用MATLAB作计算器35
3.2基本内置函数35
3.3关系和逻辑运算符37
3.3.1关系运算符37
3.3.2逻辑运算符39
3.3.3优先级40
3.3.4内置逻辑函数42
3.4条件语句43
3.4.1ifend结构43
3.4.2ifelseend结构43
3.4.3ifelseifelseend结构44
3.5switchcase语句45
3.6循环46
3.6.1forend循环46
3.6.2whileend循环47
3.7嵌套循环和嵌套条件语句48
3.8break和continue语句49
第4章脚本与函数文件50
4.1脚本文件50
4.1.1使用脚本文件的注意事项50
4.1.2脚本文件的创建与保存51
4.1.3脚本文件的运行52
4.1.4当前路径52
4.2函数文件的创建53
4.3函数文件的结构53
4.3.1函数定义行54
4.3.2输入和输出参数54
4.3.3H1行和帮助文本行55
4.3.4函数体56
4.4局部变量和全局变量56
4.5函数文件的保存57
4.6用户自定义函数的使用57
4.7脚本文件与函数文件的比较58
4.8子函数58
第5章矩阵计算60
5.1矩阵的创建60
5.1.1创建一个一维数组(向量)60
5.1.2根据一串已知的数字来创建向量60
5.1.3创建一个二维数组(矩阵)63
5.1.4MATLAB中变量的注意事项65
5.1.5转置运算符65
5.1.6数组寻址66
5.1.7在数组寻址中使用冒号67
5.1.8向已有变量中添加元素69
5.1.9删除元素72
5.1.10处理数组的内置函数73
5.2矩阵运算74
5.2.1加法与减法74
5.2.2数组相乘75
5.2.3数组相除78
5.2.4逐元素运算80
5.2.5在MATLAB内置数学函数中使用数组82
5.2.6分析数组的内置函数83
5.2.7随机数的生成84
第6章数值计算87
6.1多项式87
6.1.1多项式的值87
6.1.2多项式的根89
6.1.3多项式的加法、乘法和除法运算90
6.1.4多项式求导91
6.2曲线拟合92
6.2.1用多项式来实现曲线拟合polyfit函数92
6.2.2使用函数而不是多项式来实现曲线拟合95
6.2.3插值计算98
6.2.4基本拟合接口101
6.3求解单变量方程104
6.4寻找函数最大值或最小值106
6.5数值积分107
6.6常微分方程110
第7章符号计算114
7.1符号对象和符号表达式115
7.1.1创建符号对象115
7.1.2创建符号表达式116
7.1.3findsym命令和默认符号变量118
7.2化简符号表达式119
7.2.1collect、expand和factor命令119
7.2.2simplify和simple命令121
7.2.3pretty命令122
7.3求解代数方程122
7.4微分125
7.5积分126
7.6求解常微分方程127
7.7符号表达式的数值计算130
第8章二维绘图133
8.1plot命令134
8.1.1绘制给定数据137
8.1.2绘制函数137
8.2fplot命令139
8.3在同一个plot中绘制多个图像139
8.3.1使用plot命令139
8.3.2使用hold on 和 hold off 命令141
8.3.3使用line命令141
8.4定义绘图显示格式142
8.4.1使用命令定义绘图显示格式142
8.4.2使用plot编辑器绘图145
8.4.3使用误差线绘图146
8.5绘制特殊图形147
8.6直方图149
8.7polar绘图152
8.8在同一页面上绘制多图153
8.9多图窗口153
8.10工具栏绘图154
第9章三维绘图156
9.1三维曲线156
9.2三维网格和三维曲面图157
9.3特殊图形绘图163
9.4view命令166
第2篇最优化计算基础篇
第10章优化计算基础171
10.1优化问题实例171
10.2优化问题标准形式172
10.3无约束优化问题173
第11章线性与非线性优化174
11.1线性优化174
11.2非线性优化174
11.3方程和方程组的解175
11.4多项式180
第12章数值方法优化185
12.1非线性方程185
12.2不动点法求解x=g(x)185
12.2.1牛顿法求解方程f(x)=0187
12.2.2Schrder方法求解方程 f(x)=0188
12.3非线性方程组188
12.3.1Seidel法188
12.3.2牛顿迭代法189
第13章优化工具箱194
13.1优化工具箱194
13.1.1标准算法194
13.1.2大规模的算法194
13.2最小化算法195
13.2.1多目标问题195
13.2.2具有边界约束的非线性标量最小化197
13.2.3带约束的非线性最小化198
13.2.4极小极大优化199
13.2.5最小值优化200
13.2.6半无限约束最小值201
13.2.7线性规划201
13.2.8二次规划203
13.3求解方程的算法204
第3篇最优化计算高级篇
第14章遗传算法209
14.1概述209
14.1.1问题解的表示209
14.1.2适应度函数210
14.1.3种群规模初始化211
14.1.4选择机制211
14.1.5交叉操作212
14.1.6变异操作212
14.1.7繁殖算子212
14.2编码和优化问题212
14.3遗传算法的参数213
14.3.1Dejong设置213
14.3.2设置214
14.3.3MicroGA设置214
14.4遗传算法的MATLAB程序214
14.4.1问题1: 最大化给定区间内的给定一维函数214
14.4.2问题2: 旅行商问题216
第15章微粒群优化224
15.1简介224
15.2PSO算法224
15.3PSO的数学模型225
15.4PSO中的参数及参数调优225
15.5MATLAB群体智能的例子226
15.5.1问题1: 模拟集群运动使目标函数最小化226
15.5.2问题2: 粒子群优化行为228
內容試閱
序言前言Foreword最优化计算的英文是Optimization Computation,是在现代计算机广泛应用的基础上发展起来的一项技术。最优化计算根据最优化原理和方法,综合各方面的因素,以人机配合方式或采用自动探索的方式,在计算机上进行半自动或全自动设计,以选出在现有工程条件下最好的设计方案。最优化理论和方法自古就有,最典型的实例即是黄金分割,最优化方法成为科学方法则是在17世纪后。牛顿和莱布尼茨所创建的微积分理论为最优化问题的解决提供了理论基础,后来产生的变分法和简单的库存模型等精确的解析方法可以称为古典最优化方法。最优化计算主要以数学规划为基础,研究各种系统的优化途径及方案,为决策者提供科学决策的依据。随着计算机应用技术的飞速发展,各种可用于最优化方法设计与实现的软件层出不穷,丰富了科研人员的开发研究手段,提高了人们解决实际问题的效率,MATLAB即为其中的一种。利用MATLAB求解最优化问题,可把问题简单化,也可快速、准确地给出最优化的解。MATLAB已被广泛应用于自动控制、系统工程、信息工程、应用数学、机电工程、电子工程、计算机、优化设计等专业领域。为了使广大读者更好地掌握、应用MATLAB求解最优化问题,作者编写了本书。本书主要介绍MATLAB程序设计及最优化计算,内容覆盖了MATLAB编程及最优化设计相关概念、算法、函数、应用,做到理论与实践相结合。本书以MATLAB R2014b为基础,首先介绍MATLAB程序设计的基础知识,然后系统介绍在矩阵计算、数值计算、符号运算和图形绘制等方面的使用方法,最后重点讲解在最优化计算中的应用,通过MATLAB算法编程解决最优化计算问题。通过本书,读者不仅能掌握使用MATLAB最优化工具箱来快速解决实际问题,而且能学会分析优化算法和采用MATLAB编程解决最优化问题,从而提高分析和解决问题的能力,这也是本书的特色之一。本书具有如下优势。(1) 本书以MATLAB的编程为基础,引领读者跨入MATLAB的大门,并向读者展示了MATLAB的强大功能。(2) 本书的内容涵盖了最优化理论和方法,以MATLAB计算功能求解最优化问题。(3) 本书做到了理论与实践相结合。理论的检验和验证也必须通过实践实现,最优化技术理论和系统实验相结合是有效的途径之一。(4) 本书深入浅出、循序渐进地让读者从整体上把握最优化计算的实质,进而可将实际问题抽象成易于理解的数学模型,同时利用MATLAB语言进行求解。(5) 本书力求内容丰富,各章节相互联系,内容具有系统性、科学性、实用性和引导性;同时,各章节又相对独立,自成体系,为读者提供极大方便。(6) 在介绍最优化设计的章节中,每章都应用MATLAB解决各领域中的实际最优化问题,从而降低读者的学习门槛、提高学习效率。本书内容比较详尽,内容的取舍和安排恰当、循序渐进,讲解通俗易懂,实例丰富,并注重培养解决实际问题的能力。力求降低学习难度,通过丰富的算法、经典的实践例子来引导学习。本书适用于计算应用、最优化领域和科学计算方向的研究人员使用,也可作为高等院校学习该类课程的本科生和研究生的教材,还可供读者作为查询最优化数学问题求解方法的参考书。本书在编写过程中,得到了姜珍妮、任丽艳等研究生同学的大力支持,她们认真、仔细地校对了书中的内容,在此表示感谢。由于时间仓促和水平所限,书中难免有纰漏之处,请各位读者批评指正。
编者2016年10月◆MATLAB程序设计与最优化计算


第3章chapter3
MATLAB编程3.1带标量的算术运算在本节中,只讨论带数字标量的算术运算。数字可以直接用在算术计算中,或者可以通过赋值给变量,然后用在计算中。常用算术运算符列表如表31所示。表31常用算术运算符列表运算符 号 标 志示例加法 5 3减法-5-3乘法*5*3右除53左除\\5\\3=35幂运算^5^3(等价于125)可以看出,除左除号外的所有符号在多数运算中都是一样的,对于标量来说,左除号是右除的逆反,但是左除通常用于数组的运算。3.1.1优先级MATLAB根据表32所示的优先级执行运算,这个顺序在大多数运算器中是一样的。表32算术运算符的优先级优先级数 学 运 算1(最高)括号。当出现括号嵌套时,最内层的括号先执行2幂运算3乘、除(优先级相同)4(最低)加、减在一个有多个运算的表达式中,先执行高优先级的运算,如果两个或多个运算符有相同的优先级,则从左至右依次执行表达式,3.1.2节将会讲到,括号可以用来改变优先级。3.1.2用MATLAB作计算器使用MATLAB的最简单的方法是把它当作一个计算器,这个可以通过在命令行窗口输入数学表达式并按回车键来实现,MATLAB会计算这个表达式,并在下一行显示ans=返回运算结果,如例31所示。◆MATLAB程序设计与最优化计算第◆3章MATLAB编程例31用MATLAB作计算器。1. 7 82%输入并按回车键,先计算822. ans=3. 114. 7 82%输入并按回车键,先计算7 85. ans=6. 7.50007. 4 53 2%先计算538. ans=9. 7.666710. 5^32%先计算5^3,然后计算211. ans=12. 62.500013. 27^13 32^0.2%先计算13,然后计算27^13和32^0.2,最后计算加法14. ans=15. 516. 27^13 32^0.2%先计算27^1和32^0.2,然后计算3,最后计算加法17. ans=18. 1119. %输入3个点并按回车键可以在下一行继续输入表达式20. 0.7854-0.7854^3123 0.7854^51234521. -0.785^7123456722. %最后这个表达式是泰勒公式的前四项23. ans=24. 0.70713.2基本内置函数除了基本的算术运算之外,MATLAB中的表达式还可以包含函数,MATLAB中有一个很大的内置函数库,一个函数由一个函数名和一个用括号括起来的参数组成,例如,计算平方根的函数为sqrt(x),它的名字是sqrt,参数是x。当使用函数时,参数可以是数字,也可以是赋了数值的变量,或者是一个由数字或变量组成的计算表达式,参数或表达式中也可以包含某个函数,例32中显示了当用MATLAB作计算器处理标量时,使用sqrt(x)函数的示例。例32内置函数sqrt的使用。1. sqrt64%参数为一个数字2. ans=3. 84. sqrt50 143%参数为一个表达式5. ans=6. 9.59177. sqrt54 9sqrt100%参数中包含一个函数8. ans=9. 1210. 15 6004sqrt121%函数包含在表达式中11. ans=12. 15表33~表35列出了一些常用的基本MATLAB的数学内置函数,完整的按目录编排的函数列表可以在帮助窗口中找到。表33基本数学函数函数描述举例sqrt(x)求平方根 sqrt(81)ans=9nthroot(x,n)实数x的第n个实根(若x为负数,n必须为奇数且为整数) nthroot(80,5)ans=2.4022exp(x)指数函数 exp(5)ans=148.4132abs(x)求绝对值 abs(-24)ans=24log(x)求以e为底的对数 log(1000)ans=6.9078log10(x)求以10为底的对数 log10(1000)ans=3factorial(x)求x的阶乘,x必须为正数 factorial(5)ans=120表34三角数学函数函数描述举例sin(x)sind(x)求用弧度表示的角的正弦值求用度数表示的角的正弦值 sin(pi6)ans=0.5000cos(x)cosd(x)求用弧度表示的角的余弦值求用度数表示的角的余弦值 cosd(30)ans=0.8660tan(x)tand(x)求用弧度表示的角的正切值求用度数表示的角的正切值 tan(pi6)ans=0.5774cot(x)cotd(x)求用弧度表示的角的余切值求用度数表示的角的余切值 cotd(30)ans=1.7321表35取整函数函数描述举例round(x)求近似于x的最大整数 round(175)ans=3fix(x)取整函数 fix(135)ans=2ceil(x)求不小于x的最小整数 ceil(115)ans=3floor(x)求小于等于数值x的最大整数 floor(-94)ans=-3rem(x,y)求xy的余数 rem(13,5)ans=3sign(x)符号函数,若x0,函数返回1;若x sign(5)ans=1对以弧度表示的角适用的反三角函数有asind(x)、acos(x)、atan(x)、acot(x);对以度表示的角适用的反三角函数有asind(x)、acosd(x)、atand(x)、acotd(x);双曲三角函数有sinh(x)、cosh(x)、tanh(x)和coth(x)。表34使用了pi,等于。3.3关系和逻辑运算符一个关系运算符通过判断一个比较表达式(如5=大于等于大于==等于=、~=)。(1) 关系运算符通常作为算术运算符用在数学表达式中,其结果可以用在其他数学运算中,也可以用在数组表示中,还可以和其他命令结合(如if语句)来控制程序的流程。(2) 当比较两个数字时,如果根据关系运算符比较的结果是真,则结果为1(逻辑上为真);如果比较的结果为假,则结果为0(逻辑上为假)。(3) 当比较两个标量时,结果也为标量1或0,如果比较的是数组(只有当数组的大小一样时才能相互比较),比较是通过逐个取出元素来进行比较的,结果为一个和原来数组大小一样的逻辑数组,其元素为0或1,每个地址中根据比较的结果来确定是1或0。(4) 如果将标量和数组进行比较,则实际上是将该标量和数组中的每个元素进行比较,并且结果也是一个由0或1构成的逻辑数组,根据每一次比较的结果来确定是0还是1。下面是一些例子: 1. 58%判断5是否大于8,因为5不大于8,所以结果为02. ans=3. 04. a=5 y=68 53==604%在数学表达式中用关系运算符8. %68=0,因为7小于89. %53==604=1,因为表达式左右的值相等10. y=11. 212. b=\[15 6 9 4 11 7 14\];c=\[8 20 9 2 19 7 10\];%定义向量b和c13. d=c=b%判断c中的元素是否大于等于b中的元素14. d=15. %当c中元素的值大于等于b中的元素时,结果为116. 0 1 1 0 1 1 017. b==c%判断b中的元素是否等于c中的元素18. ans=19. 0 0 1 0 0 1 020. b~=c%判断b中的元素是否不等于c中的元素21. ans=22. 1 1 0 1 1 0 123. f=b-c0%用b中的元素减去c中的元素并判断结果是否大于024. f=25. 1 0 0 1 0 0 126. A=\[2 9 4;-3 5 2;6 7 -1\]%定义了一个33的矩阵27. A=28. 2 9429. -3 5230. 6 7-131. B=A r=\[8 12 9 4 23 19 10\]%定义一个向量r2. r=3. 812 9 42319104. s=r t=rs%用逻辑向量s在向量r中进行寻址,并创建向量t8. t=%向量t由r中与s中元素为1的位置向对应的位置的元素组成9. 8 9 41010. w=rr 3 4 3 4 3&7%3和7均为真,所以结果为12. ans=3. 14. a=5|0%把5|0的结果赋值给a5. a=%a为1,因为至少有一个为真6. 17. ~25%非258. ans=%结果为0,因为25为真,取相反,结果为假9. 010. t=2512&0 ~0 0|5%把逻辑运算符用在数学表达式中11. t=12. 5013. x=\[9 3 0 11 0 15\];y=\[2 0 13 -11 0 4\];%定义了两个向量x和y14. x&y%结果为一个向量,为1的位置是两个数都为真的位置,否则为015. ans=16. 1 0 0 1 0 117. z=x|y%结果为一个向量,为1的位置是两个数中至少有一个为真,否则为018. z=19. 1 1 1 1 0 120. ~x y%结果为一个向量,为1的位置是当x y为假时,否则为021. ans=22. 0 0 0 1 1 03.3.3优先级算术运算符、关系运算符和逻辑运算符可以在数学表达式中结合在一起使用。当一个表达式包含上述组合时,运算结果取决于运算执行的顺序。MATLAB中运算符的优先级如表38所示。表38运算符的优先级列表优先级运算符1(最高)括号(如果括号出现嵌套,则最内层的括号优先级最高)2幂运算3逻辑非(~)4乘和除5加和减6关系运算符(、=、 x=-2;y=5;%定义变量x、y2. %这个不等式在数学上是正确的,但是在MATLAB中是错误的3. %因为MATLAB是自左至右执行的,-5 -5 -5 ~y ~y=8结果为0、x ~y=8|x=8结果为0、x=8,结果为122. %再执行"|",结果为123. ~y=8|x xor(7,0)ans=1 xor(7,-5)ans=0all(A)若向量A中的元素均为真,则返回1,如果一个或多个元素为假,则返回0;若A是矩阵,则将A的列看作向量,返回的是由0和1构成的向量 A=\[6 2 15 9 7 11\]; all(A)ans=1 B=\[6 2 15 9 0 11\]; all(B)ans=0any(A)若向量A中的任意一个元素为真,则返回1;若A中的所有元素都为0,则返回0;若A为矩阵,则将A看作是列向量,返回的是由0和1构成的矩阵 A=\[6 0 15 0 0 11\]; any(A)ans=1 B=\[0 0 0 0 0 0\]; any(B)ans=0find(A)find(Ad)若A为向量,则返回的是非零元素的位置若A为向量,则返回的是比d大的元素的地址 A=\[0 9 4 3 7 0 0 1 8\]; find(A)ans=2 3 4 5 8 9 find(A4)ans=2 5 94种逻辑运算符的逻辑运算可以用表311表示。表311逻辑运算规则INPUTOUTPUTABANDA&BORA|BXOR(A,B)NOT~ANOT~Bfalsefalsefalsefalsefalsetruetruefalsetruefalsetruetruetruefalse续表INPUTOUTPUTABANDA&BORA|BXOR(A,B)NOT~ANOT~Btruefalsefalsetruetruefalsetruetruetruetruetruefalsefalsefalse3.4条 件 语 句一个条件语句是一个命令,它允许MATLAB根据条件语句来决定是否执行一组命令或跳过这些命令。在条件语句中会有一个条件表达式,如果表达式为真,则执行条件语句后面的一组命令;如果表达式为假,则跳过这组命令。条件语句的基本格式如下: if 由关系运算符或逻辑运算符构成的条件表达式示例: if a7)if(x13)|(yt并且s0,或者f0,则最后一次循环时k的值为小于t的最大值(如k=8:10:50,一共循环5次, k=8, 18, 28, 38, 48);如果s x=1x=16x=49x=1003.6.2whileend循环当需要使用循环并且循环的次数事先未知时通常使用whileend循环,当循环开始时,循环的次数是不能事先确定的。而且,只要满足用户定义的条件,循环就会一直进行下去。whileend循环的结构如下:while conditional expressionsend第一行是一个包含条件表达式的while语句,如果表达式的结果为假(0),MATLAB就跳到end语句,并继续执行下面的代码;如果条件表达式的结果为真(1),MATLAB就执行while和end之间的命令,然后再次跳到while语句,检查是否满足条件表达式,直到不再满足条件表达式,循环结束。whileend循环的正确执行需要满足:(1) while语句中的条件表达式必须至少包含一个变量。(2) 在MATLAB执行while语句之前,条件表达式中的变量必须是已经赋过值的。(3) 条件表达式中的变量至少得有一个变量的值在循环中是不断更新的,否则的话一旦循环开始就不会结束,因为条件表达式一直为真。一个简单的whileend循环示例如下。在下面的代码中,x的初始值为1,并且当x=0.5,则循环将会无限次地进行,可以通过限定循环的次数来避免发生无限循环,当循环的次数超过某个值时,即停止循环。可以在条件表达式中设置最大循环次数,也可以使用break语句实现终止循环。即使再仔细的编程也有可能出错,一旦出现无限循环,用户可以通过Ctrl C或Ctrl Break键来停止循环。3.7嵌套循环和嵌套条件语句循环和条件语句可以和其他循环或条件语句进行嵌套,也就是说,一个循环或条件语句可以在其他循环或条件语句中开始和结束。对于嵌套的循环和条件语句的个数没有具体限制,但是,每一个if、case、for和while语句必须有一个end语句与其对应,图35所示的是一个for循环嵌套在了另一个for循环中,在如图所示的嵌套结构中,如果n=3,m=4,那么k的初始值为1,嵌套循环执行4次,h的值分别为1、2、3、4,最后k=3,嵌套循环又执行4次,每当输入嵌套的循环语句时,MATLAB会自动缩进新循环,嵌套循环和条件表达式的显示如图35所示。图35嵌套循环的结构3.8break和continue语句〖*2〗1. break语句 1) 当break语句写在循环语句(for循环或while循环)的内部时,通常用来终止循环(指的是整个循环,不只是最后一次循环);当循环语句中出现break语句时,MATLAB会直接跳到end语句,并继续执行下面的代码(不会再跳回到for循环语句)。(2) 如果break语句写在嵌套循环的内部,则只终止嵌套循环。(3) 当break语句写在循环的外部,则会终止整个程序的执行。(4) break语句通常用在条件语句中,在循环内部,如果满足条件,则终止循环,例如,循环的次数超过了某个预定义的值,或误差小于阈值。break语句写在循环的外部时,则会终止整个程序的执行,比如当数据传递到一个函数时,与期望不符,可以用break语句来终止执行。2. continue语句(1) continue语句可以用在循环内部(for循环或while循环)来跳出本次循环,或者开始下次循环。(2) continue语句也通常写在条件语句中,当执行到continue语句时,MATLAB不会执行continue后面的语句,而是直接跳到end语句,并开始下次循环。第4章chapter4
脚本与函数文件到目前为止,所有的命令都是在命令行窗口中输入的,当按回车键之后,命令执行。虽然每一个MATLAB命令都可以用这种方式执行,但是用命令窗口来执行命令有时不是很方便,或许很困难,甚至是不可能的,尤其当所要执行的程序与其他程序有关系时,命令行窗口的命令不能保存并再次执行。另外,命令行窗口不是交互的,也就是说当按回车键时,只有最后一个命令会执行,前面已执行的命令结果不会改变,如果需要修改之前已经执行过的命令,并且把命令的结果用在后面的程序中,那么就需要重新输入所有的命令并再次执行。用户自定义的函数是一个由用户创建的MATLAB程序,并作为函数文件保存,相当于一个内置函数。函数可以是一个简单的单个数学表达式,或者是包含多个计算公式的复杂表达式,通常情况下为一个计算机程序的子程序,函数文件的主特征是有一个输入和一个输出,也就是说函数中的计算通过使用输入的数据来完成,计算的结果通过输出语句显示出来,输入和输出语句中可以有一个或多个变量,可以是标量、向量或任意大小的数组。用户自定义函数除了可以用作数学函数之外还可以用作大程序中的子程序,这样大程序就可以由多个程序块构成,以方便独立调试,函数文件类似于Basic语言和FORTRAN语言中的子路,Pascal中的程序和C语言中的函数。4.1脚 本 文 件用MATLAB执行程序的另外一种方式是首先创建一个程序文件,并保存,然后执行。当运行程序时,文件中的命令会按照列出的顺序依次执行,如果需要更改命令,可以打开文件进行更改,并保存,然后再次执行,这样的文件就称为脚本文件。4.1.1使用脚本文件的注意事项(1) 脚本文件是一系列MATLAB命令,也称为程序。(2) 当执行脚本文件时,MATLAB会按照程序编写的顺序依次执行,就像在命令行窗口中一样。(3) 如果脚本文件有输出(如给一个变量赋值,并且语句末尾没有分号),那么输出结果会显示在命令窗口中。(4) 因为脚本文件的可编辑性并可多次执行,所以说使用脚本文件是很方便的。(5) 脚本文件可以在任意一个文本编辑器中进行编辑,并粘贴到MATLAB中。(6) 脚本文件也称M文件,因为其扩展名是m。◆MATLAB程序设计与最优化计算第◆4章脚本与函数文件4.1.2脚本文件的创建与保存在MATLAB中,可以在编辑调试窗口创建和编辑脚本文件,这个窗口可以通过在命令行窗口的工具条中选择New Script图标来打开,或者直接在工具条中单击New,然后在打开的菜单中选择Script,打开的编辑调试窗口如图41所示。图41编辑调试窗口编辑窗口的上部有一个工具条,工具条的上方有3个标签: Editor、Publish、View,选择不同的标签会打开不同的图标。选中Home标签就会打开MATLAB的主页,下面的章节会详细介绍执行不同命令所对应的不同图标。一旦打开窗口,脚本文件中的命令是逐行输入的,按回车键,MATLAB会自动编号一个新行,MATLAB的命令可以在任意一个文本编辑器或文本处理程序中进行编辑,然后复制、粘贴到编辑调试窗口,编辑调试窗口中的小程序如图42所示。脚本文件的前几行是注释(不会被执行,因为行首是%)对脚本文件中的命令进行了简单描述。图42编辑调试窗口中的程序执行脚本文件之前必须先保存,可以通过单击工具条中的Save,然后在打开的菜单中选择Save As命令,当保存脚本文件时,MATLAB会在文件名的后面加上后缀.m。命名脚本文件的规则和命名变量的规则是一样的(必须以字母开头,可以包含数字、下划线,不能使用空格,最多包含63个字符), 用户自定义的变量、预定义的变量、MATLAB的命令或者函数名不能用作脚本文件的名字。4.1.3脚本文件的运行可以通过直接在编辑窗口中选择Run图标来运行脚本文件,或者在命令行窗口中输入文件名,并按回车键。对于待运行的文件,MATLAB需要知道文件保存的路径,如果文件保存的路径是MATLAB的当前路径,则可以运行该文件,或者该路径在搜索路径中,这个会在下面详细解释。4.1.4当前路径命令窗口的工具条中的当前路径域中的当前路径显示如图43所示。如果想要通过单击编辑窗口的Run图标来运行脚本文件,但其保存路径不是当前路径,将会出现如图44所示的提示框,用户可以通过更改脚本文件所在的保存路径,或者将其添加到搜索路径中。一旦在一个会话中使用两个或多个当前文件夹,则可以在命令行窗口的Current Folder 域中进行文件夹的切换,也可以在当前文件夹窗口更改当前文件路径,如图45所示。当前文件夹窗口可以通过Desktop菜单打开。通过选择文件保存的磁盘和文件夹来更改当前路径。图43命令窗口的当前路径域图44更改当前路径图45当前文件夹窗口还可以在命令行窗口中使用cd命令来更改当前文件夹,通过输入cd加空格,然后输入磁盘名,并以分号结束,按回车键,即可更改磁盘。例如,为了将当前文件夹保存至E盘,可以输入cd E;如果脚本文件保存在一个磁盘内的文件夹中,可以通过在cd命令中将路径作为一个字符串进行输入,当然这个路径必须得是明确的。例如,cd(''E:\\Chapter 1'')即可将路径设置到E盘的Chapter 1文件夹下,接下来的例子显示了怎样把当前路径改为E盘,然后图42中的保存在E盘中脚本文件就可以通过在命令行窗口中输入文件名并按回车键来运行了。1. cd''E:Chapter 1''%把当前路径改为E盘2. Chap1_Exampl%通过输入脚本文件名并按回车键来执行文件3. x1=%脚本文件的执行结果显示在命令行窗口4. 3.50005. x2=6. -1.250004.2函数文件的创建函数文件和脚本文件类似,都是在编辑调试窗口中创建的。该窗口可以从命令行窗口中打开,首先在工具条中选择New,然后选择Function,如图46所示为打开的编辑调试窗口。编辑器中包含了几行预输入的代码,概括了函数文件的结构,第一行是函数定义行,后面是注释,接着是程序代码(即图46中4~11行),最后一行是end语句,这是可选的,4.3节中将会详细介绍函数文件的结构。图46编辑调试窗口注意: 编辑调试窗口还可以通过选择工具条中的New Script 来打开,或者在工具条中单击New, 然后在打开的菜单中选择Script,用这种方式打开的窗口是空的,没有预输入的代码行,通常情况下,编辑调试窗口可以用来编写脚本文件或函数文件。4.3函数文件的结构一个典型的完整的函数文件结构如图47所示,这个函数文件计算了月支出和贷款的总费用,这个函数文件的输入是贷款的数目、年利率、贷款的时间,函数文件的输出是

 

 

書城介紹  | 合作申請 | 索要書目  | 新手入門 | 聯絡方式  | 幫助中心 | 找書說明  | 送貨方式 | 付款方式 香港用户  | 台灣用户 | 海外用户
megBook.com.tw
Copyright (C) 2013 - 2024 (香港)大書城有限公司 All Rights Reserved.