数模方法论-整数规划

一、基本概念

非线性规划的应用包括工程设计、资源分配、经济模型等。在求解过程中,由于非线性特性,常用的方法有梯度法、牛顿法、启发式算法等。求解非线性规划问题时,解的存在性和唯一性通常较难保证,且可能存在多个局部最优解。

        非线性规划是数学建模中处理优化问题的一种方法,尤其在目标函数或约束条件为非线性时。它的基本形式可以表示为:

二、实际应用

1、投资决策问题 

 三、程序代码求解方法

1、例题一

MATLAB求解 
clc,clear
x0=[150 85 150 145 130 0];
y0=[140 85 155 50 150 0];
q=[243 236 220.5 159 230 52];
xy0=[x0; y0];
d0=dist(xy0);   %求矩阵各个列向量之间的距离
d0(find(d0==0))=inf;
a0=asind(8./d0)  %以度为单位的反函数
xy1=x0+i*y0
xy2=exp(i*q*pi/180)
for m=1:6for n=1:6if n~=mb0(m,n)=angle((xy2(n)-xy2(m))/(xy1(m)-xy1(n))); endend
end
b0=b0*180/pi;
dlmwrite('txt1.txt',a0,'delimiter', '\t','newline','PC');
dlmwrite('txt1.txt','~','-append');       %往纯文本文件中写LINGO数据的分割符
dlmwrite('txt1.txt',b0,'delimiter', '\t','newline','PC','-append','roffset', 1)
 Python求解 
import numpy as np# 初始化数据
x0 = np.array([150, 85, 150, 145, 130, 0])
y0 = np.array([140, 85, 155, 50, 150, 0])
q = np.array([243, 236, 220.5, 159, 230, 52])
xy0 = np.vstack((x0, y0))# 计算距离矩阵
def dist(xy):return np.linalg.norm(xy[:, np.newaxis] - xy[:, np.newaxis].T, axis=0)d0 = dist(xy0)
d0[d0 == 0] = np.inf  # 将距离为0的值设为无穷大a0 = np.degrees(np.arcsin(8.0 / d0))  # 以度为单位的反正弦# 复数表示
xy1 = x0 + 1j * y0
xy2 = np.exp(1j * np.radians(q))# 计算角度矩阵
b0 = np.zeros((6, 6))
for m in range(6):for n in range(6):if n != m:b0[m, n] = np.angle((xy2[n] - xy2[m]) / (xy1[m] - xy1[n]))b0 = np.degrees(b0)# 写入文件
np.savetxt('txt1.txt', a0, delimiter='\t', newline='\n')
with open('txt1.txt', 'a') as f:f.write('~\n')  # 写入分隔符np.savetxt(f, b0, delimiter='\t', newline='\n', fmt='%f', header='', comments='', footer='', encoding='utf-8')

2、例题二

 MATLAB求解 

function [g,h]=fun2(x);
g=[-x(1)^2+x(2)-x(3)^2
x(1)+x(2)^2+x(3)^3-20];  %非线性不等式约束
h=[-x(1)-x(2)^2+2
x(2)+2*x(3)^2-3]; %非线性等式约束function f=fun1(x);
f=sum(x.^2)+8;[x,y]=fmincon('fun1',rand(3,1),[],[],[],[],zeros(3,1),[],'fun2')

Python求解

import numpy as np
from scipy.optimize import minimize# 非线性不等式约束
def constraints_inequality(x):return np.array([-x[0]**2 + x[1] - x[2]**2,x[0] + x[1]**2 + x[2]**3 - 20])# 非线性等式约束
def constraints_equality(x):return np.array([-x[0] - x[1]**2 + 2,x[1] + 2*x[2]**2 - 3])# 目标函数
def objective(x):return np.sum(x**2) + 8# 初始猜测
x0 = np.random.rand(3)# 定义约束
cons = [{'type': 'ineq', 'fun': constraints_inequality},{'type': 'eq', 'fun': constraints_equality}]# 优化
result = minimize(objective, x0, constraints=cons, bounds=[(0, None)]*3)# 输出结果
print("Optimal solution:", result.x)
print("Objective function value:", result.fun)

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

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

相关文章

《飞机大战游戏》实训项目(Java GUI实现)(设计模式)(简易)

目录 一、最终实现后,效果如下。 (1)简单介绍本游戏项目(待完善) (2)运行效果图(具体大家自己可以试) 初始运行情况。 手动更换背景图。 通过子弹攻击敌机,累…

Echats 实现CPK (过程能力)研究报告

