990 likes | 1.25k Views
第 6 章 利用 MATLAB 语言 求解科学运算问题. 东北大学信息学院 薛定宇. 本课程参考书 薛定宇、陈阳泉,高等应用数学问题的 MATLAB 求解, 2004,2008 ,清华大学出版社 (用于以后求解问题参考) MATLAB 语言符号运算局限性: 目前只支持 32 位 MATLAB 运行,在 64 位操作系统上必须安装 32 位版 MATLAB 从 MATLAB 2008b 开始,符号运算放弃了 Maple 内核,改用 MuPAD 作为符号运算引擎,功能变弱了很多,好些问题不能再求解了. 本章内容提要 (内容多,因学时限制,入门介绍) (详细内容查阅参考教材).
E N D
第6章利用MATLAB语言求解科学运算问题 东北大学信息学院 薛定宇 Slide 1 (of 97)数学建模课程模板 东北大学信息学院
本课程参考书 • 薛定宇、陈阳泉,高等应用数学问题的MATLAB求解,2004,2008,清华大学出版社 (用于以后求解问题参考) • MATLAB语言符号运算局限性: • 目前只支持32位MATLAB运行,在64位操作系统上必须安装32位版MATLAB • 从MATLAB 2008b开始,符号运算放弃了Maple内核,改用MuPAD作为符号运算引擎,功能变弱了很多,好些问题不能再求解了 Slide 2 (of 97)数学建模课程模板 东北大学信息学院
本章内容提要(内容多,因学时限制,入门介绍)(详细内容查阅参考教材)本章内容提要(内容多,因学时限制,入门介绍)(详细内容查阅参考教材) • 解析解与数值解 ch1 • 线性代数问题求解 ch4 简单介绍 • 非线性方程求解 ch6 • 最优化问题求解 ch6 • 微分方程求解 ch7 • 数据插值、处理与拟合 ch8 • 其他应用 Slide 3 (of 97)数学建模课程模板 东北大学信息学院
6.1 解析解与数值解 • 由已知公式一步步推导出的解 • 例如,高等数学计算,复杂问题不能手工求解,需要借助计算机 • 解析解不存在或不现实,需要数值解 • 不存在 • 不存在 p,工程应用3.14159即可 • 高阶矩阵的行列式,计算量 Slide 4 (of 97)数学建模课程模板 东北大学信息学院
6.2 线性代数问题的计算机求解 • 矩阵分析问题由简单命令即可 • 行列式 det(A) • 特征值 eig(A),[v,d]=eig(A) • 逆矩阵 inv(A),伪逆pinv(A) • 范数 norm(A,1), norm(A,2), norm(A,inf) • 特征多项式系数 poly(A) • 函数调用方法 • eig(A), eig(sym(A)) Slide 5 (of 97)数学建模课程模板 东北大学信息学院
6.2.2 其他线性代数问题求解 • 线性代数方程求解 • 解的判定矩阵 • 三种情况 • 唯一解 • 无穷多解 • 无解,最小二乘解 • Lyapunov方程、Riccati方程等 • lyap、are等函数可以直接求解 • 矩阵函数求解 Slide 6 (of 97)数学建模课程模板 东北大学信息学院
6.3 非线性方程求解 • 非线性方程的解析解 • 什么时候存在解析解? • 单变量多项式方程 • 可以转换成单变量多项式方程的多元方程 • 准解析解 • 非线性方程的数值解 • 图解法 • 任意指定初值进行搜索求解 • 非线性矩阵方程的求解 Slide 7 (of 97)数学建模课程模板 东北大学信息学院
6.3.1 非线性方程的解析解求解 • MATLAB的solve函数可以求解方程 • 简单例子:鸡兔同笼问题的直接求解 • 数学问题 • MATLAB求解语句 Slide 8 (of 97)数学建模课程模板 东北大学信息学院
复杂例子 • 数学形式 • MATLAB求解语句(准解析解) • 解的检验 Slide 9 (of 97)数学建模课程模板 东北大学信息学院
另一个复杂例子 • 求解 • 检验 Slide 10 (of 97)数学建模课程模板 东北大学信息学院
非线性方程的准解析解 • 考虑非线性方程 • 求解 • 验证 • 问题:该方程只有这一个解吗? Slide 11 (of 97)数学建模课程模板 东北大学信息学院
6.3.2 一元、二元方程的图解法 • 图解法只适合求解一元、二元方程 • 利用隐函数绘制函数ezplot,辅以hold on,可以把联立方程的解画在一个坐标系下 • 重解前例 • MATLAB语句 Slide 12 (of 97)数学建模课程模板 东北大学信息学院
6.3.3 一般非线性方程的数值求解 • 方程的标准型 其中,均是列向量或矩阵,维数相同 • 求解步骤: • 选择变量 ,将非线性方程表示成标准型形式 • 编写MATLAB程序描述原方程 • *.m函数形式、inline函数、匿名函数形式 • 调用fsolve函数求解方程 Slide 13 (of 97)数学建模课程模板 东北大学信息学院
求解实例,仍考虑前面例子 • 选择变量 ,则 • 向量形式 Slide 14 (of 97)数学建模课程模板 东北大学信息学院
用MATLAB描述 • 匿名函数描述 • MATLAB函数描述,生成 myeq.m文件 • 求解、验证 Slide 15 (of 97)数学建模课程模板 东北大学信息学院
提高求解精度 • 停止迭代条件 • TolX • TolFun • MaxIter: 最大迭代步数超限,默认500步 • 设置方法 • 求解、检验 • 寻找其他解:换初值 Slide 16 (of 97)数学建模课程模板 东北大学信息学院
6.3.4 非线性矩阵方程计算机求解 • 能直接求解矩阵方程 • 举例,扩展Riccati方程 其中 • 求解、检验、其他解 Slide 17 (of 97)数学建模课程模板 东北大学信息学院
6.3.5 求解方法比较、总结 • 图解法 • 局限性:一元二元,精度低 • 优点:显示出感兴趣区域全部实根 • 准解析解方法 • 局限性:多项式类方程、不能选择初值 • 优点:全部根包括复根、精度高 • 一般数值解法 • 局限性:实根、依赖于初值 • 优点:任意非线性方程、精度适中、矩阵方程 Slide 18 (of 97)数学建模课程模板 东北大学信息学院
6.4 最优化问题求解 • 无约束最优化问题 • 有约束最优化问题 • 特殊问题 • 线性规划 • 二次型规划 • 一般问题 • 进化算法及其全局最优解法 • 整数规划、混合整数规划、0-1规划 • 动态规划与最短路径求解 Slide 19 (of 97)数学建模课程模板 东北大学信息学院
6.4.1 无约束最优化问题求解 • 数学形式 ,最大值问题的变换 • 物理意义介绍 • 目标函数描述 • 匿名函数、M函数 • MATLAB求解 Slide 20 (of 97)数学建模课程模板 东北大学信息学院
无约束最优化求解举例 • 求解步骤 • 变换成标准型,引入 ,则 • 描述目标函数 • 求解 Slide 21 (of 97)数学建模课程模板 东北大学信息学院
图形验证 • 中间 过程 Slide 22 (of 97)数学建模课程模板 东北大学信息学院
带有变量边界约束的最优化问题 • 数学描述 • 问题求解方法 • 可以按照有约束最优化问题求解 • 利用免费工具箱求解 http://www.mathworks.com/matlabcentral/fileexchange/ loadFile.do?objectId=8277&objectType=file Slide 23 (of 97)数学建模课程模板 东北大学信息学院
最优化问题求解其他考虑 • 全局最优解和局部最优解 • 几何解释 • 如何避免 • 初值考虑、多初值 • 并行算法,如遗传算法 • 最优化加速算法 • 最优区域过于平缓 • 考虑采用利用梯度信息 Slide 24 (of 97)数学建模课程模板 东北大学信息学院
6.4.2 有约束最优化问题的求解 • 有约束最优化问题的数学形式 • 约束条件,≥不等式的处理 • 特殊形式 • 线性规划问题 • 二次型规划形式 • 一般最优化问题 Slide 25 (of 97)数学建模课程模板 东北大学信息学院
线性规划问题 • 一般数学形式 • MATLAB求解 Slide 26 (of 97)数学建模课程模板 东北大学信息学院
线性规划问题举例 • 提取矩阵、向量,对号入座 • 求解 Slide 27 (of 97)数学建模课程模板 东北大学信息学院
双下标线性规划问题举例 • 线性规划不能直接求解双下标问题 • 引入变换,变成单下标问题,如 Slide 28 (of 97)数学建模课程模板 东北大学信息学院
变换后的问题 • 求解 Slide 29 (of 97)数学建模课程模板 东北大学信息学院
二次型规划问题求解 • 数学标准型 • MATLAB求解函数 • 注意事项 • 注意1/2系数 Slide 30 (of 97)数学建模课程模板 东北大学信息学院
一般有约束非线性规划问题求解 • 数学形式 • MATLAB求解 Slide 31 (of 97)数学建模课程模板 东北大学信息学院
非线性规划举例 • 非线性约束条件的MATLAB描述 • 目标函数 Slide 32 (of 97)数学建模课程模板 东北大学信息学院
求解 • 另一种求解方法 Slide 33 (of 97)数学建模课程模板 东北大学信息学院
实际最优化问题举例 • 数学形式 • 多个变量需要优化,不能直接求解 • 引入决策变量进行替换,生成 x 向量 Slide 34 (of 97)数学建模课程模板 东北大学信息学院
变换后的最优化问题标准型 • 非线性规划 • 线性等式不等式约束、非线性等式约束 Slide 35 (of 97)数学建模课程模板 东北大学信息学院
非线性约束 • 问题求解 Slide 36 (of 97)数学建模课程模板 东北大学信息学院
6.4.3 进化算法及全局最优解法 • 为什么要引入进化算法? • 传统方法过于依赖初值,容易产生局部最优解 • 一元函数举例 Slide 37 (of 97)数学建模课程模板 东北大学信息学院
常用进化算法 • 遗传算法 • PSO—粒子群优化算法 • 蚁群算法 • 遗传算法的基本思路 • 基于生物界优胜劣汰、适者生存法则寻优 • 同时从多点开始并行搜索全局最优点 • 用数学方法实现了交叉、遗传、变异等 • 常用概率方法进化,每次的结果不同 Slide 38 (of 97)数学建模课程模板 东北大学信息学院
两个遗传算法工具箱可以使用 • 遗传算法最优化工具箱(GAOT)下载 • http://www.ise.ncsu.edu/mirage/GAToolBox/gaot/ • 主函数调用 • 遗传算法与直接搜索工具箱(GADS) Slide 39 (of 97)数学建模课程模板 东北大学信息学院
单变量最优化问题举例 • 求最大值 • 目标函数定义 (GAOT) • 求解方法 • GAOT工具箱求解 • GADS解法 Slide 40 (of 97)数学建模课程模板 东北大学信息学院
多变量问题举例 • GAOT工具箱求解 • GADS工具箱求解 Slide 41 (of 97)数学建模课程模板 东北大学信息学院
有约束最优化问题求解 • 线性规划 • GAOT求解 • 不能求解有约束最优化,引入惩罚函数,即不满足约束条件时认为设置小目标函数 • 不能求解等式约束,需要解出,如 Slide 42 (of 97)数学建模课程模板 东北大学信息学院
含有约束条件的目标函数(两个变量) • 求解语句 • 线性规划问题直接求解 Slide 43 (of 97)数学建模课程模板 东北大学信息学院
遗传算法小结 • 优点 • 可以求取全局最优解 • 计算量恒定,适合于在线寻优 • 缺点 • 适用范围窄,无约束最优化 • 精度低 • 利用遗传算法的优点 • 用遗传算法获得不精确的初值 • 由初值出发利用传统搜索方法寻优 Slide 44 (of 97)数学建模课程模板 东北大学信息学院
6.4.4 整数规划和混合整数规划 • 什么是整数规划、混合整数规划、0-1规划 • 数学形式 • 常用有效求解算法:分枝定界法 • 利用免费工具箱bnb20直接求解 • 下载地址 http://www.mathworks.com/matlabcentral/fileexchange/95 Slide 45 (of 97)数学建模课程模板 东北大学信息学院
bnb20 工具箱使用和改进 • 调用格式 • 关键点:intlist的写法 • 程序编写较早,有待改进 • 调用前 • 调用后 Slide 46 (of 97)数学建模课程模板 东北大学信息学院
整数规划举例 • 数学问题(线性规划) • 要求所有决策变量均为整数 Slide 47 (of 97)数学建模课程模板 东北大学信息学院
混合整数规划 • 若决策变量1,4,5要求为整数 • bnb20的局限性 • 不能采用匿名函数 • 版本兼容性需要小修改 Slide 48 (of 97)数学建模课程模板 东北大学信息学院
0-1规划问题求解 • MATLAB只提供了0-1线性规划问题求解函数binprog,不能求解一般非线性问题 • 可以利用bnb20直接求解 • 求解技巧: 分别设置为0、1向量 Slide 49 (of 97)数学建模课程模板 东北大学信息学院
6.5 动态规划及最短路径求解 • 动态规划 Slide 50 (of 97)数学建模课程模板 东北大学信息学院