MATLAB | 优化工具箱(optimization toolbox)改版后的live editor工具咋用

news2025/1/10 11:52:55

优化工具箱(optimization toolbox)改版后的live editor工具咋用?本来是不咋想讲这玩意的,但奈何问的人还不少,这里简单讲一下咋用哈。

很多人下了比较新版本MATLAB就顺手像往常一样点开了优化工具箱,但是熟悉的优化APP界面却并没蹦出来,反而出来了这样一个警告,嗯?实时编辑器任务是啥玩意??

优化live editor创建

首先要创建实时脚本:

之后点击 实时编辑器->任务->优化工具

之后会出现个这玩意:

我们先讲基于问题,点击左侧基于问题方法:


基于问题简单优化(求最大值)

假设要求最值的函数为:

5.*sin(x)+6.*cos(y).^2

有约束条件:

x^2+y^2<=4

优化起点为:

x=1;y=0;

首先既然有x,y俩变量,我们就需要在最前面定义俩变量,可以点击最右侧+号新增变量:

点击添加可以增添约束:

需要注意的是默认的目标和约束那灰色的字只是填写格式提示,并没法实际使用。

我们将目标设置为最大值,修改目标与约束:

都设置好后点击下方<求解问题>,即可开始求解:

求解结果会显示在右侧:

同时工作区也会有求解结果:

可以通过solution.(变量名)进行获取变量数值:

solution.x

% ans =
%     1.5708

点击下箭头可以获取由整个过程自动生成的代码:

可以看到代码和注释写的还是不错的:

% 创建优化变量
x3 = optimvar("x");
y3 = optimvar("y");

% 设置求解器的初始起点
initialPoint.x = ones(size(x3));
initialPoint.y = zeros(size(y3));

% 创建问题
problem = optimproblem("ObjectiveSense","Maximize");

% 定义问题目标
problem.Objective = 5.*sin(x3)+6.*cos(y3).^2;

% 定义问题约束
problem.Constraints = x3^2+y3^2 <= 4;

% 显示问题信息
show(problem);

% 求解问题
[solution,objectiveValue,reasonSolverStopped] = solve(problem,initialPoint);

% 显示结果
solution
reasonSolverStopped
objectiveValue

% 清除变量
clearvars x3 y3 initialPoint reasonSolverStopped objectiveValue

含特殊函数优化

目标和约束都可以选择局部函数或者函数文件,选择函数文件的话就直接选已经编辑好的m文件,选择局部函数可以在实施编辑器末尾自定义个局部函数:


基于求解器

在一开始选择方法时选择基于求解器会变成这样:

这个选择用起来就麻烦很多,直接用官方给的例子讲一下叭,首先随便在一个地方运行代码定义初始值及参数值:

x0 = [2;1];
a = 100;

由于目标函数及约束这次只能函数文件,局部函数或者函数句柄,这里为了方便就在实时编辑器文末创建局部函数:

之后就是各种设置:

可以选中求解器点击<运行节>运行,或者点击求解器右上角三个点后点击<运行节>运行:

自动生成的代码:

% 将固定参数传递给 objfun
objfun = @(x)objectiveFcn(x,a);

% 设置非默认求解器选项
options = optimoptions("fmincon","PlotFcn","optimplotfvalconstr");

% 求解
[solution,objectiveValue] = fmincon(objfun,x0,[],[],[],[],[],[],...
    @constraintFcn,options);

% 清除变量
clearvars objfun options

运行过程绘图:


求解结果:

solution
% solution =
%    1.1413
%    1.3029

objectiveValue
% objectiveValue =
%    0.0200

[ccons,ceqcons] = constraintFcn(solution)
% ccons =
%   -2.0000   -0.0000
% ceqcons =
%     []

对比起来还是基于问题的方法用起来更方便点。


官方示例打开

警告界面点击左侧或者右侧的方法就可以跳出官方示例:

大概长这样:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/430942.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

网络安全学习路线,小白必备

