1.非线性规划的实例与定义

如果目标函数或约束条件中包含非线性函数,就称这种规划问题为非线性规划问题。

例1:(投资决策问题)

某企业拥有n个项目可供选择投资,并且至少要对其中一个项目投资。已知该企业拥有总资金A元,投资于第i(i=1,....n)个项目需花费资金ai元,并预计可收益bi元,试选择最佳投资方案。

2.非线性规划的数学模型

一般形式:

在一组等式或不等式的约束下,求一个函数的最大值(或最小值)问题,其中至少有一个非线性函数,这类问题称之为非线性规划问题。

matlab中非线性规划的数学模型写成以下形式:

其中f(x)是标量函数,A,b,Aeq,beq,lb,ub是相应维数的矩阵和向量,c(x),ceq(x)是非线性向量函数

matlab中的命令是:

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

x的返回值是决策向量x的取值;

fval返回的是目标函数的取值;

fun是用M文件定义的函数;

x0是x的初始值;

A,b,Aeq,beq定义了线性约束Ax<=b,Aeqx=beq,如果没有线性约束,则A=[ ],b=[ ],Aeq=[ ],beq=[ ];

lb和ub是变量x的下界和上界,如果上界和下界没有约束,即x无下界也无上界,则lb=[ ],ub=[ ],也可以写成lb的各分量都为-inf,ub的各分量都为inf;

nonlcon是用M文件定义的非线性向量函数c(x),ceq(x);

options定义了优化参数,可以使用matlab缺省的参数设置。

例2:求下列非线性规划

解:

(1)编写M文件fun1.m定义目标函数

function f=fun1(x);
f=sum(x.^2)+8;

(2)编写M文件fun2.m定义非线性约束条件

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

(3)编写主程序文件example2.m如下:

[x,y]=fmincon('fun1',rand(3,1),[],[],[],[],zeros(3,1),[],'fun2')

3.二次规划

若某非线性规划的目标函数为自变量x的二次函数,约束条件又全是线性的,就称这种规划为二次规划

matlab中二次规划的数学模型可表述如下:

这里H是实对称矩阵,f,b,beq,lb,ub,是列向量,A,Aeq是相应维数的矩阵

matlab中求解二次规划的的命令是:

[x,fval]=quadprog(H,f,A,b,Aeq,beq,lb,ub,x0,options)

返回值x是决策向量x的取值;

返回值fval是目标函数在x处的值;

具体细节可以参考在matlab命令窗口中运行help quadprog的帮助

例3:求解二次规划

解:编写如下程序

h=[4,-4;-4,8];%%二次型矩阵,平方项系数x2填对角,交叉项系数/2
f=[-6;-3];
a=[1,1;4,1];
b=[3,9];
[x,value]=quadprog(h,f,a,b,[],[],zeros(2,1))

例4:

某公司有6个建筑工地要开工,每个工地的位置(用平面坐标系a,b表示,距离单位:千米 )及水泥日用量d(吨)由下表给出。目前有两个临时料场位于A(5,1),B(2,7),日储量各有20吨。假设从料场到工地之间均有直线道路相连。   (1)试制定每天的供应计划,即从A,B两料场分别向各工地运送多少吨水泥,使总的吨千米数最小。  (2)为了进一步减少吨千米数,打算舍弃两个临时料场,改建两个新的,日储量各为20吨,问应建在何处,节省的吨千米数有多大?

程序:

a = [1.25 8.75 0.5 5.75 4 7.25];
b = [1.25 0.75 4.75 5 6.5 7.25];
d =[3 5 4 7 6 11];
x =[5 2];
y =[1 7];
e =[20 20];for i=1:6for j=1:2aa(i,j)=sqrt((x(j)-a(i))^2+(y(j)-b(i))^2);end
end
CC=[aa(:,1);aa(:,2)];A=[1 1 1 1 1 1 0 0 0 0 0 0;0 0 0 0 0 0 1 1 1 1 1 1];
B=[20;20];
Aeq=[1 0 0 0 0 0 1 0 0 0 0 0 %从第一\二料场运到工地一的料0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 ];
beq=[d(1);d(2);d(3);d(4);d(5);d(6)];
VLB=[0 0 0 0 0 0 0 0 0 0 0 0];
VUB=[];
x0=[1 2 3 0 1 0 0 1 0 1 0 1];%给一个初值,可以不给
[xx,fval]=linprog(CC,A,B,Aeq,beq,VLB,VUB,x0)

 改建两个新料场时,原本的A,B坐标变成未知数,令 , , ,

