MATLAB优化设计实验报告:使用fminbnd函数

需积分: 14 8 下载量 162 浏览量 更新于2024-08-02 收藏 155KB DOC 举报
"该资源是关于湖南农业大学机械优化设计课程的一个实验报告,主要涉及使用MATLAB进行函数优化。实验中,学生需要编写自定义函数,然后利用MATLAB的内置优化工具`fminbnd`寻找函数的最小值。实验包含了两个不同的二次函数优化问题,并展示了迭代过程和最终结果。" 在优化设计实验中,MATLAB被广泛用于解决数学和工程问题,特别是寻找函数的极值点。在这个实验中,有两个关键部分: 1. **自定义函数的定义**: - `liuchao1fun(x)` 和 `liuchao2fun(x)` 是两个定义的M文件函数,分别代表不同的二次函数。`liuchao1fun(x)` 的形式为 `y = 2x^2 - 2x + 8`,而 `liuchao2fun(x)` 的形式为 `y = 3x^2 + 6x + 4`。这些函数代表了需要优化的目标函数。 2. **优化函数的调用与设置**: - 使用 `optimset` 函数设置优化选项,`'Display'` 参数设为 `'iter'` 表示在每次迭代时显示函数值和位置,这对于理解优化过程非常有帮助。 - `fminbnd` 函数用于在指定区间内寻找单变量函数的最小值。例如,`fminbnd(@liuchao1fun, 0, 3, options)` 将在 x=0 到 x=3 的范围内寻找 `liuchao1fun(x)` 的最小值,同样地,对于 `liuchao2fun(x)`,搜索区间为 `-3` 到 `5`。 3. **计算结果展示**: - 实验结果显示了`fminbnd`在执行过程中的一系列迭代点、对应的函数值以及使用的算法(黄金分割搜索和抛物线插值)。每个迭代点显示了函数计算次数(`Func-count`)、x值(`xf(x)`)和当前优化步骤(`Procedure`)。 - 最终,`fminbnd`找到了函数的最小值点。例如,在第一个函数中,最小值点为 `x=0.5000`,最小函数值 `fval=7.5000`,退出标志 `exitflag=1` 表明优化成功,输出信息包括迭代次数和使用的算法等。 4. **优化算法的理解**: - 黄金分割搜索和抛物线插值是`fminbnd`内部采用的两种方法。黄金分割搜索是一种简单且有效的搜索策略,通过不断缩小搜索区间来逼近最优解。抛物线插值则是在两个已知点上构造一个抛物线并找到其最小值点,以此来更新搜索区间。 这个实验旨在让学生熟悉MATLAB的优化工具,掌握如何编写自定义函数并运用优化算法求解问题,同时也锻炼了他们理解和分析优化过程的能力。在实际应用中,这种技能对于解决各种工程优化问题至关重要。