数学建模__非线性规划Python实现

使用到的是scipy库


线性规划指的是目标模型均为线性,除此以外的都是非线性规划,使用scipy提供的方法对该类问题进行求解。

py 复制代码
from scipy.optimize import minimize
import numpy as np

#定义目标函数
def fun(args):
    a,b,c,d = args
    v = lambda x: (a+x[0])/ (b+x[1]) - c*x[0] + d*x[2]
    return v

#定义约束条件
def con(args):
    # 约束条件 分为eq 和ineq
    # eq表示 函数结果等于0 ; ineq 表示 表达式大于等于0  

    x1min,x1max,x2min,x2max,x3min,x3max = args
    cons = ({'type':'ineq', 'fun': lambda x : x[0] - x1min},
            {'type':'ineq', 'fun': lambda x : -x[0] + x1max},
            {'type':'ineq', 'fun': lambda x : x[1] - x2min},
            {'type':'ineq', 'fun': lambda x : -x[1] + x2min},
            {'type':'ineq', 'fun': lambda x : x[2] - x3min},
            {'type':'ineq', 'fun': lambda x : -x[2] + x3min},

    )

    return cons

#定义常量值
args = (2,1,3,4)


#设置变量约束条件
args2 = (0.1,0.9,0.1,0.9,0.1,0.9)
cons = con(args2)


#设置初始随机值
x0 = np.asarray((0.5,0.5,0.5))
res = minimize(fun(args), x0, method='SLSQP', constraints=cons)
res
相关推荐
Ali885205 分钟前
Python列表增删改查速查表和详细演示
python
二十雨辰11 分钟前
[Java]-JVM面试题
java·开发语言·jvm
cfm_291415 分钟前
ConcurrentHashMap 线程安全机制与 JDK 1.8 演进
java·开发语言·安全
新时代牛马16 分钟前
softirq 与tasklet:从irq_exit 到__do_softirq 的下半部路径
python
tqs_1234520 分钟前
值传递与引用传递
java·开发语言·python
YsyaaabB21 分钟前
Deep Agents 实战课程
python·langchain
金銀銅鐵22 分钟前
斐波那契数列中连续10项的和总是能被11整除吗?
python·数学
databook24 分钟前
用 Python 计算联合概率和条件概率
python·数据分析
一直C28 分钟前
Linux系统编程|信号进阶 + SystemV IPC(消息队列、共享内存)
linux·c语言·开发语言·算法·青少年编程·vim
小王C语言42 分钟前
QT 基础:QT SDK 下载、配置、新建项目、项目代码解释
开发语言·qt