




已阅读5页,还剩100页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第七章Matlab及其应用 a Matlab简介b 优化问题的计算 无约束最优化问题 约束最优化问题 最小二乘优化问题 非线性方程的优化解 1Matlab简介 一 数学软件 1980年 Wolfram公司推出Mathematica软件 1982年 Mathwork公司推出了Matlab软件 同时Materloo大学推出Maple软件 这三大软件成为当今世界上最流行的数学软件 为解决现代科学计算 工程技术问题 生产经营管理问题提供了重要工具 Mathematica软件着重于符号运算 作图功能 Matlab软件着重于数值计算 模拟功能 二 Matlab介绍 Matlab Matrixlabboratory 的直接含义是矩阵实验室 最初为两个矩阵软件包 Linpack Eispack 提供接口技术 后来逐渐发展成为科技计算 视图交互系统和程序语言 Matlab明显不同于其他高级语言 Fortran语言 语言 它的编辑 编译 连接和执行四个步骤容为一体 利用MATLAB可以方便地处理诸如矩阵变换及运算 多项式运算 微积分运算 线性与非线性方程 组 求解 插值与拟合 常微分方程求解 偏微分方程求解 特征值问题 概率统计 优化计算等 已延伸到了许多领域 信号处理 神经网络 频率识别 鲁棒控制 小波分析 模糊逻辑等 Matlab作为高等学校有关课程的基本教学工具 例如 数学试验 数学建模 线性代数 数值分析 最优化方法 最优控制 数理统计学 数字信息处理 时间序列分析以及动态系统的仿真等课程均适宜应用Matlab作为教学工具 Matlab是国外大学本科生必须掌握的基本技能 在工程领域 Matlab已成为工程师进行设计 科研的强有力工具 三 使用Matlab需要注意的地方 在Matlab语言中 英文字母大小写要加以区别 和 代表不同的变量 所有的内部函数 外部函数名均由小写字母构成 如 inv a 有意义 而INV a 无意义 标识符 变量 函数 以字母打头 最多19个字符 help提供在线帮助 如调用helpfmin将显示内部函数fmin的内容 demo 内部函数 提供功能演示 在Matlab的Command空间中有一个菜单help 在其下拉菜单中有一个子菜单ExamplesandDermos 其中列出最优化方法的各种算例 path 内部函数 显示当前Matlab搜索路径 Matlab的特点 基本数据单位是矩阵或数组 且无需定义矩阵或数组的维数 易于扩展 允许用户自定义 文件 从而扩大内部函数的功能 Matlab易学易用 指令表达与数学习惯和工程中的常用习惯相似 窗口说明 例 对 进行一维搜索 初始搜索区间 0 1 函数的图像 程序设计 MATLAB实际上是一种解释性语言 可以通过人机交互式的命令行指令操作方式工作 还可以象C语言等其他高级计算机语言一样进行控制流的程序设计 具体做法是编制一种以m为扩展名的文件 简称为M文件 M文件的两种形式 命令式 函数式 后者应用广泛 下面是0 618法的函数式M文件 functionf Golden Section 一维搜索方法 黄金分割法 初始搜索区间 a b 和迭代精度epsilona 0 b 1 epsilon 0 001 delta a b b a alpha 1 b 0 618 delta a b alpha 2 a 0 618 delta a b f 1 exp alpha 1 alpha 1 2 f 2 exp alpha 2 alpha 2 2 whiledelta a b epsiloniff 1 f 2b alpha 2 alpha 2 alpha 1 f 2 f 1 delta a b b a alpha 1 b 0 618 delta a b f 1 exp alpha 1 alpha 1 2 elsea alpha 1 alpha 1 alpha 2 f 1 f 2 delta a b b a alpha 2 a 0 618 delta a b f 2 exp alpha 2 alpha 2 2 endendalpha 0 5 a b 在M edit窗口中编辑 将上述文件存为Golden section m 在命令窗口中输入Golden section 就会被执行 并给出结果 Golden sectio屏幕显示alpha 0 3517 例 输入两个三阶矩阵 在Matlab的命令窗口发布指令 a 123 456 789 屏幕显示 b 1478910111213 b 147 8910 111213 a 123456789 屏幕显示 例 也可以这样输入 a 123456789 b 1478910111213 屏幕显示 a 123456789b 1478910111213 例2矩阵的加 减 乘 在命令窗口发布指令 a 123 456 789 b 147 8910 111213 a b ans2610121416182022 则屏幕显示 在命令空间发布指令 x 2345 1221 y 011 110 001 100 z x y z 856333 则屏幕显示 矩阵的运算在命令窗口输入 A 21 31 3107 124 2 10 15 求A的行列式 det A 求A的逆 inv A 求A的特征值与特征向量 V D eig A A 21 31 3107 124 2 10 15 L U lu A 矩阵的LU分解 是矩阵分解中比较重要的一种 它在线性方程组的直接解法中有重要的应用 A LU 其中U是三角矩阵 屏幕显示 L 0 66670 14291 000001 0000000 0 33331 0000000 3333 0 14290 12001 0000 U 3 00001 000007 000002 33334 00000 333300 3 5714 3 71430003 1600 A 4 11 14 252 75 12 753 5 chol A 对称正定矩阵的Chollesky 乔列斯基 分解 它在结构有限元分析中有重要的应用 A LLT 其中L是上三角矩阵 屏幕显示 L 2 0000 0 50000 500002 00001 5000001 0000 例3在Matlab中 矩阵的除法用于解线性方程组 设Ax b 其中A为方阵 x为列向量 b为列向量 则指令为 x A b inv A b 即 设xA d 其中A为方阵 x为行向量 d为行向量 则指令为 x d A d inv A 即 在命令窗口输入 A 21 31 3107 124 2 10 15 b 10208 d b 例 多变量无约束优化的DFP拟牛顿法 已知 求A k 1 在命令窗口中输入 A k 21 15 delta g k 25 2 delta X k 3 1 A k 1 A k delta X k delta X k delta X k delta g k A k delta g k delta g k A k delta g k A k delta g k 进一步 求 已知A k 1 在命令窗口中输入 A k 21 15 delta g k 25 2 delta X k 3 1 A k 1 A k delta X k delta X k delta X k delta g k A k delta g k delta g k A k delta g k A k delta g k gradient k 5 12 S k 1 A k 1 gradient k 作业 1 已知 用MATLAB练习 2 分别求A B的转置 行列式 逆矩阵 特征值与特征向量 A和B矩阵的LR分解 A矩阵的乔列斯基分解 作业 2 用0 618法求函数 在区间 0 2 的极小点 精度 0 01 通过Matlab完成 2最优化问题的计算 一 无约束最优化问题 一元函数求极小点 内部命令fminbnd f a b 表示求一元函数f x 在区间 a b 内的极小点 其中f是在edit空间编辑的一个外部函数 m文件 所用算法 黄金分割法与多项式插值法 例1已知 解 自定义Matlab的外部函数 命名为f m functiony f x y 1 x 0 3 2 0 01 1 x 0 9 2 0 04 6 将上述函数文件f m存盘 进入Matlab的命令窗口 发布如下命令 x 0 0 2 1屏幕显示x 00 20000 40000 60000 80001 0000 y f x 屏幕显示y 5 176545 886847 448311 692317 846216 0000 发布如下命令 x 1 0 01 2 y f x plot x y 求函数在 0 5 1 的极小值 发布如下命令 xm fminbnd f 0 5 1 屏幕显示出f x 在0 5 1之间的一个极小点xm 0 6370 当求其极小值时 可发布命令 y f xm 屏幕显示其极小值 y 11 2528 求函数在 0 5 0 的极小值 发布如下命令 xm fminbnd f 0 5 0 屏幕显示出f x 在 0 5 0之间的极小点xm 0 5000 求函数在0 3 1 5 的极小值 发布命令 xm fminbnd f 0 3 1 5 屏幕显示xm 1 5000 外部函数f x 的定义 1 通过m文件定义 2 直接在命令行中定义 xm fminbnd 1 x 0 3 2 0 01 1 x 0 9 2 0 04 6 0 3 1 5 或通过inline直接定义函数 再用fminbnd求极小值 f inline 1 x 0 3 2 0 01 1 x 0 9 2 0 04 6 xm fminbnd f 0 5 1 0 xm 0 6370 内部命令fminsearch f x 表示求f x 在初始点x临近的极小点 可用于求一维和多维函数的极小点问题 fmins f x 算法 Nelder Mead简单算法 单纯形 法 主要思想 构造多面体 不断使其朝极小点移动 同时多面体的体积逐步减小 通过inline直接定义函数 再用fminsearch求x 0 5附近函数的极小值 f inline 1 x 0 3 2 0 01 1 x 0 9 2 0 04 6 xm fminsearch f 0 5 xm 0 6370 例2 x0 0 5 xm fminsearch x 3 sqrt x x0 xm 1 0000 f x 在x 0 5附近的极小点 xm f fminsearch x 3 sqrt x x0 xm 1 0000f 2 0000 给出极小点函数的值 多元函数求极小点 内部命令fminunc f x 表示求多元函数f x 在向量x附近的局部极小值 其中f是外部函数 算法构造中用到了目标函数的解析性质 如梯度或Hessian矩阵 类似拟牛顿法中的DFP法 BFGS法 可以求解规模较大的优化问题 收敛速度快 内部命令fminsearch f x 表示求f x 在初始点x临近的极小点 与上面命令比较 算法上有差别 例 x0 11 xm f fminunc 3 x 1 2 2 x 1 x 2 x 2 2 x0 xm 1 0000f 2 0000 给出极小点函数的值 例 为初始点 最优解为 演示程序 在Matlab的Comand空间中 选择菜单Help项中的子菜单Demos 即列出求解该香蕉函数的六种算法的演示图形 这六种无约束优化算法是 Steepest算法 Simplex算法 DFP算法 BFGS算法 Gauss Newton算法 Levenbrg Marguardt算法 香蕉函数 BananaFunction 解 在Edit空间编辑外部函数 取名fun1 mfunctiony fun1 x y 100 x 2 x 1 2 2 1 x 1 2 2 将m文件fun1存盘 在Comand空间调用fun1 x0 1 9 2 xm f fminunc fun1 x0 xm 1 00001 0000 f 1 1730e 010 Matlab在演示的过程中提到的六种算法的效果并不一样 从演示过程中可以看出 1 从初始点出发能全程达到极小点的算法有Simplex算法 DFP算法 BFGS算法和levenbrg Marguardt算法 2 从初始点出发只能搜索到中途的算法是Steepest算法 3 收敛速度快的是Gauss Newton算法 DFP算法 BFGS算法 练习 用Matlab求解 围内的极小点 在附近的极小点与极小值 二 约束最优化算例 线性规划算法 内部命令linprog f A b 表示求上述线性规划的最优解 其中f为线性规划的目标函数的价值系数 其中 例 解 在Edit空间编辑外部函数 取名fun2 mfunctionf fun2 x f 2 x 1 3 x 2 2 将m文件fun2存盘 在Comand空间调用fun2A 11 11 10 b 10 2 1 f 2 3 x linprog f A b x 6 00004 0000 fun2 x ans 5 6843e 014 2 非线性规划算法 内部命令constr fg x f为非线性规划的目标函数 g代表约束条件 x代表初始点 例 解 在Edit空间编辑外部函数 取名fun3 mfunction f g fun3 x f exp x 1 4 x 1 2 2 x 2 2 4 x 1 x 2 2 x 2 1 g 1 1 5 x 1 x 2 x 1 x 2 g 2 x 1 x 2 10 2 将m文件fun3存盘 在Comand空间调用fun3x 11 x constr fun3 x x 9 54741 0474 f g fun3 x f 0 0236 g 1 0e014 0 1110 0 1776 例5下界条件与上界条件 在例 中 若对决策变量x限定在某一区域内 如vlb x vub 其中vlb vub均为二维向量 则用如下语句 x constr fun3 x options vlb vub 在例 中增加条件x 0 则调用时应用如下命令 x 1 1 赋初值 options 阐述说明向量使用缺省值 vlb 0 0 赋下界 vub 无下界 x constr fun3 x options vlb vub 经 次迭代后 问题的解为 x 01 5000 f g fun3 x f 8 5000 g 0 10 例 等式约束和不等式约束在例 中加入等式约束 解 在Edit空间编辑外部函数 取名fun4 mfunction f g fun4 x f exp x 1 4 x 1 2 2 x 2 2 4 x 1 x 2 2 x 2 1 g 1 x 1 x 2 g 2 1 5 x 1 x 2 x 1 x 2 g 3 x 1 x 2 10 2 将m文件fun4存盘 在Comand空间调用fun4x 11 options 13 0 x constr fun4 x options x 1 22471 2247 f g fun3 x f 1 8951 g 0 0000 0 0000 8 5000 经 次迭代后的解 参数说明 options共有18个分量 包含了在优化程序中需要用到的所有参数 三 线性最小二乘问题 众所周知 已知实测数据用多项式 去拟合曲线 则问题归结为求超静定方程组Ax b 其中 Ax b的非常义解 最小二乘解 就是如下最小二乘问题的解 Matlab给出了非负的线性最小二乘问题的解法 内部函数为lsqnonneg A b A为超静定方程的系数矩阵 b为右端项 例 解超静定方程组 上述方程组的矩阵形式为Ax b 其中 解 在Command空间发布命令 A 24 3 5 12 21 b 11367 X lsqnonneg A b X 3 04031 2418 例 已知实测数据如下 试用一次 二次多项式拟合y f x x 1 00 0 75 0 50 0 2500 25
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年县级农业技术员招聘考试全真模拟题及详解
- 2025年船舶驾驶员英语模拟题库
- 公务员面试题及答案排序
- 2025年政府部门招聘公务员笔试模拟题及答案解析
- 2025年软件开发过程中的质量控制与测试技巧实战教程
- 2025年初级会计职称考试应试技巧与解析
- 2025年航空机械专业基础知识面试模拟题集与解析
- 2025年碳汇项目开发师蓝碳方向考试必-备知识点
- 2025年银行系统技术部招聘笔试精讲与答案
- 2025年裂解过程优化模拟测试
- 公安行政案件办理务实课件
- 房地产样板间装饰工程重点难点及措施
- 康复科护理金点子
- 工地油库安全管理办法
- 全球治理转型-洞察及研究
- 高等数学课程教学中遇到的问题及解决对策
- (高清版)DB32∕T 4001-2025 公共机构能耗定额及计算方法
- 电力物资打包方案(3篇)
- 2025至2030中国味精行业发展趋势分析与未来投资战略咨询研究报告
- 你的样子就是教育的样子-一位校长对教师行为规范的深度思考建议收藏
- 中医治疗泌尿系结石课件
评论
0/150
提交评论