数学建模——非线性规划

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

目录

基本概念

凸规划

判别定理

二次规划模型

非线性规划的求解

无约束极值问题

有约束极值问题

基于求解器的解法

基于问题的求解

其他


非线性规划:描述目标函数或约束条件条件的数学表达式中,至少有一个是非线性函数。

基本概念

记是n维欧式空间中的一个点(n维向量),,,是定义在上的实值函数。若f,g,h函数中至少有一个是x的非线性函数,则称如下为非线性规划模型的一般形式:

数学建模——非线性规划

 全局最优解:若,并且都有,则称为全局最优解。

 局部最优解:x的邻域内(也包含于可行域),x所对应的函数值是最小的,则x为局部最优解。

无约束非线性规划问题可以具体表示为:

凸规划

凸规划是一类特殊的非线性规划问题,可以求得全局最优解。

凸集:

数学建模——非线性规划

 凸函数:

数学建模——非线性规划

定义在凸集上的有限个凸函数的非负线性组合仍为凸函数

判别定理

数学建模——非线性规划

数学建模——非线性规划

半正定矩阵的行列式非负。

黑塞矩阵:

数学建模——非线性规划

 对于非线性规划模型的一般形式,若f(x)为凸函数,g(x)为凸函数,h(x)为线性函数,则称该非线性规划问题为凸规划。凸规划局部最优解即为全局最优解,最优解的集合形成一个凸集。当目标函数为严格凸函数时,其最优解必定唯一。

例子

数学建模——非线性规划

f(x)和g2(x)的黑塞矩阵的行列式:

数学建模——非线性规划

 其他约束条件为线性函数,所以是一个凸规划问题

clc,clear
prob = optimproblem;
x = optimvar('x',2,'LowerBound',0);
prob.Objective = sum(x.^2)-4*x(1)+4;
con = [-x(1)+x(2)-2 <= 0
    x(1)^2-x(2)+1 <= 0];
prob.Constraints.con = con;
x0.x = rand(2,1)%非线性规划必须赋初值,x0名字随便取
[s,f,flag,o] = solve(prob,x0);
s.x

ans =

    0.5536
    1.3064

二次规划模型

目标函数是关于决策向量的二次函数,约束条件是线性的,则该模型称为二次规划模型,一般形式:

数学建模——非线性规划

数学建模——非线性规划

 其中:

数学建模——非线性规划

 当H正定时,目标函数最小化时,模型为凸二次规划,凸二次规划局部最优解就是全局最优解。如果不是凸规划,则建议使用fmincon函数。

例子

数学建模——非线性规划

数学建模——非线性规划

目标函数是最小化,但是H为负定矩阵,所以不是凸规划。

clc,clear
x = optimvar('x',2,'LowerBound',0);
h = [-1,-0.15;-0.15,-2];
f = [98;277];
a = [1,1;1,-2];
b = [100;0];
prob = optimproblem('Objective',x'*h*x+f'*x);
prob.Constraints = a*x <= b;
[s,f,flag,o] = solve(prob);
s.x

ans =

     1
     1

[1,1]是局部最优解,使用fmincon函数:

数学建模——非线性规划

fx = @(x)x'*h*x+f'*x;
[x,y] = fmincon(fx,rand(2,1),a,b,[],[],[0;0],[])

x =

   1.0e-07 *

    0.2533
    0.3400
y =

   1.1901e-05

非线性规划的求解

无约束极值问题

MATLAB工具箱中用于求解无约束极小值的函数有:

数学建模——非线性规划

数学建模——非线性规划

 例子

数学建模——非线性规划

clc,clear
f = @(x) x(1)^3-x(2)^3+3*x(1)^2+3*x(2)^2-9*x(1);
g = @(x) -f(x);
[m1,n1] = fminunc(f,[0,0])%求极小值
[m2,n2] = fminsearch(g,[0,0]);%求极大值
m2,-n2

m1 =

    1.0000   -0.0000
n1 =

    -5
m2 =

   -3.0000    2.0000
ans =

   31.0000

数学建模——非线性规划

有约束极值问题

同样有基于求解器的求解方法和基于问题的求解方法