背景: 实现: Echarts Option 代码示例 option {title: {text: 折线图示例 - X轴为数值},xAxis: {type: value, // X 轴改为数值型min: 0, // 最小值max: 10, // 最大值},yAxis: {type: value},series: [{type: line,data: [[0, 150], [2, 230], [4, 224], [6…

嵌入式单片机STM32开发板详细制作过程--01

大家好,今天主要给大家分享一下,单片机开发板的制作过程,原理图的制作与PCB设计,以及电子元器件采购与焊接。 第一:单片机开发板成品展示 板子正面都有各个芯片的丝印与标号,方便焊接元器件的时候,可以参考。(焊接完成之后,成品图如下) 第二:开发板原理图制作 在制…

ElasticSearch的搜索方式

目录 目录 前言 数据准备 文档搜索 一、查询所有文档 二、全文检索 (1)全文检索 (2)自动纠错 三、范围搜索 四、短语检索 五、单词/词组搜索 六、复合搜索 前言 数据准备 PUT /students {"mappings":{&qu…

【监控】【Nginx】使用 Docker 部署 ELK Stack 监控 Nginx

目录 1. 什么是 ELK Stack?2. 准备工作3. 使用 Docker Compose 部署 ELK Stack创建 Logstash 配置文件 4. 配置 Nginx 日志收集安装并配置 Filebeat 5. 访问 Kibana 并可视化数据总结 在现代云原生应用中,使用 Docker 容器化部署 ELK Stack(E…

FLStudio21Mac版flstudio v21.2.1.3430简体中文版下载(含Win/Mac)

给大家介绍了许多FL21版本,今天给大家介绍一款FL Studio21Mac版本,如果是Mac电脑的朋友请千万不要错过,当然我也不会忽略掉Win系统的FL,链接我会放在文章,供大家下载与分享,如果有其他问题,欢迎…

Spring后端直接用枚举类接收参数,自定义通用枚举类反序列化器

在使用枚举类做参数时,一般会让前端传数字,后端将数字转为枚举类,当枚举类很多时,很可能不知道这个code该对应哪个枚举类。能不能后端直接使用枚举类接收参数呢,可以,但是受限。 Spring反序列默认使用的是J…

投资学 01 定义,投资

02. 03. 3.1 直接投资:使用方和提供方是一个人

yolov8模型在Xray图像中关键点检测识别中的应用【代码+数据集+python环境+GUI系统】

yolov8模型在X yolov8模型在Xray图像中关键点检测识别中的应用【代码数据集python环境GUI系统】 1.背景意义 X射线是一种波长极短、穿透能力极强的电磁波。当X射线穿透物体时,不同密度和厚度的物质会吸收不同程度的X射线,从而在接收端产生不同强度的信号…

WordPress建站钩子函数及使用

目录 前言: 使用场景: 一、常用的wordpress钩子(动作钩子、过滤器钩子) 1、动作钩子(Action Hooks) 2、过滤器钩子(Filter Hooks) 二、常用钩子示例 1、添加自定义 CSS 和 JS…

实战OpenCV之直方图

基础入门 直方图是对数据分布情况的图形表示,特别适用于图像处理领域。在图像处理中,直方图通常用于表示图像中像素值的分布情况。直方图由一系列矩形条(也被称为bin)组成,每个矩形条的高度表示某个像素值(…

信息安全工程师(8)网络新安全目标与功能

前言 网络新安全目标与功能在当前的互联网环境中显得尤为重要,它们不仅反映了网络安全领域的最新发展趋势,也体现了对网络信息系统保护的不断加强。 一、网络新安全目标 全面防护与动态应对: 目标:建立多层次、全方位的网络安全防…

微服务常见面试题总结

文章目录 1 概念1.1 你对微服务是怎么理解的1.2 微服务带来了哪些挑战?1.3 说下微服务有哪些组件?🔥 2 注册中心2.1 注册中心有什么用?🔥2.2 SpringCloud可以选择哪些注册中心?2.3 说下Eureka 和 Nacos的区…

java日志框架之Log4j

文章目录 一、Log4j简介二、Log4j组件介绍1、Loggers (日志记录器)2、Appenders(输出控制器)3、Layout(日志格式化器) 三、Log4j快速入门四、Log4j自定义配置文件输出日志1、输出到控制台2、输出到文件3、输出到数据库 五、Log4j自…

【Docker】基于Dockerfile创建携带最新cuda版本以及与其配套的cudnn环境的ubuntu20.04镜像

基于Dockerfile创建携带最新cuda版本以及与其配套的cudnn环境的ubuntu20.04镜像 最近涉及到一个在 x86 上机器上使用英伟达GPU资源做加速计算的项目,包括模型推理加速和编解码加速。 为了保持两个模块开发cuda环境的一致性,故构建该基础镜像。 编写Docke…

WPF自定义Dialog模板,内容用不同的Page填充

因为审美的不同,就总有些奇奇怪怪的需求,使用框架自带的对话框已经无法满足了,这里记录一下我这边初步设计的对话框。别问为啥要用模板嵌套Page来做对话框,问就是不想写太多的窗体。。。。 模板窗体(XAML)…

植物大战僵尸【源代码分享+核心思路讲解】

植物大战僵尸已经正式完结,今天和大家分享一下,话不多说,直接上链接!!!(如果大家在运行这个游戏遇到了问题或者bug,那么请私我谢谢) 大家写的时候可以参考一下我的代码思…

如何在堆和栈上分别创建一个`QObject`子类对象

在堆上创建QObject子类对象的例子 在Qt中,QObject是许多Qt类和对象的基类,提供了对象模型的核心功能,如信号和槽机制、事件处理等。当一个QObject对象在堆上创建时,意味着这个对象是通过new操作符在堆(heap&#xff0…

基于单片机的智能校园照明系统

由于校园用电量较大,本设计可以根据实际环境情况的改变,实现实时照明的控制。本设计以单片机芯片为控制芯片,热释电传感器采集教室中学生出入的信息,并把信息传递给单片机芯片,单片机芯片根据传感器传递过来的信息来控…

【STL】 set 与 multiset:基础、操作与应用

在 C 标准库中&#xff0c;set 和 multiset 是两个非常常见的关联容器&#xff0c;主要用于存储和管理具有一定规则的数据集合。本文将详细讲解如何使用这两个容器&#xff0c;并结合实例代码&#xff0c;分析其操作和特性。 0.基础操作概览 0.1.构造&#xff1a; set<T&…