高等应用数学问题的MATLAB求解东北大学信息学院1/19512/18/2019星期六,2008-9-6,13:09:29第6章代数方程与最优化问题的计算机求解代数方程的求解无约束最优化问题求解有约束最优化问题的计算机求解混合整数规划问题的计算机求解线性矩阵不等式问题求解多目标优化问题求解动态规划及其在路径规划中的应用高等应用数学问题的MATLAB求解东北大学信息学院2/19512/18/2019星期六,2008-9-6,13:09:296.1代数方程的求解代数方程的图解法多项式型方程的准解析解法一般非线性方程数值解非线性矩阵方程求解高等应用数学问题的MATLAB求解东北大学信息学院3/19512/18/2019星期六,2008-9-6,13:09:296.1.1代数方程的图解法一元方程的图解法二元方程的图解法用ezplot()函数可以绘制出给定的隐函数f(x)=0曲线,所以可以用图解法从给出的曲线和y=0线的交点上读出所有的实数解。高等应用数学问题的MATLAB求解东北大学信息学院4/19512/18/2019星期六,2008-9-6,13:09:29例6.1用图解法求解方程:MATLAB求解命令验证:t=0.6738高等应用数学问题的MATLAB求解东北大学信息学院5/19512/18/2019星期六,2008-9-6,13:09:29例6.2用图解法求解联立方程:画第一个函数:画第二个函数:高等应用数学问题的MATLAB求解东北大学信息学院6/19512/18/2019星期六,2008-9-6,13:09:296.1.2多项式型方程的准解析解法特殊的高阶方程如多项式型方程,可以用solve函数直接解出Abel-Ruffini定理证明5阶以上的多项式型方程没有解析解一般的数值算法得出的解不精确得出高精度解的方法存在很多方程可以转换成多项式方程高等应用数学问题的MATLAB求解东北大学信息学院7/19512/18/2019星期六,2008-9-6,13:09:29例6.3试用图解方法求解二元方程MATLAB求解命令:显然,一个圆,一条三次曲线,两个交点问题:方程有多少个根?高等应用数学问题的MATLAB求解东北大学信息学院8/19512/18/2019星期六,2008-9-6,13:09:29求解多项式型方程的函数调用格式最简调用方式直接得出根指定变量高等应用数学问题的MATLAB求解东北大学信息学院9/19512/18/2019星期六,2008-9-6,13:09:29例6.4使用solve()函数求解MATLAB求解命令:检验:高等应用数学问题的MATLAB求解东北大学信息学院10/19512/18/2019星期六,2008-9-6,13:09:29例6.5试求解MATLAB求解命令:检验高等应用数学问题的MATLAB求解东北大学信息学院11/19512/18/2019星期六,2008-9-6,13:09:29最后一个式子改写成MATLAB求解命令:高等应用数学问题的MATLAB求解东北大学信息学院12/19512/18/2019星期六,2008-9-6,13:09:29例6.6试求解MATLAB求解命令:检验高等应用数学问题的MATLAB求解东北大学信息学院13/19512/18/2019星期六,2008-9-6,13:09:29例6.7试求解带有参数的方程MATLAB求解命令:高等应用数学问题的MATLAB求解东北大学信息学院14/19512/18/2019星期六,2008-9-6,13:09:296.1.3一般非线性方程数值解求出已知多元方程的一个实数根的函数调用格式最简求解语句一般求解语句高等应用数学问题的MATLAB求解东北大学信息学院15/19512/18/2019星期六,2008-9-6,13:09:29选择方法和修改控制精度的函数调用格式获得默认的常用变量设置控制参数或高等应用数学问题的MATLAB求解东北大学信息学院16/19512/18/2019星期六,2008-9-6,13:09:29求解数值代数方程组的步骤设置变量,使等式变成如下所示按如下方式描述等式M-函数匿名函数Inline函数,不推荐使用求解方程组检验阶的正确性高等应用数学问题的MATLAB求解东北大学信息学院17/19512/18/2019星期六,2008-9-6,13:09:29例6.8数值方法求解选择变量把原始方程组变为变成矩阵形式高等应用数学问题的MATLAB求解东北大学信息学院18/19512/18/2019星期六,2008-9-6,13:09:29描述方程的方法M-函数匿名函数Inline函数高等应用数学问题的MATLAB求解东北大学信息学院19/19512/18/2019星期六,2008-9-6,13:09:29当初值选为当使用另一个搜索初始点注意:选择不同的初值可以得出不同的结果高等应用数学问题的MATLAB求解东北大学信息学院20/19512/18/2019星期六,2008-9-6,13:09:29例6.9数值方法解使用solve()函数:使用图解法求初始值:高等应用数学问题的MATLAB求解东北大学信息学院21/19512/18/2019星期六,2008-9-6,13:09:29重新设置相关精度的控制变量所期望的精度可能无法达到然而,在算精度制下的最好结果可以得到高等应用数学问题的MATLAB求解东北大学信息学院22/19512/18/2019星期六,2008-9-6,13:09:296.1.4求解多解方程的全部解Riccati方程(第4章)更多的非线性矩阵方程,例如,广义Riccati方程类Riccati方程还有很多很多的矩阵方程高等应用数学问题的MATLAB求解东北大学信息学院23/19512/18/2019星期六,2008-9-6,13:09:29多解方程求解的程序设计函数调用函数清单高等应用数学问题的MATLAB求解东北大学信息学院24/19512/18/2019星期六,2008-9-6,13:09:29高等应用数学问题的MATLAB求解东北大学信息学院25/19512/18/2019星期六,2008-9-6,13:09:29例6.10求解下列Riccati方程组:其中高等应用数学问题的MATLAB求解东北大学信息学院26/19512/18/2019星期六,2008-9-6,13:09:29are()函数只能能得出一个解使用MATLAB命令:原方程有8个根Ctrl-C中断求解,或等几分钟自动停止高等应用数学问题的MATLAB求解东北大学信息学院27/19512/18/2019星期六,2008-9-6,13:09:29例6.12给定其中求出并检验全部的根高等应用数学问题的MATLAB求解东北大学信息学院28/19512/18/2019星期六,2008-9-6,13:09:29没有其他方法能求出所有实根给出下面求解语句原方程有16个根高等应用数学问题的MATLAB求解东北大学信息学院29/19512/18/2019星期六,2008-9-6,13:09:29例6-12求非线性方程组全部根感兴趣区间图解法高等应用数学问题的MATLAB求解东北大学信息学院30/19512/18/2019星期六,2008-9-6,13:09:29设定求解区间[-2*pi,2*pi]求解用图解法显示出找到的全部根高等应用数学问题的MATLAB求解东北大学信息学院31/19512/18/2019星期六,2008-9-6,13:09:29例6-13非线性方程组图解法求出所有根绘图高等应用数学问题的MATLAB求解东北大学信息学院32/19512/18/2019星期六,2008-9-6,13:09:296.2无约束最优化问题求解解析解法和图解法基于MATLAB的数值解法全局最优解与局部最优解利用梯度求解最优化问题带有变量边界约束的最优化问题求解高等应用数学问题的MATLAB求解东北大学信息学院33/19512/18/2019星期六,2008-9-6,13:09:29无约束最小化问题的数学描述目标函数是一个标量函数f(.)向量决定变量,或优化变量物理意义:求取一组x向量,使得最优化目标函数f(x)为最小最大化问题数学描述高等应用数学问题的MATLAB求解东北大学信息学院34/19512/18/2019星期六,2008-9-6,13:09:296.2.1解析解法和图解法无约束最优化问题的必要条件:其中,是最优点方程的求解可能会更难,有时可能需要二阶导数运算高等应用数学问题的MATLAB求解东北大学信息学院35/19512/18/2019星期六,2008-9-6,13:09:29例6.14研究下式的最优性绘制函数f(t)的一阶导数求一阶导数为零的点,验证二阶导数为正高等应用数学问题的MATLAB求解东北大学信息学院36/19512/18/2019星期六,2008-9-6,13:09:296.2.2基于MATLAB的数值解法数值最优化函数调用格式最简求解语句或一般求解格式或高等应用数学问题的MATLAB求解东北大学信息学院37/19512/18/2019星期六,2008-9-6,13:09:29描述目标函数M-函数(入口)匿名函数Inline函数(不推荐使用)在匿名函数或inline函数中无法使用中间变量目标函数的三种描述方法高等应用数学问题的MATLAB求解东北大学信息学院38/19512/18/2019星期六,2008-9-6,13:09:29例6.15目标函数变量替换新目标函数MATLAB表示使用函数fminunc():高等应用数学问题的MATLAB求解东北大学信息学院39/19512/18/2019星期六,2008-9-6,13:09:29修改寻优程序截取过程的中间点绘制出搜索过程中间点的轨线:高等应用数学问题的MATLAB求解东北大学信息学院40/19512/18/2019星期六,2008-9-6,13:09:29结果:高等应用数学问题的MATLAB求解东北大学信息学院41/19512/18/2019星期六,2008-9-6,13:09:29最优化求解函数的新调用方法建立最优化问题的“结构体”模型例6-16用结构体模型求解高等应用数学问题的MATLAB求解东北大学信息学院42/19512/18/2019星期六,2008-9-6,13:09:296.2.3全局最优解与局部最优解最小值存在的必要条件是使用搜索方法,从初始值出发,可能找到一个这样的点,它是局部最小值局部极小值中目标函数最小的为全局最小整个目标函数可能存在多个局部最小值搜索算法不一定能求出全局最小值高等应用数学问题的MATLAB求解东北大学信息学院43/19512/18/2019星期六,2008-9-6,13:09:29例6.17目标函数观察不同的初值得出的最小值构造目标函数初值高等应用数学问题的MATLAB求解东北大学信息学院44/19512/18/2019星期六,2008-9-6,13:09:29初值是y(t)在内的曲线:y(t)在内的曲线高等应用数学问题的MATLAB求解东北大学信息学院45/19512/18/2019星期六,2008-9-6,13:09:296.2.4利用梯度求解最优化问题有时,仅利用目标函数提供的信息,很难得到最优解。这是由于求解最优化问题收敛速度一般较慢,尤其是变量较多的最优化问题可以利用梯度信息解决上述问题高等应用数学问题的MATLAB求解东北大学信息学院46/19512/18/2019星期六,2008-9-6,13:09:29例6.18求Rosenbrock函数的无约束最优化问题人造函数绘制三维等高线图(香蕉函数)不同梯度信息高等应用数学问题的MATLAB求解东北大学信息学院47/19512/18/2019星期六,2008-9-6,13:09:29求梯度矩阵包含梯度的目标函数求解高等应用数学问题的MATLAB求解东北大学信息学院48/19512/18/2019星期六,2008-9-6,13:09:29利用结构体方式求解Rosenbrock