【JuMP.jl】非线性规划

[JuMP] 03 非线性规划

非线性规划模型

非线性规划问题是线性规划问题的自然推广, 在实际的工程问题中,优化问题中的目标函数与约束不会总是线性函数,因此非线性规划的求解功能是必要的。

min ⁡ x ∈ R n f 0 ( x ) s.t. l j ≤ f j ( x ) ≤ u j j = 1 … m l i ≤ x i ≤ u i i = 1 … n . \begin{aligned} \min_{x \in \mathbb{R}^n} & f_0(x) \\ \;\;\text{s.t.} & l_j \le f_j(x) \le u_j & j = 1 \ldots m \\ & l_i \le x_i \le u_i & i = 1 \ldots n. \end{aligned} xRnmins.t.f0(x)ljfj(x)ujlixiuij=1mi=1n.

例:

max ⁡ 1 + x 2 + y 2 s . t . x ≥ 0 y ≥ 0 x 2 + y 2 ≤ 2 \begin{aligned} \max~& \sqrt{1+x^2+y^2}\\ \mathrm{s.t.}~& x\geq 0\\ & y\geq 0\\ & x^2+y^2\leq 2 \end{aligned} max s.t. 1+x2+y2 x0y0x2+y22

using JuMP
import Ipopt
import Test

非线性向量值函数的定义

function_calls = 0
function foo(x, y)global function_calls += 1common_term = x^2 + y^2term_1 = sqrt(1 + common_term)term_2 = common_termreturn term_1, term_2
end
foo_1(x, y) = foo(x, y)[1]
foo_2(x, y) = foo(x, y)[2]

打印模型

model = Model(Ipopt.Optimizer)
set_silent(model)
@variable(model, x[1:2] >= 0, start = 0.1)
register(model, :foo_1, 2, foo_1; autodiff = true)
register(model, :foo_2, 2, foo_2; autodiff = true)
@NLobjective(model, Max, foo_1(x[1], x[2]))
@NLconstraint(model, foo_2(x[1], x[2]) <= 2)
function_calls = 0
print(model)

max ⁡ f o o 1 ( x 1 , x 2 ) S u b j e c t t o x 1 ≥ 0.0 x 2 ≥ 0.0 f o o 2 ( x 1 , x 2 ) − 2.0 ≤ 0 \begin{aligned} \max~& foo_1(x_1,x_2)\\ \mathrm{Subject~ to}~& x_1\geq 0.0\\ & x_2\geq 0.0\\ & foo_2(x_1,x_2)-2.0\leq 0 \end{aligned} max Subject to foo1(x1,x2)x10.0x20.0foo2(x1,x2)2.00

optimize!(model)
@show value.(x)

value.(x) = [1.0000000024913394, 1.0000000024913394]

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

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

相关文章

力扣面试题 30 - 最小高度树

题目&#xff1a; 给定一个有序整数数组&#xff0c;元素各不相同且按升序排列&#xff0c;编写一个算法&#xff0c;创建一棵高度最小的二叉搜索树。 示例&#xff1a; 给定有序数组: [-10,-3,0,5,9],一个可能的答案是&#xff1a;[0,-3,9,-10,null,5]&#xff0c;它可以表…

【从0带做】基于Springboot3+Vue3的场馆预约系统

大家好&#xff0c;我是武哥&#xff0c;最近给大家手撸了一个基于SpringBoot3Vue3的场馆预约系统&#xff0c;可用于毕业设计、课程设计、练手学习&#xff0c;系统全部原创&#xff0c;如有遇到网上抄袭站长的&#xff0c;欢迎联系博主~ 项目演示视频和教程视频 https://ww…

mysql json整数数组去重 整数数组精确查找并删除相应数据

都是针对整数数组 。低版本可用。懒得去查找资料的可以参考下。 json整数数组查找具体数据修改或者删除&#xff1a; update saas_new_tms.eda_logistics_limit set service_attribute json_remove(service_attribute,json_unquote(json_search(replace(service_attribute,…

unity与android拓展

一.AndroidStudio打包 1.通过Unity导出Android Studio能够打开的工程 步骤 1.设置导出基本信息&#xff1a;公司名、游戏名、图标、包名等关键信息 2.在File——>Build Settings中&#xff0c;勾选 Export Project 选项 3.点击Export 导出按钮 2.在Android Studio中打开Un…

计算机网络期末复习-part1-概述

1、互联网的组成 互联网由两大块组成。 1、边沿部分&#xff1a;由所有连接在互联网上的主机组成&#xff0c;是用户直接使用的部分。 2、核心部分&#xff0c;由大量网络和路由器组成&#xff0c;为边缘部分提供服务。 2、数据传送阶段的三种交换方式的主要特点 1、电路交…

【MySQL 进阶之路】索引的使用

5.索引的使用规则 在数据库管理系统&#xff08;DBMS&#xff09;中&#xff0c;索引是提高查询效率的关键机制之一。MySQL索引优化是指通过设计、调整和选择合适的索引策略&#xff0c;以提高数据库的查询性能和降低资源消耗。以下是一些关键的索引使用规则&#xff1a; 1. …

matlab中disp,fprintf,sprintf,display,dlmwrite输出函数之间的区别

下面是他们之间的区别&#xff1a; disp函数与fprintf函数的区别 输出格式的灵活性 disp函数&#xff1a;输出格式相对固定。它会自动将变量以一种比较直接的方式显示出来。对于数组&#xff0c;会按照行列形式展示&#xff1b;对于字符串&#xff0c;直接原样输出并换行。例如…

