优化实时编辑器任务
什么是优化实时编辑器任务?
优化实时编辑器任务为 fminbnd
、fminsearch
、fzero
和 lsqnonneg
求解器提供可视化界面。要开始任务,请点击新建实时脚本按钮。然后点击插入选项卡,选择任务 > 优化。
最小化包含若干个变量的非线性函数
此示例说明如何使用优化实时编辑器任务最小化函数 ,其中变量 a = π。
有关说明类似优化问题的视频,请参阅如何使用优化实时编辑器任务。
在主页选项卡上的文件部分中,点击新建实时脚本按钮。
插入优化实时编辑器任务。点击插入选项卡,然后在代码部分中选择任务 > 优化。
要用于输入问题数据,请点击分节符按钮。新节出现在任务的上方和下方。
在优化任务上方的节中,输入以下代码。
a = pi; x0 = [-1 2];
要将这些变量放入工作区中,请按 Ctrl + Enter。
在任务的指定问题类型部分中,点击目标 > 非线性按钮和约束 > 无约束按钮。任务显示推荐的求解器为
fminsearch
。注意
如果您有 Optimization Toolbox™,此时向您推荐的求解器会有所不同。选择
fminsearch
以继续示例演示。在选择问题数据部分中,选择目标函数 > 局部函数,然后点击新建按钮。函数脚本出现在任务下的一个新节中。编辑结果代码以包含以下取消注释的行。
function f = objectiveFcn(optimInput,a) x = optimInput(1); y = optimInput(2); f = 100*(y - x^2)^2 + (a - x)^2; end
在选择问题数据部分中,选择
objectiveFcn
作为局部函数。在选择问题数据部分的函数输入下,选择优化输入 > optimInput 和固定输入:a > a。
选择初始点 (x0) > x0。
在显示进度部分中,选择图的目标值。
要运行求解器,请点击任务窗口右上角的选项按钮 ⁝,然后选择运行节。
出现以下图。
要查看解点,请查看优化任务的顶部。
solution
和objectiveValue
变量返回到工作区。要查看这些变量的值,请在任务下方插入分节符并输入以下代码。disp(solution) disp(objectiveValue)
按 Ctrl+Enter 键运行该节。
disp(solution)
3.1416 9.8696
disp(objectiveValue)
3.9946e-11
求解标量方程
此示例说明如何使用优化实时编辑器任务找到点 x,其中 cos(x) = x。
在主页选项卡上的文件部分中,点击新建实时脚本按钮。在实时脚本中输入以下代码行。
fun = @(x)cos(x) - x; x0 = 0;
第一行定义匿名函数
fun
,该函数在 x 处取值 0,其中 cos(x) = x。第二行定义初始点x0
= 0,其中fzero
开始搜索解。通过按 Ctrl+Enter 键,将这些变量放入 MATLAB® 工作区中。
插入优化实时编辑器任务。点击插入选项卡,然后在代码部分中选择任务 > 优化。
在任务的指定问题类型部分中,选择求解器 > fzero。
在选择问题数据部分中,选择目标函数 > 函数句柄,然后选择 fun。选择初始点 (x0) > x0。
在“显示进度”部分中,选择图的目标值。
按 Ctrl+Enter 键运行求解器。
要查看解值,请点击插入选项卡上的分节符按钮,在任务下方插入新节。在新节中,输入
solution
,然后按 Ctrl+Enter 键。solution
solution = 0.7391
另请参阅
优化 | fzero
| fminsearch