基于求解器的解法

数学模型的标准形式为:

数学建模——非线性规划

数学建模——非线性规划

 例:

数学建模——非线性规划

clc,clear
fun1 = @(x) sum(x.^2)+8;
[x,y] = fmincon(fun1,rand(3,1),[],[],[],[],zeros(3,1),[],@fun2)

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

基于问题的求解

clc,clear
x = optimvar('x',3,'LowerBound',0);
prob = optimproblem('Objective',sum(x.^2)+8);
con1 = [-x(1)^2+x(2)-x(3)^2 <= 0
    x(1)+x(2)^2+x(3)^3 <= 20];
con2 = [-x(1)-x(2)^2+2 == 0
    x(2)+2*x(3)^2 == 3];
prob.Constraints.con1 = con1;
prob.Constraints.con2 = con2;
x0.x = rand(3,1);
[s,f,flag,out] = solve(prob,x0);
s.x,f

 

其他

匿名函数的返回值只能有一个,可以是向量。文章来源地址https://www.toymoban.com/news/detail-462858.html

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

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

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

相关文章

  • 三、数学建模之非线性规划

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

    2024年01月16日
    浏览(53)
  • 数学建模| 非线性规划(Matlab)

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

    2024年02月07日
    浏览(50)
  • 数学建模十大算法03—线性规划、整数规划、非线性规划、多目标规划

    一、线性规划(Linear Programming,LP) 1.1 引例 在人们的生产实践中,经常会遇到 如何利用现有资源来安排生产,以取得最大经济效益的问题。 此类问题构成了运筹学的一个重要分支一数学规划,而 线性规划(Linear Programming, LP) 则是数学规划的一个重要分支。 简而言之,线

    2024年02月13日
    浏览(46)
  • 数学建模__非线性规划Python实现

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

    2024年02月07日
    浏览(51)
  • 【数学建模】Python+Gurobi求解非线性规划模型

    目录 1 概述 2 算例  2.1 算例 2.2 参数设置 2.3 Python代码实现 2.4 求解结果 如果目标函数或约束条件中包含非线性函数,就称这种规划问题为非线性规划问题。 参考:(非线性规划Python)计及动态约束及节能减排环保要求的经济调度 2.1 算例 2.2 参数设置 求解NLP/非凸问题时,

    2024年02月09日
    浏览(47)
  • 数学模型:Python实现非线性规划

    上篇文章:整数规划 文章摘要:非线性规划的Python实现。 参考书籍:数学建模算法与应用(第3版)司守奎 孙玺菁。 PS:只涉及了具体实现并不涉及底层理论。学习底层理论以及底层理论实现:可以参考1.最优化模型与算法——基于Python实现 渐令 粱锡军2.算法导论(原书第3版)

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

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

    2024年02月03日
    浏览(43)
  • 数学建模:线性与非线性优化算法

    🔆 文章首发于我的个人博客:欢迎大佬们来逛逛 优化算法 是指在满足一定条件下,在众多方案中或者参数中最优方案,或者参数值,以使得某个或者多个功能指标达到最优,或使得系统的某些性能指标达到最大值或者最小值 优化的两个关键点: 1.明确优化的目标函数 2.明确优化

    2024年02月07日
    浏览(43)
  • 数学建模——线性规划

    目录 基本概念 模型求解和应用 基于求解器的求解方法 基于问题的求解方法 其他  运筹学的一个重要分支是数学规划,线性规划是数学规划的一个重要的分支。 变量称为 决策变量 ,规划的目标称为 目标函数 ,限制条件称为 约束条件 ,s.t.是“受约束于”的意思。 建立线

    2024年01月18日
    浏览(45)
  • 【数学建模】线性规划

    1.1线性规划的实例与定义 1.2线性规划的Matlab标准形式 线性规划的目标函数可以是求最大值,也可以是求最小值,约束条件的不等号可以是小于号也可以是大于号。为了避免这种形式多样性带来的不便,Matlab中规定线性规划的标准形式为 其中c和x为n维列向量,A,Aeq为适当维数

    2024年02月09日
    浏览(44)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包