定义目标函数:

function f=liaoch(x)
a=[1.25 8.75 0.5 5.75 3 7.25];
b=[1.25 0.75 4.75 5 6.5 7.25];
d=[3 5 4 7 6 11];
e=[20 20];
f1=0;
for  i=1:6s(i)=sqrt((x(13)-a(i))^2+(x(14)-b(i))^2);f1=s(i)*x(i)+f1;
end
f2=0;
for  i=7:12s(i)=sqrt((x(15)-a(i-6))^2+(x(16)-b(i-6))^2);f2=s(i)*x(i)+f2;
end
f=f1+f2;

取初值为线性规划的计算结果及临时料场的坐标: x0=[3  5 0  7  0  1  0  0  4  0  6 10 5 1 2 7]';

编写主程序:

clear
x0=[3  5 0  7  0  1  0  0  4  0  6 10 5 1 2 7];
%x0=[ 3.0000 5.0000 0.0707 7.0000  0 0.9293 0 0 3.9293  0 6.0000 10.0707 6.3875 4.3943 5.7511 7.1867];
%x0=[ 3.0000 5.0000 0.3094 7.0000 0.0108 0.6798 0 0 3.6906 0 5.9892 10.3202 5.5369 4.9194 5.8291 7.2852];
%x0=[3 5 4 7 1 0 0 0 0 0 5 11 5.6348 4.8687 7.2479 7.7499];
A=[1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0];
B=[20;20];
Aeq=[1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 00 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 00 0 0 1 0 0 0 0 0 1 0 0 0 0 0 00 0 0 0 1 0 0 0 0 0 1 0 0 0 0 00 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0];
beq=[3 5 4 7 6 11];
vlb=[zeros(12,1);-inf;-inf;-inf;-inf];
vub=[];
[x,fval,exitflag]=fmincon('liaoch',x0,A,B,Aeq,beq,vlb,vub)

