数学建模-非线性规划(NLP)

1-理论知识

介绍

应用

2-基于matlab实现非线性规划

 1)例1

% 清除工作台和命令行
clear;clc;
x0=[0 0 0];
A = [-1 1 -1];
b = 0;
[x,value] = fmincon(@f1,x0,A,b,[],[],[],[],@nonlfun1)
function f = f1(x)f = x(1)^2+x(2)^2+x(3)^2+8;
end
function [c,ceq] = nonlfun1(x)c = [x(1)+x(2)^2+x(3)^2-20];ceq = [-x(1)-x(2)^2+2];
end

2)例2

% 清除工作台和命令行
clear;clc;
x0=[0 0 0];
A = [-1 1 -1];
b = 0;
Aeq = [1 -1 0];
beq = 10;
lb = [10;-Inf;-Inf];
ub = [20;+Inf;+Inf];
[x,value] = fmincon(@f1,x0,A,b,Aeq,beq,lb,ub,@nonlfun1);
disp(['x = ' num2str(x)]);
disp(['value = ' num2str(-value)]);
function f = f1(x)f = -x(1)*x(2)*x(3);
end
function [c,ceq] = nonlfun1(x)c = [x(1)+x(2)^2+x(3)^2-20;x(1)*x(2)-x(3)-1];ceq = [-x(1)-x(2)^2+2];
end

3)怪兽入侵星球问题

%% 清除工作台和命令行
clear;clc;
% 前6个变量为燕双鹰,后6个变量为手撕侠
x0=zeros(1,12);%% 线性不等式约束
% 前6个变量为燕双鹰在6个星球消灭的怪兽量
% 后6个变量为手撕侠在6个星球消灭的怪兽量
A = [ones(1,6),zeros(1,6);zeros(1,6),ones(1,6)];
b = [30;20];
%% 线性等式约束
% 把两个六维单位矩阵作为元素拼在同一行
Aeq = [eye(6),eye(6)];
% 两个人在同一星球消灭的怪兽量之和不超过该星球的怪兽量
beq = [5;9;4;8;14;11];%% 上下界约束
lb = zeros(1,12);
ub = repmat(+Inf,1,12);%% 求解
[x,value] = fmincon(@f1,x0,A,b,Aeq,beq,lb,ub,[]);
value = -value;
disp(['x = ' num2str(x)]);
disp(['value = ' num2str(-value)]);%% 局部函数
function f = f1(x)% 给的是一个行向量% 因计算习惯,把x变成列向量x = x';% 燕双鹰和手撕侠的坐标x1 = 4;y1 = 1;x2 = 8;y2 = 9;% 燕双鹰和手撕侠每消耗一个怪兽需要消耗的馍数p1 = 3;p2 = 1;% 燕双鹰和手撕侠每百公里消耗的馍数k1 = 1;k2 = 3;% 各星球横坐标a = [1.37 9.45 4.43 6.66 3.14 15.92];% 各星球纵坐标b = [10.21 9.45 8.88 5 16.44 18];% 表达式系数矩阵X = x ./ (1+x);% 目标函数,分三行写以提高可读性% % 两人打怪兽消耗的馍数之和f = [repmat(p1,1,6),repmat(p2,1,6)]*x;% i=1,x1j/(1 + x1j) = X([1:6],:)f = f + sqrt(sum(([a;b] - repmat([x1;y1],1,6)) .^ 2)) .* repmat(k1,1,6) * X([1:6],:);% i=2,x2j/(1 + x2j) = X([7:12],:)f = f + sqrt(sum(([a;b] - repmat([x2;y2],1,6)) .^ 2)) .* repmat(k2,1,6) * X([7:12],:);
end

4)飞机碰撞问题

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

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

相关文章

人工智能学习:什么是seq2seq模型

一、seq2seq模型 Seq2Seq(Sequence-to-Sequence)模型是一种用于处理序列转换问题的深度学习模型,广泛应用于机器翻译、文本摘要、对话系统、语音识别等领域。Seq2Seq模型的核心思想是通过一个编码器(Encoder)将输入序列编码为一个固定长度的上下文向量(Context Vector),…

生态 | 华院计算与深至科技达成战略合作,携手推动AI+医学影像算法升级迭代

8月25日,华院计算技术(上海)股份有限公司(以下简称“华院计算”)与上海深至信息科技有限公司(以下简称“深至科技”)正式签署战略合作协议。双方将秉持“优势互补、资源共享、战略协同、共同发展…

详解MySQL环境变量配置及其在备份中的应用

正确配置MySQL环境变量是保障数据库稳定运行和高效管理的基础。这些变量涵盖了从内存分配、连接设置到日志行为等方方面面,直接决定了数据库的性能表现和功能特性。对于数据库管理员而言,熟练掌握环境变量的配置,是进行性能调优和故障排查的必…

scikit-learn零基础配置(含python、anaconda)

一、Anaconda环境搭建 1、关于Anaconda Anaconda 是一个非常 popular 的 Python 发行版,它不仅包含了 Python 语言本身,还预装了众多常用的科学计算库,如 NumPy、Pandas、Matplotlib 等,能够极大地方便用户的开发和数据分析工作。…

RAG提示词(日本語版)

RAG提示词(日本語版) System Message # 知能型質問応答アシスタント(RAGシステムプロンプト)## 役割定義 あなたは「知能型質問応答アシスタント」として、提供されたコンテキスト情報に基づいてユーザーの質問に回答する専門的な…

