嵌套输出函数的示例

创建和使用输出函数中的示例不需要输出函数在每次迭代后保留数据。如果不需要保存各次迭代之间的数据,可以将输出函数编写为函数文件,并从命令行直接调用优化函数。但是,要使输出函数在每次迭代后记录数据,请编写一个用于实现以下目的的文件:

以嵌套函数的形式包括输出函数 - 有关详细信息,请参阅 MATLAB 编程基础中的嵌套函数。

调用优化函数。

在以下示例中,函数文件还包含目标函数作为局部函数。您也可以将目标函数编写为单独的文件或匿名函数。

嵌套函数可以访问其所在的文件中的变量。因此,此方法使输出函数能够在每次迭代后保留变量。

以下示例使用输出函数记录以下求解中的 fminsearch 迭代:

minxf(x)=minxex1(4x12+2x22+x1x2+2x2).

输出函数以矩阵(称为 history)的形式返回点序列。

要运行此示例,请执行下列步骤:

使用 MATLAB 编辑器打开一个新文件。

将以下代码复制并粘贴到此文件。

function [x fval history] = myproblem(x0)

history = [];

options = optimset('OutputFcn', @myoutput);

[x fval] = fminsearch(@objfun, x0,options);

function stop = myoutput(x,optimvalues,state);

stop = false;

if isequal(state,'iter')

history = [history; x];

end

end

function z = objfun(x)

z = exp(x(1))*(4*x(1)^2+2*x(2)^2+x(1)*x(2)+2*x(2));

end

end

将文件作为 myproblem.m 保存到 MATLAB 路径上的某个文件夹中。

在 MATLAB 提示符下,输入

[x fval history] = myproblem([-1 1]);

函数 fminsearch 返回最佳点 x 及 x 处的目标函数值 fval。

x,fval

x =

0.1290 -0.5323

fval =

-0.5689

此外,输出函数 myoutput 向 MATLAB 工作区返回矩阵 history,该矩阵包含算法在每次迭代中生成的点。history 的前四行为

history(1:4,:)

ans =

-1.0000 1.0000

-1.0000 1.0000

-1.0750 0.9000

-1.0125 0.8500

history 最后一行的点与最佳点 x 相同。

history(end,:)

ans =

0.1290 -0.5323

objfun(history(end,:))

ans =

-0.5689

matlab函数输出,优化求解器输出函数相关推荐

  1. newuoa matlab包,PDFO首页、文档和下载 - Powell 无导数优化求解器

    PDFO(Powell's Derivative-Free Optimization solvers,Powell 无导数优化求解器)为 Michael J. D. Powell 的无导数优化求解器提 ...

  2. 关于求解微分方程——初学Matlab里的 ODE求解器

    学习背景 最近想挖掘一下自己项目的理论深度,于是找到了老师.在老师的建议下,我们开始了漫长的研读老师的论文的旅程(论文名:Optimal Design of Adaptive Robust Contr ...

  3. c++调用cplex求解例子_视频教程 | 用Python玩转运筹优化求解器IBM CPLEX(二)

    编者按 优化求解器对于做运筹学应用的学生来说,意义重大. 然而直到今天,放眼望去,全网(包括墙外)几乎没有一个系统的Cplex中文求解器教程. 作为华人运筹学的最大的社区,『运筹OR帷幄』 责无旁贷, ...

  4. 商业决策优化求解器软件,继芯片与操作系统之后的国之重器

    日前,来自中国自主研发的两款商业决策优化求解器软件成功登顶国际权威数学决策软件测评排行榜,杉数科技拔得头筹,阿里紧随其后,引发了国人对于决策优化求解器的关注.此前,由于国际竞争,芯片和操作系统已经成为 ...

  5. 优化求解器 | Gurobi的MVar类:矩阵建模利器、求解对偶问题的备选方案 (附详细案例+代码)

    优化求解器 | Gurobi的MVar类:矩阵建模利器.求解对偶问题的备选方案 优化求解器的建模方式:以gurobi为例 Gurobi的MVar(矩阵形式变量对象) 一个线性规划的例子:Wyndor玻 ...

  6. 为什么lp的最优解是一个概率_什么时候应该用概率图模型、消息传递替代传统组合优化求解器?未来工作?(持续更新)...

    相关基础:概率图模型中的推断https://zhuanlan.zhihu.com/p/252169479 英文原文:https://tspace.library.utoronto.ca/bitstre ...

  7. matlab输入数据作方程,用MATLAB函数编写并求解微分方程

    实验八:用MATLAB 函数编写并求解微分方程 一.实验原理 为了对连续系统进行方针,首先需要建立其数学模型,然后利用计算机求这些数学模型,从而得出数学模型的数值解.由于连续系统是通过微分方程老建模的 ...

  8. 【Matlab多目标优化求解】遗传优化萤火虫算法求解多目标优化问题【含源码 1484期】

    一.代码运行视频(哔哩哔哩) [Matlab多目标优化求解]遗传优化萤火虫算法求解多目标优化问题[含源码 1484期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 ...

  9. 【Matlab多目标优化求解】粒子群算法求解智能微电网多目标优化问题【含源码 383期】

    一.代码运行视频(哔哩哔哩) [Matlab多目标优化求解]粒子群算法求解智能微电网多目标优化问题[含源码 383期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 ...

最新文章

  1. python实现密码的强度_字符串处理函数(二)python语言实现密码强度校验
  2. 拆解交易系统--模块拆解与服务化
  3. Putty、Xshell连接Linux
  4. springboot中getOutputStream() has already been called for this response和java.io.FileNotFoundException
  5. MongoDB-数据库-mongoose-图形化操作
  6. android五子棋设计模板,基于android的五子棋游戏设计
  7. MQTT 连接 阿里云物联网十六进制数据分析笔记
  8. PDF转CAD怎么转?如何将PDF文件转换成CAD文件?
  9. 华南理工大学计算机科学与工程学院篡改,疑篡改研究生复试成绩!华工四人被停职接受调查...
  10. 图的表现形式第一篇(Java实现)
  11. [抖音电商] 抖音电商新学员必看基础课,抖音新手必看运营教程(价值3980)
  12. Qt5:报错error: 'tr' was not declared in this scop
  13. Python中的内置数据类型
  14. TIA博途WINCC中如何获取当前画面编号并发送给PLC?
  15. 调侃c语言的图片,c语言能显示图片吗
  16. 淘宝购物如何找优惠券_淘宝上买衣服怎么省钱
  17. MYSQL复制表结构及数据到新表
  18. Unity3D学习:射击小游戏——飞碟世界
  19. ccd视觉定位教程_正规CCD视觉定位系统工作原理
  20. excel中文本格式如何批量转化成数字

热门文章

  1. win10安装RabbitMQ
  2. 7.python xmlrpclib及allownone作用
  3. centos设置开机自启动
  4. 编程之美--读书笔记--返回一个数组中所有元素被第一个元素除的结果
  5. 为什么要用非关系数据库?
  6. linux的基础知识——会话
  7. Unity3D-声音系统
  8. css3 固定,CSS3 calc()不适用于固定位置/绝对位置
  9. git 忽略__pycache___容易被忽略的 Python 命令行参数
  10. python调用c++的库传递二级指针