【数学建模笔记】3.非线性规划相关推荐

  1. Python小白的数学建模课-12.非线性规划

    非线性规划是指目标函数或约束条件中包含非线性函数的规划问题,实际就是非线性最优化问题. 从线性规划到非线性规划,不仅是数学方法的差异,更是解决问题的思想方法的转变. 非线性规划问题没有统一的通用方法, ...

  2. 数学建模笔记——插值拟合模型(二)

    今天是8月21日,距离上次写文章好像将近一个月了--这段时间经历了建模校内选拔赛,考试周,以及与网络小说的斗智斗勇--好吧,其实也没干什么,除了考试就是荒废-- 我最近有在思考一个问题,就是我所关注的 ...

  3. 数学建模笔记之一起读论文2019年C题——机场的出租车问题

    数学建模笔记之一起读论文--机场的出租车问题 2021-8-28 全国大学生数学建模竞赛 2019年C题 B站链接--国赛C题真题解析 1 赛题阅读与分析 原题再现: 问题C 机场的出租车问题 大多数 ...

  4. 数学建模笔记-第十四讲-主成分分析

    文章目录 主成分分析 数据降维 主成分分析思想 PCA计算过程 主成分分析的应用 例1 主成分的说明 例2 MATLAB 对结果的解释 主成分分析的滥用:主成分得分 主成分分析用于聚类 主成分回归 说 ...

  5. 数学建模笔记-第五讲-相关系数

    文章目录 相关系数 pearson相关系数 相关性可视化 误区 相关系数大小的解释 例题 描述性统计 matlab excel SPSS 矩阵散点图 计算相关系数 热力图美化结果 对相关系数进行假设检 ...

  6. 数学建模笔记——评价类模型之灰色关联分析

    这一篇就简单介绍一下灰色关联分析吧.灰色关联分析主要有两个作用,一是进行系统分析,判断影响系统发展的因素的重要性.第二个作用就是用于综合评价问题,给出研究对象或者方案的优劣排名. 不过这里我只能简单介 ...

  7. 数学建模笔记-第七讲-回归分析

    文章目录 回归分析 线性回归介绍 回归系数 内生性探究 蒙特卡罗代码 弱化无内生性条件 四种模型 回归系数的解释 四种模型回归系数的解释 虚拟变量 多分类的虚拟变量设置 含交互项的自变量 应用题(奶粉 ...

  8. 清风数学建模笔记——Excel画图保姆级教学

    备注:本篇内容是在Office环境下作图,WPS不支持直方图和箱线图好像.免费的Office软件可以在微信搜索中搜"Office"然后挑一个下载即可 本文借鉴了数学建模清风老师的课 ...

  9. 数学建模笔记(1)——评价类问题

    写在前面,以下为几天后的数学建模做准备,鉴于非工科背景出身,决定放弃A类题,以C类题为主,辅以B题开始学习. ( 内容主要参考知乎.CSDN及B站网课,会表明出处,侵删) 首先研究评价类问题 例如,2 ...

  10. python三次样条插值拟合的树行线_数学建模笔记——插值拟合模型(一)

    啊好像距离上次写作又过了七天,啊好像我之前计划的一周两三篇,啊辣鸡小说毁我青春,啊我是一只可怜的鸽子. 不管怎样,我又回来了,并坚定地更新着hhh.再过两三天就是我们学校数学建模选拔,再过八九天就是期 ...

最新文章

  1. LDAP和Implementation
  2. Lambda表达式练习1【应用】
  3. Nginx限流-速率实现
  4. LeetCode 421. 数组中两个数的最大异或值(Trie树)
  5. CentOS6.9编译安装LNMP环境
  6. 用jQuery实现一些导航条切换,显示隐藏
  7. 个人博客网站文章添加目录导航
  8. [小功能]禁用模板默认CSS
  9. 论文笔记_S2D.55_2019_SLAM综述_Huang B. A Survey of Simultaneous Localization and Mapping
  10. C#获取C# DLL中的指定接口的所有实现实例 - qq_19759475的博客 - CSDN博客
  11. Google Data Studio:漂亮,免费,易于使用的数据可视化工具
  12. 原生JS实现图片幻灯片效果
  13. Vue移动端 手机六位数密码框
  14. On the Generality of Facial Forgery Detection论文原文翻译以及阅读笔记
  15. 大青山发生火情!内蒙古发生多起祭祖引发的火灾,数十人被拘...
  16. Google TV 来了
  17. 微信公众号与小程序(二十——关于我如何莫名其妙建了一个电影搜索机器人这件事)
  18. java计算机毕业设计的小区物业管理系统源程序+mysql+系统+lw文档+远程调试java计算机毕业设计的小区物业管理系统源程序+mysql+系统+lw文档+
  19. MacBook Air响一声白屏故障情况说明及解决
  20. 2018.8.21 广州科目三展茂东满分飘技巧

热门文章

  1. java窗体实现随机点名软件,求一个教师随机点名程序
  2. 3. java缓存-线程内缓存guava cache
  3. 机器学习入门(二)--CASIA-HWDB(tensorflow)微调efficientNetB0实现手写字体的识别
  4. 一款好的数据库监控工具:天兔数据库监控平台3.8搭建
  5. 陪你一起去看 iSO27001 Foundation 学习手册 【初生】
  6. Mybatis 和 Mybatis Plus 的区别
  7. vue项目使用阿里无痕验证
  8. 【无人驾驶系列十】无人驾驶硬件平台设计
  9. 梯度是向量,方向导数是一个数
  10. 百度地图获取行政范围边界-区县级及以上范围