数学建模【非线性规划】

一、非线性规划简介

通过分析问题判断是用线性规划还是非线性规划

  • 线性规划:模型中所有的变量都是一次方
  • 非线性规划:模型中至少一个变量是非线性

非线性规划在形式上与线性规划非常类似,但在数学上求解却困难很多

  • 线性规划有通用的求解准确解的方法(单纯形法),一定能求得最优解
  • 非线性规划在数学上没有适合各种问题的通用解法求解严格的数值解
  • 但对数学建模来说,入门是掌握MATLAB的fmincon函数求近似解即可

二、适用赛题

本质上和线性规划一样,适用于最优化,求“怎样安排”“最大/小”“最优”等等。常见收益率、病毒传播率、经济增长率等涉及变量比值的规划问题。

三、模型流程

这里的模型流程是和线性规划一样的。

四、流程解析

1.条件假设

这个需要具体题目具体分析,有些题目通过一些前提条件假设可以很好地简化题目。

2.提取要素
①决策变量

就是提取出题目中的所有变量。

②目标函数

我们需要求得的值。

③约束条件

通过题目提取出各个变量的范围。

3.调用函数

调用MATLAB自带的fmincon函数

[x, fval] = fmincon(fun, x0, A, b, Aeq, beq, lb, ub, nonlcon)

fun单独脚本文件里定义的目标函数(或者写在代码文件末尾,调用时需加上@)
x0决策变量的初始值(影响最终结果)
A, b线性约束的不等式变量系数矩阵和常数项矩阵(≤或<)
Aeq, beq线性约束的等式变量系数矩阵和常数项矩阵
lb, ub决策变量的最小取值和最大取值
nonlcon非线性约束,包括不等式和等式

这里对参数讲解

[x, fval] = fmincon(@fun, x0, A, b, Aeq, beq, vlb);

这是一个调用fmincon函数的代码,其中@fun代表调用本文件中定义的函数,一般函数写在文件最后面。x0是一个初始值,可以通过蒙特卡罗法求一个近似解作为初始值。后面的A, b, Aeq, beq, vlb都是和线性规划一样的,因为没有最大取值和非线性约束就不用写。

注意:如果有非线性约束,写法和@fun是一样的,不过格式有点区别。

比如现在有非线性约束条件:

x1² - x2 + x3² ≥ 0

x1 + x2² + x3² ≤ 20

-x1 - x2² + 2 = 0

x2 + 2x3² = 3

那么nonlcon应该这样写

function [g, h] = fun2(x)g = [-x(1)^2 + x(2) - x(3)^2;x(1) + x(2)^2 + x(2)^2 - 20];h = [-x(1) - x(2)^2 + 2;x(2) + 2*x(2)^2 - 3];
end

可以看到不等式都是标准型且右边都是和0比较了。

具体情况可以去MATLAB官网查询。

最终解出近似解。

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

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

相关文章

计算机网络之网络安全

文章目录 1. 网络安全概述1.1 安全威胁1.1.1 被动攻击1.1.2 主动攻击 1.2 安全服务 2. 密码学与保密性2.1 密码学相关基本概念2.2 对称密钥密码体制2.2.1 DES的加密方法2.2.2.三重DES 2.3 公钥密码体制 3. 报文完整性与鉴别3.1 报文摘要和报文鉴别码3.1.1 报文摘要和报文鉴别码…

从零开始手写mmo游戏从框架到爆炸(十二)— 角色设定

导航:从零开始手写mmo游戏从框架到爆炸(零)—— 导航-CSDN博客 写了这么多的框架,说好的mmo游戏呢?所以我们暂时按下框架不表,这几篇我们设计英雄角色、怪物、技能和地图。本篇我们来对游戏角色…

【BUG】段错误

1. 问题 8核工程,核4在运行了20分钟以上,发生了段错误。 [C66xx_4] A00x53 A10x53 A20x4 A30x167e A40x1600 A50x850e2e A60x845097 A70xbad9f5e0 A80x0 A90x33 A100x53535353 A110x0 A120x0 A130x0 A140x0 A150x0 A160x36312e35 A170x20 A180x844df0 …

没有PFMEA分析的检测过程会有什么风险?

随着科技的快速发展,产品复杂度不断提升,检测过程的重要性日益凸显。然而,在这个过程中,如果没有进行PFMEA分析,将会带来怎样的风险呢?本文将对此进行深入探讨。 众所周知,检测是确保产品质量的…

openGauss学习笔记-222 openGauss性能调优-系统调优-操作系统参数调优

文章目录 openGauss学习笔记-222 openGauss性能调优-系统调优-操作系统参数调优222.1 前提条件222.2 内存相关参数设置222.3 网络相关参数设置222.4 I/O相关参数设置 openGauss学习笔记-222 openGauss性能调优-系统调优-操作系统参数调优 在性能调优过程中,可以根据…

数据库第六次实验