【数据中心建设资料】数据中心安全建设解决方案,数据中心整理解决方案,数据中心如何做到安全保障,数据中台全方案(Word全原件)

第一章 解决方案 1.1 建设需求 1.2 建设思路 1.3 总体方案 信息安全系统整体部署架构图 1.3.1 IP准入控制系统 1.3.2 防泄密技术的选择 1.3.3 主机账号生命周期管理系统 1.3.4 数据库账号生命周期管理系统 1.3.5 双因素认证系统 1.3.6 数据库审计系统 1.3.7 数据脱敏系统 1.3.8…

Go学习:变量

目录 1. 变量的命名 2. 变量的声明 3. 变量声明时注意事项 4. 变量的初始化 5. 简单例子 变量主要用来存储数据信息&#xff0c;变量的值可以通过变量名进行访问。 1. 变量的命名 在Go语言中&#xff0c;变量名的命名规则 与其他编程语言一样&#xff0c;都是由字母、数…

使用ensp搭建内外互通,使用路由跨不同vlan通信。

1.网络拓扑图 2.规则 &#xff08;1&#xff09;允许 &#xff08;自己&#xff09;ping通内外网&#xff0c;内外网随便一个pc就可以. &#xff08;2&#xff09; 允许&#xff08;电信&#xff09;ping通内外网&#xff0c;内外网随便一个pc就可以 &#xff08;时间问题不做…

slam学习笔记6---样例展示雅可比手推过程

背景&#xff1a;一直在使用模板、自动化求导&#xff0c;对于背后雅可比推导只剩一个基本概念&#xff0c;有必要好好梳理巩固一下。本人水平有限&#xff0c;若推导过程有误&#xff0c;欢迎评论区提出。 假设一个二维slam问题&#xff0c;使用欧式距离观测模型&#xff0c;…

基于Vue实现的移动端手机商城项目 电商购物网站 成品源码

&#x1f4c2;文章目录 一、&#x1f4d4;网站题目 二、✍️网站描述 三、&#x1f4da;网站介绍 四、&#x1f310;网站演示 &#x1f4f8;部分截图 &#x1f3ac;视频演示 五、⚙️网站代码 &#x1f9f1;项目结构 &#x1f492;vue代码预览 六、&#x1f527;完整…

使用 postman 传递 binary 类型的图片到后端接口遇到的坑

使用 psotman 传 binary 类型图片报错&#xff1a; -2024-12-04 [http-nio-9090-exec-1] WARN org.springframework.web.servlet.mvc.support.DefaultHandlerExceptionResolver Resolved [org.springframework.http.converter.HttpMessageNotReadableException: Required r…

SQL 优化经历:从 30248.271s 到 0.001s

今天分享一篇SQL优化的文&#xff0c;带你深入了解如何提升查询效率、降低系统负载。 无论你是数据库管理员还是开发者&#xff0c;都不能错过这份关于SQL性能优化的实用指南。让我们一起穿越数据库迷宫&#xff0c;发现隐藏在代码背后的优化黄金点&#xff01; 场景 用的数据…

开发者如何使用GCC提升开发效率Opencv操作

看此篇前请先阅读 https://blog.csdn.net/qq_20330595/article/details/144134160?spm=1001.2014.3001.5502 https://blog.csdn.net/qq_20330595/article/details/144134160?spm=1001.2014.3001.5502 https://blog.csdn.net/qq_20330595/article/details/144216351?spm=1001…

JavaCV中openCV的拉普拉斯滤波器处理

1、javacv 1.5.10版本 package com.example.demo.ffpemg;import lombok.SneakyThrows; import org.bytedeco.javacv.CanvasFrame; import org.bytedeco.opencv.opencv_core.Mat;import javax.swing.*; import java.awt.image.BufferedImage;import static org.bytedeco.openc…

PyQt 中的无限循环后台任务

在 PyQt 中实现一个后台无限循环任务&#xff0c;需要确保不会阻塞主线程&#xff0c;否则会导致 GUI 无响应。常用的方法是利用 线程&#xff08;QThread&#xff09; 或 任务&#xff08;QRunnable 和 QThreadPool&#xff09; 来运行后台任务。以下是一些实现方式和关键点&a…

项目集成篇:springboot集成redistemple实现自定义缓存,并且可以设置过期时间

在Spring Boot中集成Redis并使用RedisTemplate实现自定义缓存功能&#xff0c;同时能够设置缓存项的过期时间&#xff0c;可以通过以下步骤来完成。我们将创建一个服务层方法&#xff0c;该方法将使用RedisTemplate直接与Redis交互&#xff0c;并为每个缓存项设置特定的过期时间…

node.js实现分页,jwt鉴权机制,token,cookie和session的区别

文章目录 1. 分⻚功能2. jwt鉴权机制1.jwt是什么2.jwt的应用3.优缺点 3. cookie&#xff0c;token&#xff0c;session的对比 1. 分⻚功能 为什么要分页 如果数据量很⼤&#xff0c;⽐如⼏万条数据&#xff0c;放在⼀个⻚⾯显⽰的话显然不友好&#xff0c;这时候就需要采⽤分⻚…

CentOS 离线环境安装 Python2

CentOS离线环境安装Python2&#xff0c;可能在编译源码时因缺少各种依赖而无法编译成功。 此时可以找一台有网的电脑&#xff08;可以是Linux虚拟机&#xff09;&#xff0c;使用yum管理器的打包命令将Python2的安装包及依赖全部打包成rpm&#xff0c;然后拷贝到离线机器上安装…