前言&#xff1a; 趁着今天下班&#xff0c;我花了几个小时整理了下学习路以及我的学习心得&#xff0c;非常不易&#xff0c;希望大家可以点赞收藏支持一波&#xff0c;谢谢。 我的经历&#xff1a; 我 19 年毕业&#xff0c;大学专业是物联网工程&#xff0c;我相信很多人在…

BPM流程引擎升级,让流程管理更简单!

BPM是Business Process Management的缩写&#xff0c;即业务流程管理。 它是一种以构造端到端的业务流程为中心&#xff0c;以持续提高组织业务绩效为目的的系统化方法。通常&#xff0c;BPM也指流程管理的信息化系统。 BPM对企业很多应用场景都有价值&#xff0c;总的来说&am…

Web 攻防之业务安全:验证码绕过测试.(修改数据包中 res_code 的值 实现绕过.)

Web 攻防之业务安全&#xff1a;验证码绕过测试. 业务安全是指保护业务系统免受安全威胁的措施或手段。广义的业务安全应包括业务运行的软硬件平台&#xff08;操作系统、数据库&#xff0c;中间件等&#xff09;、业务系统自身&#xff08;软件或设备&#xff09;、业务所提供…

【Linux系统管理进程,运行,挂起,杀死进程和crontab计划任务表的使用以及实验的心得体会】

实验 &#xff08;1&#xff09;显示本用户的进程&#xff0c;重定向到file1 top命令如果不加限制&#xff0c;默认是查看所有用户的进程情况top -u [用户名] 可以查看该用户名的所有进程 &#xff08;2&#xff09;显示本用户所有进程&#xff0c;重定向到file2 top命令如果…

扩展c盘时,如何删除恢复分区

目录 一、前言 二、操作步骤 一、前言 有没有和小编一样想要扩展自己c盘容量时遇到问题的&#xff1f; 就是发现c盘和自己扩展的容量之间有个恢复分区&#xff0c;主要是磁盘管理器那里还删不掉&#xff1f; 就不知道怎么办了&#xff0c;小编摸索了一下最终解决了现在分享…

网络IO(non-blocking io)基础

BIO&#xff08;blocking io&#xff09; 传统的网络io模式&#xff0c;面向流&#xff0c;一个线程对接一个会话&#xff0c;因此高并发时会因线程阻塞而性能低效 Java代码&#xff1a; public class BIO implements Connector {private Integer port 8080;Overridepublic v…

前端学习:HTML颜色(什么是RGB、HEX、HSL)

一、什么是RGB、HEX、HSL&#xff1f; 无论是RGB、HEX、HSL&#xff0c;它们的作用只有一个&#xff1a;用数字表达出一种颜色。 1.RGB RGB通过输入的数值&#xff0c;将红色、绿色和蓝色的光源以一定的量混合在一起&#xff0c;形成颜色。 软件中通常让你输入Red、Green、B…

Unity编写Shader基本知识

返回目录 大家好&#xff0c;我是阿赵。 这里通过手写一个最简单的shader&#xff0c;来介绍一下在Unity里面编写Shader的一些基础知识。 一、Shader基本结构 新建一个shader&#xff0c;把里面的内容都删掉&#xff0c;然后输入下面这些内容 shader "testShader"…

GeoIP2:检验IP地址位置识别的实用性

文章目录前言安装环境软件版本说明libmaxminddb 环境安装ngx_http_geoip2_module 安装GeoLite2 数据库下载定时更新测试定位安装模块应用场景重点仅限中国访问&#xff0c;国外禁止仅限中国访问&#xff0c;但放开国外部分IP不同国家展示不同页面IP地址解析总结前言 GeoIP2是一…

我好像发现了PMP通关密码,这14页纸直接背!

备考PMP的宝子们一定要用上这份通关口诀哦&#xff01; 一周就能背完的PMP考试技巧只有14页纸&#xff0c;共分成了4大模块&#xff0c;完全不用担心看不懂&#xff0c;需要的朋友可以戳下面的卡片在群文件下载&#xff0c;直接打印出来就能背哦&#xff0c;没有任何套路&…

Java每日一练(20230415)