qData 数据中台【开源版】发布 1.0.5 版本,全面提升规则治理、非结构化数据处理与部署体验

2025年9月3日 —— 企业级开源数据中台 qData 开源版 正式发布 1.0.5 版本。本次更新聚焦 规则治理一体化、非结构化数据支持、以及开源版的体验与部署优化,进一步提升规则复用能力、数据接入广度与运维效率,帮助企业和开发者更轻松地构建高质量数据治理…

RecSys:用户行为序列建模以及DIN、SIM模型

引言 在推荐系统中,用户历史行为序列是极其重要的信息源。用户最近的点击、点赞、收藏、转发等行为能够有效反映其即时兴趣,无论是在召回、粗排还是精排阶段,合理利用这些行为序列都能显著提升推荐效果。本文将系统介绍用户行为序列建模的几…

QGIS二次开发01:环境配置-OSGeo4W镜像

写在前面: 本笔记根据多方资料整理而成,旨在为QGIS二次开发提供学习参考。内容仅供交流学习,欢迎共同探讨。 一、关于QGIS QGIS 是一个功能强大的桌面GIS软件本身,为用户提供了图形化界面(GUI)来进行地图制…

对接旅游行业安全需求:旅游安全急救实训室的功能构建与育人目标

随着我国旅游行业的快速发展,游客安全需求日益凸显,安全应急处置能力已成为旅游服务人才的核心竞争力。旅游安全急救实训室作为旅游服务与管理专业中的重要教学场所,其功能构建与育人目标影响人才培养质量与行业安全水平。点击获取方案 一、行…

Typora处理markdown文件【给.md文档加水印】

①文件→偏好设置→外观→打开主题文件夹②在打开的文件夹中放入水印图像③右键点击github.css文件后,点击编辑,进入编辑页面④将代码块中内容粘贴到文件最后 更多效果请自行探索 #write::before {content: "CSDN果子当夜宵:bigxie.blog…

基于单片机的六足机器人控制系统设计

基于单片机的六足机器人控制系统设计摘 要本设计主要是基于单片机的六足机器人控制系统设计,综合分析六足机器人的结构、步态和控制算法,结合云端服务器、WIFI 技术、蓝牙技术、语音识别技术和手势识别技术进行多种控制模式的设计,并提出不同…

RK3568 Trust

文章目录1、环境介绍2、前言3、ARM TrustZone3.1、什么是ARM TrustZone3.2、cpu特权等级3.3、ARM Trusted Firmware4、Rockchip 平台的 Trust4.1、实现机制4.2、启动流程4.3、生命周期4.4、Trust 编译打包流程分析5、总结1、环境介绍 硬件:飞凌ok3568-c开发板 软件…

C语言数据结构——详细讲解《二叉树与堆的基本概念》

C语言数据结构——详细讲解《二叉树与堆的基本概念》前言一、树的基础概念1.1 为什么需要树?1.2 树的定义与结构1.3 树的核心术语1.3 树的核心术语1.4 树的表示方法(孩子兄弟表示法)结构定义为什么用孩子兄弟表示法?1.5 树的实际应…

STAR-CCM+|雷诺数回顾

【1】引言 前序已经学习了K-epsilon湍流模型溯源的基础知识,今天再学习一些更为基础的知识,回顾一下雷诺数ReReRe。 【2】雷诺数定义 雷诺数公式为: ReρvDμRe\frac{\rho vD}{\mu}ReμρvD​ 式中, ρ\rhoρ——流体密度&…

Java中的死锁

锁的合理使用能够保证共享数据的安全性,但是 使用不当也会可能引起死锁。1. 死锁概念 死锁是指两个或两个以上的线程在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力干涉那它们都将无法推进下去,如果系统资源充足,进程的资源请求…

基于STM32F103C8T6的智能家居健康环境监测系统

项目开发背景 随着城市化进程加速和居民生活水平提升,人们对家居环境健康与安全的需求日益增强。现代住宅常因装修材料、密闭空间及外部污染导致甲醛超标、PM2.5浓度升高、温湿度失衡等问题,长期暴露此类环境中易引发呼吸道疾病、过敏反应等健康隐患。传…

2025职场进阶:B端产品经理必备的计算机专业技能精要

当前企业级服务市场竞争日益激烈,2025年的B端产品经理不仅需要深厚的行业认知,还必须具备扎实的计算机专业技能,才能设计出真正符合技术趋势与业务需求的企业级产品。而其中,人工智能技术已经成为B端产品不可或缺的组成部分&#…

有效三角形的个数(数组单调性)

目录 一:题目链接 二:题目思路 三:代码实现 一:题目链接 题目的要求是找出当前数组能组成三角形三元组的个数。 二:题目思路 有一种暴力枚举解法,利用三层 for 循环来一一枚举三元组的情况,如…

Rust在医疗系统中的应用:安全、性能与合规性实践(上)

Rust在医疗系统中的应用:安全、性能与合规性实践 摘要 医疗系统对软件安全与性能存在严苛双重需求,既需抵御内存漏洞、数据加密风险等安全威胁(如历史医疗设备因软件问题召回案例所示),又需满足电子健康记录(EHR)系统、医学影像处理等高并发数据场景的性能要求,同时需…

读写锁 shared_mutex 共享互斥量介绍

文章目录读数据对数据没有影响,为什么还需要shared_mutex1. 保证读取数据的“一致性”和“时效性”2. 协调“读”与“写”的竞争关系总结好的,我们来详细介绍 C17 中的 std::shared_mutex(共享互斥量,俗称读写锁)的使用…