目录 1 实体完整性 1.1 单属性 1.2 多属性 2 参照完整性 2.1 单属性 2.2 多属性 3 用户自定义完整性 3.1 属性上的约束 3.2 元组上的约束 1 实体完整性 1.1 单属性 ①定义 use 实体完整性_单属性; create table Student_s_d( Sno char(9) primary key, Sna…

事务管理 及 AOP

一、事务管理 1.1 事务回顾 1.2 Spring事务管理 1.3 事务进阶 1.3.1 rollbackfor 1.3.2 propagation 控制台日志过滤插件: 查看事务管理日志是JdbcTrsactionManager类: 在控制台找到JdbcTrsactionManager——右击——add highlight——红色——所有事…

超声波清洗机洗眼镜好吗?超声波清洗机哪个品牌更值得推荐一些

随着科技的进步,很多朋友因为长时间沉迷于看电子产品,所以早早的就佩戴上眼镜了,从而离不开眼镜。眼镜长时间佩戴会导致上面积累着非常多的灰尘,堆积在镜片上就会导致视线变得模糊不清了,影响视线。然而很多人也很少去…

龙年新目标!龙蜥安全联盟第三次月会圆满结束

2024 年 2 月 1 日,龙蜥社区安全联盟(OASA,以下简称“联盟”)月度会议召开,线上线下共计 33 位代表参会,由秘书处成员齐增田主持本次会议。本次会议主要内容包括 2023 联盟回顾、2024 年的目标和规划、联盟…

【深度优先搜索】【图论】【树】2646. 最小化旅行的价格总和

作者推荐 【数位dp】【动态规划】【状态压缩】【推荐】1012. 至少有 1 位重复的数字 涉及知识点 深度优先搜索 图论 树 LeetCode2646. 最小化旅行的价格总和 现有一棵无向、无根的树,树中有 n 个节点,按从 0 到 n - 1 编号。给你一个整数 n 和一个长…

2024.2.17 模拟实现 RabbitMQ —— 内存数据管理

目录 需求分析 内存管理 实现 MemoryDataCenter 类 封装交换机操作 封装队列操作 封装绑定操作 封装消息操作 封装未确认消息操作 封装恢复数据操作 关于线程安全 针对 MemoryDataCenter 单元测试 需求分析 当前我们已经实现了 数据库管理 交换机、绑定、队列&#…

使用Python生成二维码的完整指南

无边落木萧萧下,不如跟着可莉一起游~ 可莉将这篇博客收录在了:《Python》 可莉推荐的优质博主首页:Kevin ’ s blog 本文将介绍如何使用Python中的qrcode库来生成二维码。通过简单的代码示例和详细解释,读者将学习如何在Python中轻…

突发!测试OpenAI新产品——sora

哈喽大家好,我是chowley,最近sora真是垄断了科技区的话题榜,几乎每个技术博主都上来讲两句 我在半年前也是一名深度学习的研究者,今天我以测试开发工程师的视角来解读一下sora! 首先打开OpenAI官网的sora页面&#x…

春节专题|产业7问:区块链厂商的现在和未来——混合技术厂商

2023转瞬即逝,不同于加密领域沉寂一整年后在年末集中爆发,对于我国的区块链厂商而言,稳中求胜才是关键词,在平稳发展的基调下,产业洗牌也悄无声息的到来。 从产业总体而言,在经过了接近3年的快速发展后&…

解决vitepress首次加载慢(从40秒到1秒的倔强)

前言:在艰难的博客系统升级之路 这篇博客中我有提到vitepress首次加载非常耗时的问题,之前也在网上搜索时发现也有很多人说这个“问题”,但是在折腾了这么一段时间后,发现这也许本身不是vitepress的问题,而是我的启动方…

【Java多线程】线程中几个常见的属性以及状态

目录 Thread的几个常见属性 1、Id 2、Name名称 3、State状态 4、Priority优先级 5、Daemon后台线程 6、Alive存活 Thread的几个常见属性 1、Id ID 是线程的唯一标识,由系统自动分配,不同线程不会重复。 2、Name名称 用户定义的名称。该名称在各种…

百度地图接口 | 实现校验收货地址是否超出配送范围

目录 1. 环境准备 2. 代码开发 2.1 application.yml 2.2 OrderServiceImpl 🍃作者介绍:双非本科大三网络工程专业在读,阿里云专家博主,专注于Java领域学习,擅长web应用开发、数据结构和算法,初步涉猎Py…

数据结构-双指针法

介绍 双指针法是一种可以在O(n)时间复杂度内解决数组、链表、字符串等数据结构相关的问题的方法。核心思想为使用两个指针在不同位置遍历数组或链表,从而实现特定操作。 常见的双指针法有 1.快慢指针:快指针每次移动两步&…

AI:131- 法律文件图像中的隐含信息挖掘与敲诈勒索检测

🚀点击这里跳转到本专栏,可查阅专栏顶置最新的指南宝典~ 🎉🎊🎉 你的技术旅程将在这里启航! 从基础到实践,深入学习。无论你是初学者还是经验丰富的老手,对于本专栏案例和项目实践都有参考学习意义。 ✨✨✨ 每一个案例都附带有在本地跑过的关键代码,详细讲解供…

天锐绿盾|防泄密系统|计算机文件数据\资料安全管理软件

“天锐绿盾”似乎是一款专注于防泄密和计算机文件数据/资料安全管理的软件。在信息安全日益受到重视的今天,这样的软件对于保护企业的核心数据资产和防止敏感信息泄露至关重要。 通用地址:www.drhchina.com 防泄密系统的主要功能通常包括: 文…