数学模型:Python实现非线性规划

这篇具有很好参考价值的文章主要介绍了数学模型:Python实现非线性规划。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

上篇文章:整数规划
文章摘要:非线性规划的Python实现。
参考书籍:数学建模算法与应用(第3版)司守奎 孙玺菁。
PS:只涉及了具体实现并不涉及底层理论。学习底层理论以及底层理论实现:可以参考1.最优化模型与算法——基于Python实现 渐令 粱锡军2.算法导论(原书第3版)Thomas H.Cormen Charles E.Leiserson、Ronald L.Rivest Clifford Stein
文章声明:如有发现错误,还望批评指正。

非线性规划简述

线性规划可行域内一定有解并且可以通过单纯形法或内点法找到。由于线性规划是凸问题所以第一篇文章使用ECOS第二篇文章使用GLOK_ML是合理的。非线性规划由于没有通用的求解方法从而难以优化。但是某些特定形式的非线性规划问题可被优化或者可以找到一些近似的解。

非线性规划典例

这应该是最优化的内容范畴,我们这里不作讨论。我们这里介绍蒙特卡洛随机模拟。

蒙特卡洛随机模拟

参考书籍例2.9
目标函数
max ⁡ y = x 1 2 + x 2 2 + 3 x 3 2 + 4 x 4 2 + 2 x 5 2 − 8 x 1 − 2 x 2 − 3 x 3 − x 4 − 2 x 5 \max y=x_1^2+x_2^2+3x_3^2+4x_4^2+2x_5^2-8x_1-2x_2-3x_3-x_4-2x_5 maxy=x12+x22+3x32+4x42+2x528x12x23x3x42x5
约束条件
0 ≤ x i ≤ 99 , i = 1 , 2 , … , 5 0\leq x_i\leq99,i=1,2,\dots,5 0xi99,i=1,2,,5
x 1 + x 2 + x 3 + x 4 + x 5 ≤ 400 x_1+x_2+x_3+x_4+x_5\leq400 x1+x2+x3+x4+x5400
x 1 + 2 x 2 + 2 x 3 + x 4 + 6 x 5 ≤ 800 x_1+2x_2+2x_3+x_4+6x_5\leq800 x1+2x2+2x3+x4+6x5800
2 x 1 + x 2 + 6 x 3 ≤ 200 2x_1+x_2+6x_3\leq200 2x1+x2+6x3200
x 3 + x 4 + 5 x 5 ≤ 200 x_3+x_4+5x_5\leq200 x3+x4+5x5200

from random import randint
def fun():
    lt=[randint(0,99) for _ in range(5)]
    if lt[0]+lt[1]+lt[2]+lt[3]+lt[4]>400:
        return None
    if lt[0]+2*lt[1]+2*lt[2]+lt[3]+6*lt[4]>800:
        return None
    if 2*lt[0]+lt[1]+6*lt[2]>200:
        return None
    if lt[2]+lt[3]+5*lt[4]>200:
        return None
    return lt[0]**2+lt[1]**2+3*lt[2]**2+4*lt[3]**2+2*lt[4]**2-8*lt[0]-2*lt[1]-3*lt[2]-lt[3]-2*lt[4]
n=pow(10,6);x=-float("inf")
for _ in range(n):
    f=fun()
    if f and f>x:
        x=f
print(x)

PS:30秒以内可以跑完。文章来源地址https://www.toymoban.com/news/detail-479984.html