目录 1. 扰乱字符串 &#x1f31f;&#x1f31f;&#x1f31f; 2. 单词拆分 &#x1f31f;&#x1f31f; 3. 模拟计算器 ※ &#x1f31f; 每日一练刷题专栏 &#x1f31f; Golang每日一练 专栏 Python每日一练 专栏 C/C每日一练 专栏 Java每日一练 专栏 1. 扰乱字符…

Improved Knowledge Distillation via Teacher Assistant小陈读paper系列

算是经典了吧哈哈 1.他们发现了学生性能下降了&#xff0c;什么时候呢&#xff1f;就是老师模型和学生模型差的太多的时候有了很大gap&#xff08;一个学生不能请一个维度跨越巨大的老师&#xff09;&#xff08;老师可以有效地将其知识转移到一定大小的学生&#xff0c;而不是…

Java导入导出

目录前端Apache POI引依赖导入导出工具类EasyExcel引依赖读Excel指定列名多个Sheet使用提供的转换器或自定义格式转换器对读取到的数据进行格式转换行头即列名写Excel指定导出列复杂头写入日期、数字或自定义格式转换对导出数据进行处理自定义样式合并单元格动态列表头自定义拦…

关于el-input-number 计数器 只能点击一次,之后点击没有效果

哈喽 大家好啊&#xff0c;今天使用计数器发现&#xff0c;点击一次了后就显示不了了 这里怎么点击都点击不了&#xff0c;只能点击一次 然后我发现我代码是这样写的&#xff1a; gitem是一个对象 gitem.saleNum gitem.reduceQuantity || 1;// 剩余可以编辑的数量 因为我这…

【SSL】ssl证书简介、ssl证书生成工具与ssl证书生成步骤

ssl证书简介、ssl证书生成工具与ssl证书生成步骤一、ssl证书是什么&#xff1f;二、ssl证书生成工具有哪些&#xff1f;2.1、工具一&#xff1a;CFSSL2.2、工具二&#xff1a;OpenSSL2.3、工具三&#xff1a;XCA三、ssl证书有什么用&#xff1f;四、ssl证书生成步骤4.1 步骤1&a…

01-SpringBoot入门应用

入门程序&#xff1a;使用SpringBoot开发一个web应用&#xff0c;浏览器发起请求/hello后&#xff0c;给浏览器返回字符串“Hello World ~” 1. 创建springboot工程&#xff0c;并勾选web开发相关依赖 由于我的idea没有Spring Initializr选项&#xff0c;所以我选择使用Maven…

ChatGPT常见术语清单;大厂ChatGPT混战汇总;提示工程技巧完全指南(中译);真机会VS假机会 | ShowMeAI日报

&#x1f440;日报&周刊合集 | &#x1f3a1;生产力工具与行业应用大全 | &#x1f9e1; 点赞关注评论拜托啦&#xff01; &#x1f916; 『OpenAI/ChatGPT 高频常见词解释清单』一份速查表搞懂最热门 AI 术语 OpenAI 和 ChatGPT 的爆火&#xff0c;以超高的频率将大量AI术…

ISE的仿真库编译步骤

Modelsim10.4与ISE14.7联合仿真 1、指定modelsim的安装位置 2、编译安装仿真库 &#xff08;1&#xff09;编译仿真库 点击“开始菜单 -> Xilinx ISE Design Suite 13.2 -> ISE Design Tools -> 64-bit Tools -> Simulation Library Compilation Wizard”&#xff…

Node 会话控制

文章目录Node 会话控制概述cookie运行流程设置cookie获取cookie删除cookiesession运行流程设置session获取session删除sessionsession和cookie的区别token运行流程JWT创建token校验tokenNode 会话控制 概述 所谓会话控制就是 对会话进行控制。 HTTP 是一种无状态的协议&…

DAY 38 LINUX iptables防火墙

所谓防火墙也称之为防护墙&#xff0c;它是一种位于内部网络与外部网络之间的网络安全系统。一项信息安全的防护系统。按照给定的规则&#xff0c;允许或者限制网络报文通过 硬件防⽕墙&#xff1a;通过硬件和软件的组合&#xff0c;基于硬件的防⽕墙保护整个内部网络安全。&a…