到了这里,关于数学模型:Python实现非线性规划的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 数学建模【非线性规划】

    一、非线性规划简介 通过分析问题判断是用线性规划还是非线性规划 线性规划:模型中所有的变量都是一次方 非线性规划:模型中至少一个变量是非线性 非线性规划在形式上与线性规划非常类似,但在数学上求解却困难很多 线性规划有通用的求解准确解的方法(单纯形法

    2024年02月19日
    浏览(36)
  • 数学建模——非线性规划

    目录 基本概念 凸规划 判别定理 二次规划模型 非线性规划的求解 无约束极值问题 有约束极值问题 基于求解器的解法 基于问题的求解 其他 非线性规划:描述目标函数或约束条件条件的数学表达式中,至少有一个是非线性函数。 记是n维欧式空间中的一个点(n维向量),,

    2024年02月06日
    浏览(32)
  • 数学建模学习---非线性规划

    目录 前言 一、非线性规划问题是什么? 二、非线性规划的数学模型 1.一般形式 三、线性规划的 Matlab 解法 Matlab 中非线性规划的数学模型: 2.Matlab 中的命令: 本篇讲述非线性规划问题极其matlab解法 如果目标函数或约束条件中包含非线性函数,就称这种规划问题为非线性规

    2024年02月06日
    浏览(43)
  • 数学建模(五)非线性规划

     课程推荐: 13 非线性规划算法在数学建模中的应用与编程实现_哔哩哔哩_bilibili 如果目标函数或约束条件中包含非线性函数,就称这种规划问题为非线性规划问题 。一般说来,解非线性规划要比解线性规划问题困难得多。而且,也不像线性规划有单纯形法这一通用方法,

    2024年02月11日
    浏览(35)
  • 数学建模| 非线性规划(Matlab)

    非线性规划:约束条件和目标函数存在非线性函数。简单点说,约束条件和目标函数中至少一个决策变量不是一次方,例如三角函数、对数、多次方等。 线性规划和非线性在解决上的不同:线性规划可以有通用方法,但是非线性规划的求解是没有特定算的,只能用近似的算法

    2024年02月07日
    浏览(36)
  • 三、数学建模之非线性规划

    1、定义 2、例题matlan代码求解 1.非线性规划 (Nonlinear Programming,简称NLP)是一种数学优化问题的方法,它处理的目标函数或约束条件包含非线性项。与线性规划不同,非线性规划涉及到在非线性约束下寻找最优解。在许多领域都有广泛的 应用,包括工程、经济学、物流、金

    2024年01月16日
    浏览(41)
  • 高等工程数学 —— 第五章 (2)非线性规划的最优条件

    无约束规划问题的最优性条件 简单说就是先用一阶必要条件求驻点,再用二阶充分条件来验证。 其实就是一阶导数为0然后解未知量的值 这里的Hesse矩阵如下: 再简单说说判断矩阵是否正定的两种方法: 求出A的所有特征值。若A的特征值均为正数,则A是正定的;若A的特征值

    2024年02月03日
    浏览(28)
  • 优化模型:MATLAB非线性规划

    1.1 非线性规划的定义 非线性规划(Nonlinear Programming,NLP) 是一种数学规划方法,用于解决含有非线性目标函数和/或非线性约束条件的优化问题。它是线性规划的一种扩展形式,更加广泛适用于复杂实际问题。 非线性规划的目标是最小化(或最大化)一个非线性目标函数,

    2024年02月04日
    浏览(30)
  • 数模3—Matlab线性规划、非线性规划、多目标规划(超全解法合集)

    线性规划,非线性规划,多目标规划都归于优化类模型 🎐例题 张麻子既要攻碉楼又要追替身,他们一伙6人,总共1200发子弹;每有一人攻碉楼会给百姓带来40点士气值,每有一人追替身会给百姓带来30点士气值;攻碉楼每人需240发子弹,追替身每人需120发。 问攻碉楼和追替身各

    2023年04月19日
    浏览(33)
  • MATLAB 非线性规划

    ✅作者简介:人工智能专业本科在读,喜欢计算机与编程,写博客记录自己的学习历程。 🍎个人主页:小嗷犬的个人主页 🍊个人网站:小嗷犬的技术小站 🥭个人信条:为天地立心,为生民立命,为往圣继绝学,为万世开太平。 非线性规划问题 仍是规划问题的一种,但是

    2024年02月05日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包