实例matlab非线性规划作业
MATLAB优化应用非线性规划

MATLAB优化应用非线性规划非线性规划是一类数学优化问题,其中目标函数和约束条件都是非线性的。
MATLAB作为一种强大的数值计算软件,提供了丰富的工具和函数,可以用于解决非线性规划问题。
本文将介绍如何使用MATLAB进行非线性规划的优化应用,并提供一个具体的案例来演示。
一、MATLAB中的非线性规划函数MATLAB提供了几个用于解决非线性规划问题的函数,其中最常用的是fmincon函数。
fmincon函数可以用于求解具有等式约束和不等式约束的非线性规划问题。
其基本语法如下:x = fmincon(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon,options)其中,fun是目标函数,x0是变量的初始值,A和b是不等式约束的系数矩阵和右端向量,Aeq和beq是等式约束的系数矩阵和右端向量,lb和ub是变量的上下界,nonlcon是非线性约束函数,options是优化选项。
二、非线性规划的优化应用案例假设我们有一个工厂,需要生产两种产品A和B,目标是最大化利润。
产品A 和B的生产成本分别为c1和c2,售价分别为p1和p2。
同时,我们需要考虑两种资源的限制,分别是资源1和资源2。
资源1在生产产品A和B时的消耗分别为a11和a12,资源2的消耗分别为a21和a22。
此外,产品A和B的生产量有上下限限制。
我们可以建立以下数学模型来描述这个问题:目标函数:maximize profit = p1 * x1 + p2 * x2约束条件:c1 * x1 + c2 * x2 <= budgeta11 * x1 + a12 * x2 <= resource1a21 * x1 + a22 * x2 <= resource2x1 >= min_production_Ax2 >= min_production_Bx1 <= max_production_Ax2 <= max_production_B其中,x1和x2分别表示产品A和B的生产量,budget是预算,min_production_A和min_production_B是产品A和B的最小生产量,max_production_A和max_production_B是产品A和B的最大生产量。
基于matlab求解非线性规划问题

计算结果为:
x =[ 3.0000 5.0000 0.0000 7.0000 0.0000 1.0000 0.0000 0.0000 4.0000 0.0000 6.0000 10.0000]’ fval = 136.2275
即 由 料 场 A、 B 向 6 个 工 地 运 料 方 案 为 : 1 料场 A 料场 B 3 0 2 5 0 3 0 4 4 7 0 5 0 6 6 1 10
(二)使用临时料场的情形
使用两个临时料场A(5,1),B(2,7).求从料场j向工地i的运送量 为Xij,在各工地用量必须满足和各料场运送量不超过日储量的 条件下,使总的吨千米数最小,这是线性规划问题. 线性规划模 型为:
min f
aa ( i , j ) X
j 1 i 1
2
6
ij
2、先建立M-文件 fun3.m: function f=fun3(x); f=-x(1)-2*x(2)+(1/2)*x(1)^2+(1/2)*x(2)^2
3、再建立主程序youh2.m: x0=[1;1]; A=[2 3 ;1 4]; b=[6;5]; Aeq=[];beq=[]; VLB=[0;0]; VUB=[]; [x,fval]=fmincon('fun3',x0,A,b,Aeq,beq,VLB,VUB) 4、运算结果为: x = 0.7647 1.0588 fval = -2.0294
工 地 位 置 ( a, b) 及 水 泥 日 用 量 d 1 a b d 1 .2 5 1 .2 5 3 2 8 .7 5 0 .7 5 5 3 0 .5 4 .7 5 4 4 5 .7 5 5 7 5 3 6 .5 6 6 7 .2 5 7 .2 5 11
非线性规划的MATLAB解法及其应用

题 目 非线性规划的MATLAB 解法及其应用(一) 问题描述非线性规划是具有非线性约束条件或目标函数的数学规划,是运筹学的一个重要分支。
非线性规划是20世纪50年代才开始形成的一门新兴学科。
70年代又得到进一步的发展。
非线性规划在工程、管理、经济、科研、军事等方面都有广泛的应用,为最优设计提供了有力的工具。
在经营管理、工程设计、科学研究、军事指挥等方面普遍地存在着最优化问题。
例如:如何在现有人力、物力、财力条件下合理安排产品生产,以取得最高的利润;如何设计某种产品,在满足规格、性能要求的前提下,达到最低的成本;如何确定一个自动控制的某些参数,使系统的工作状态最佳;如何分配一个动力系统中各电站的负荷,在保证一定指标要求的前提下,使总耗费最小;如何安排库存储量,既能保证供应,又使储存 费用最低;如何组织货源,既能满足顾客需要,又使资金周转最快等。
对于静态的最优化 问题,当目标函数或约束条件出现未知量的非线性函数,且不便于线性化,或勉强线性化后会招致较大误差时,就可应用非线性规划的方法去处理。
具有非线性约束条件或目标函数的数学规划,是运筹学的一个重要分支。
非线性规划研究一个n 元实函数在一组等式或不等式的约束条件下的极值问题,且目标函数和约束条件至少有一个是未知量的非线性函数。
目标函数和约束条件都是线性函数的情形则属于线性规划。
本实验就是用matlab 软件来解决非线性规划问题。
(二) 基本要求掌握非线性规划的MATLAB 解法,并且解决相关的实际问题。
题一 :对边长为3米的正方形铁板,在四个角剪去相等的正方形以制成方形无盖水槽,问如何剪法使水槽的容积最大?题二: 某厂生产一种产品有甲、乙两个牌号,讨论在产销平衡的情况下如何确定各自的产量,使总利润最大. 所谓产销平衡指工厂的产量等于市场上的销量.符号说明:z(x 1,x 2)表示总利润;p 1,q 1,x 1分别表示甲的价格、成本、销量; p 2,q 2,x 2分别表示乙的价格、成本、销量; a ij ,b i ,λi ,c i (i ,j =1,2)是待定系数.题三:设有400万元资金, 要求4年内使用完, 若在一年内使用资金x 万元, 则可得效益x 万元(效益不能再使用),当年不用的资金可存入银行, 年利率为10%. 试制定出资金的使用计划, 以使4年效益之和为最大.(三) 数据结构题一:设剪去的正方形的边长为x ,则水槽的容积为:x x )23(2-;建立无约束优化模型为:min y=-x x )23(2-, 0<x<1.5题二:总利润为: z(x1,x2)=(p1-q1)x1+(p2-q2)x2若根据大量的统计数据,求出系数b1=100,a11=1,a12=0.1,b2=280,a21=0.2,a22=2,r1=30,λ1=0.015,c1=20, r2=100,λ2=0.02,c2=30,则问题转化为无约束优化问题:求甲,乙两个牌号的产量x1,x2,使总利润z 最大.为简化模型,先忽略成本,并令a12=0,a21=0,问题转化为求:z1 = ( b1 - a11x1 ) x1 + ( b2 - a22x2 ) x2的极值. 显然其解为x1 = b1/2a11 = 50, x2 = b2/2a22 = 70,我们把它作为原问题的初始值.题三:设变量i x 表示第i 年所使用的资金数,则有 4,3,2,1,04.5321.121.1331.14841.121.14401.1400..max 43213212114321=≥≤+++≤++≤+≤+++=i x x x x x x x x x x x t s x x x x z i(四) 源程序题一:编写M 文件fun0.m:function f=fun0(x)f=-(3-2*x).^2*x;主程序为wliti2.m:[x,fval]=fminbnd('fun0',0,1.5);xmax=xfmax=-fval题二:建立M-文件fun.m:function f = fun(x)y1=((100-x(1)- 0.1*x(2))-(30*exp(-0.015*x(1))+20))*x(1); y2=((280-0.2*x(1)- 2*x(2))-(100*exp(-0.02*x(2))+30))*x(2); f=-y1-y2;输入命令:x0=[50,70];x=fminunc(‘fun ’,x0),z=fun(x)题三:建立M 文件 fun44.m,定义目标函数:function f=fun44(x)f=-(sqrt(x(1))+sqrt(x(2))+sqrt(x(3))+sqrt(x(4)));建立M 文件mycon1.m 定义非线性约束:function [g,ceq]=mycon1(x)g(1)=x(1)-400;g(2)=1.1*x(1)+x(2)-440;g(3)=1.21*x(1)+1.1*x(2)+x(3)-484;g(4)=1.331*x(1)+1.21*x(2)+1.1*x(3)+x(4)-532.4;ceq=0主程序youh4.m 为:x0=[1;1;1;1];vlb=[0;0;0;0];vub=[];A=[];b=[];Aeq=[];beq=[];[x,fval]=fmincon('fun44',x0,A,b,Aeq,beq,vlb,vub,'mycon1')(五) 运行结果题一:运算结果为: xmax = 0.5000,fmax =2.0000.即剪掉的正方形的边长为0.5米时水槽的容积最大,最大容积为2立方米.题二:运行结果为:x=23.9025, 62.4977, z=6.4135e+003即甲的产量为23.9025,乙的产量为62.4977,最大利润为6413.5.题三:运行结果为:x1=86.2;x2=104.2;x3=126.2;x4=152.8;z=43.1(六) 相关知识用Matlab 解无约束优化问题一元函数无约束优化问题21),(m in x x x x f ≤≤常用格式如下:(1)x= fminbnd (fun,x1,x2)(2)x= fminbnd (fun,x1,x2 ,options)(3)[x ,fval]= fminbnd (...)(4)[x ,fval ,exitflag]= fminbnd (...)(5)[x ,fval ,exitflag ,output]= fminbnd (...)其中(3)、(4)、(5)的等式右边可选用(1)或(2)的等式右边。
用Matlab解非线性规划问题[1]
![用Matlab解非线性规划问题[1]](https://img.taocdn.com/s3/m/fd26b4630b1c59eef8c7b409.png)
用Matlab 解无约束优化问题一元函数无约束优化问题21),(min x x x x f ≤≤常用格式如下:(1)x= fminbnd (fun,x1,x2)(2)x= fminbnd (fun,x1,x2 ,options)(3)[x ,fval]= fminbnd (...)(4)[x ,fval ,exitflag]= fminbnd (...)(5)[x ,fval ,exitflag ,output]= fminbnd (...)其中(3)、(4)、(5)的等式右边可选用(1)或(2)的等式右边。
函数fminbnd 的算法基于黄金分割法和二次插值法,它要求目标函数必须是连续函数,并可能只给出局部最优解。
例1 求x e f x sin 2-=在0<x<8中的最小值与最大值主程序为wliti1.m:f='2*exp(-x).*sin(x)';fplot(f,[0,8]); %作图语句[xmin,ymin]=fminbnd (f, 0,8)f1='-2*exp(-x).*sin(x)';[xmax,ymax]=fminbnd (f1, 0,8)运行结果:xmin = 3.9270 ymin = -0.0279xmax = 0.7854 ymax = 0.6448例2 对边长为3米的正方形铁板,在四个角剪去相等的正方形以制成方形无盖水槽,问如何剪法使水槽的容积最大?先编写M 文件fun0.m 如下:function f=fun0(x)f=-(3-2*x).^2*x;主程序为wliti2.m:[x,fval]=fminbnd('fun0',0,1.5);xmax=xfmax=-fval运算结果为: xmax = 0.5000,fmax =2.0000.即剪掉的正方形的边长为0.5米时水槽的容积最大,最大容积为2立方米.2、多元函数无约束优化问题标准型为:min F(X)命令格式为:(1)x= fminunc (fun,X0 );或x=fminsearch (fun,X0 )(2)x= fminunc (fun,X0 ,options );或x=fminsearch (fun,X0 ,options )解 设剪去的正方形的边长为x ,则水槽的容积为:x x )23(2-建立无约束优化模型为:min y=-x x )23(2-, 0<x<1.5(3)[x,fval]= fminunc(...);或[x,fval]= fminsearch(...)(4)[x,fval,exitflag]= fminunc(...);或[x,fval,exitflag]= fminsearch(5)[x,fval,exitflag,output]= fminunc(...);或[x,fval,exitflag,output]= fminsearch(...)说明:•fminsearch是用单纯形法寻优. fminunc的算法见以下几点说明:[1] fminunc为无约束优化提供了大型优化和中型优化算法。
遗传算法解决非线性规划问题的Matlab程序

遗传算法解决非线性规划问题的Matlab程序首先,让我们来了解一下什么是非线性规划问题。
非线性规划问题是指目标函数或约束条件中至少有一个是非线性函数的规划问题。
与线性规划问题不同,非线性规划问题的求解往往没有通用的解析方法,需要借助数值优化算法来找到最优解或近似最优解。
遗传算法是一种基于自然选择和遗传机制的随机搜索算法。
它模拟了生物进化的过程,通过对种群中个体的选择、交叉和变异操作,逐步优化个体,从而找到问题的最优解。
在解决非线性规划问题时,遗传算法将问题的解编码为染色体,通过适应度函数来评估染色体的优劣,然后通过遗传操作不断进化种群,直到找到满意的解。
接下来,我们开始介绍如何在 Matlab 中实现遗传算法来解决非线性规划问题。
首先,我们需要定义问题的目标函数和约束条件。
假设我们要解决的非线性规划问题是:\\begin{align}&\min f(x) = x_1^2 + x_2^2 2x_1x_2 + 2x_1 4x_2 + 5\\&\text{st } x_1 + x_2 \leq 5\\&-2 \leq x_1 \leq 2\\&-3 \leq x_2 \leq 3\end{align}\在 Matlab 中,我们可以定义目标函数如下:```matlabfunction f = objective(x)f = x(1)^2 + x(2)^2 2x(1)x(2) + 2x(1) 4x(2) + 5; end```约束条件可以通过定义一个函数来判断:```matlabfunction c, ceq = constraints(x)c =;ceq =;if x(1) + x(2) > 5c = x(1) + x(2) 5;endend```然后,我们需要设置遗传算法的参数。
这些参数包括种群大小、最大迭代次数、交叉概率、变异概率等。
```matlabpopSize = 50; %种群大小maxGen = 100; %最大迭代次数pc = 08; %交叉概率pm = 01; %变异概率```接下来,我们需要对个体进行编码。
第6讲 matlab中非线性规划的应用

第6讲 非线性规划
例2
min f = x1 2x 2
1 2
2 x1
1 2
2 x2
s.t.
1.写成标准形式:
2x1+3x2 6 x1+4x2 5 x1,x2 0
min f = x1 2 x 2
1 2
2 x1
1 2
x2
2
2 x1 3 x 2 6 0 s.t. x1 4 x 2 5 0 0 x1 0 x2
3. 主程序fxx.m为: x0=[3;2.5]; VLB=[0 0];VUB=[5 10]; [x,fval,exitflag,output] =fmincon('fun',x0,[],[],[],[], VLB,VUB,'mycon2')
MATLAB(fxx(fun))
第6讲 非线性规划
4. 运算结果为: x = 4.0000 3.0000 fval =-11.0000 exitflag = 1 output = iterations: 4 funcCount: 17 stepsize: 1 algorithm: [1x44 char] firstorderopt: [] cgiterations: []
x = 0.7647 1.0588 fval = -2.0294
第6讲 非线性规划
例3
f ( x ) = e 1 (4 x1 2 x 2 4 x1 x 2 2 x 2 1)
x 2 2
s.t.
x1+x2=0 1.5+x1x2 - x1 - x2 0 -x1x2 –10 0
(完整word版)数学应用软件作业5用MATLAB求解非线性规划问题

佛山科学技术学院上 机 报 告课程名称 数学应用软件上机项目 用MATLAB 求解非线性规划问题专业班级 姓 名 学 号一。
上机目的1.了解非线性规划的基本理论知识。
2.对比Matlab 求解线性规划,学习用Matlab 求解非线性规划的问题。
二。
上机内容1、用quadprog 求解二次规划问题min f (x):2、求解优化问题:min 321)(x x x x f -=S 。
T.72220321≤++≤x x x注:取初值为(10,10,10)。
3、求表面积为常数150 m 2的体积最大的长方体体积及各边长。
注:取初值为(4,5,6)。
三.上机方法与步骤1、可用两种方法解题:方法一:Matlab程序:H=[1 -1;—1 2];c=[—2;—6];A=[1 1;-1 2;2 1];b=[2;2;3];Aeq=[];beq=[];vlb=[0;0];vub=[];[x,z]=quadprog(H,c,A,b,Aeq,beq,vlb,vub)方法二:Matlab程序如下:先建立fun.m文件,程序为:function f=fun(x);f=1/2*x(1)^2+x(2)^2—x(1)*x(2)—2^x(1)-6*x(2);再建立chushi。
m文件,程序为:x0=[1;1];A=[1 1;—1 2;2 1];b=[2;2;3];Aeq=[];beq=[];vlb=[0;0];vub=[];[x,fval]=fmincon(’fun',x0,A,b,Aeq,beq,vlb,vub)2、Matlab程序:先建立fun1.m文件,程序为:function f=fun1(x);f=-x(1)*x(2)*x(3);再建立chushi1.m文件,程序为:x0=[10;10;10];A=[1 2 2;—1 —2 -2];b=[72;0];Aeq=[];beq=[];vlb=[];vub=[];[x,fval]=fmincon(’fun1',x0,A,b,Aeq,beq,vlb,vub)3、假设长方形的长、宽、高分别为(1)x 、(2)x 、(3)x ,则长方形的体积为f ,则有max (1)(2)(3)2(1)(2)2(1)(3)3(2)(3)150.()0(1,2,3)f x x x x x x x x x s t x i i =++=⎧⎨≥=⎩四.上机结果1、结果:(1)方法一结果:x =0。
MATLAB线性规划非线性规划

解 编写M文件xxgh1.m如下: c=[-0.4 -0.28 -0.32 -0.72 -0.64 -0.6]; A=[0.01 0.01 0.01 0.03 0.03 0.03;0.02 0 0 0.05 0 0;0 0.02 0 0 0.05 0;0 0 0.03 0 0 0.08]; b=[850;700;100;900];
返 回
解答
线性规划模型的一般形式
目标函数和所有的约束条件都是设计变量 的线性函数.
min u ci xi
i 1
n
n aik xk bi , i 1, 2,..., n. s.t. k 1 x 0, i 1, 2,..., n. i
矩阵形式: min u cx Ax b s.t. vlb x vub
Aeq=[]; beq=[];
vlb=[0;0;0;0;0;0]; vub=[];
To MATLAB (xxgh1)
[x,fval]=linprog(c,A,b,Aeq,beq,vlb,vub)
例2
min z 6x1 3x2 4x3 s.t. x1 x2 x3 120 x1 30 0 x2 50 x3 20
编写M文件xxgh3.m如下: f = [13 9 10 11 12 8]; A = [0.4 1.1 1 0 0 0 0 0 0 0.5 1.2 1.3]; b = [800; 900]; Aeq=[1 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 1]; To MATLAB (xxgh3) beq=[400 600 500]; vlb = zeros(6,1); vub=[]; [x,fval] = linprog(f,A,b,Aeq,beq,vlb,vub)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
b=[-100;180];
Aeq=[];beq=[];
vlb=[40;0];vub=[100;100];
[x,fval]=fmincon('fun',x0,A,b,Aeq,beq,vlb,vub)
计算结果与问题分析讨论:
计算结果:
x =
fval =
+004
分析讨论:
由结果可知:第一季度应生产50台,第二季度应生产60台,第三季度应生产70台,可既满足合同又使总费用最低,最低费用为11280元。
目标ቤተ መጻሕፍቲ ባይዱ数:
y1
y2
y3
y
40≤x1≤100
0≤x2≤100
100≤x1+x2≤180
求解的Matlab程序代码:
先建立M-文件:
function f=fun(x);
f=14920+*x(1)*x(1)+*x(2)*x(2)+*x(1)*x(2)-64*x(1)-68*x(2);
再建立主程序:
x0=[0;0];
讨论a,b,c对生产方案的影响:
a增大或减小对生产方案完全没有影响(无论a为多少,方案都是50、60、70)。
b逐渐增大,则三个季度的生产量趋近交付总量的平均值,即同趋于60台(第一季度生产量增加,第二季度不变,第三季度减少)。
c逐渐增大,三季度的生产量分别趋近于每季度的交付量,即分别趋于40、60、80(第一季度生产量减少,第二季度不变,第三季度增加)。
y2——第二季度总费用;
y3——第三季度总费用;
y——总费用(包括生产费用和存储费)。
建模:
1、第一、二、三季度末分别交货40台、60台、80台;
2、 每季度的生产费用为(元);
3、每季度生产数量满足40≤x1≤100,0≤x2≤100,100≤x1+x2≤180;
4、要求总费用最低,这是一个目标规划模型。
现代设计方法-工程优化理论、方法与设计
姓名
学号
班级
研
问题:
某厂向用户提供发动机,合同规定,第一、二、三季度末分别交货40台、60台、80台。每季度的生产费用为(元),其中x是该季生产的台数。若交货后有剩余,可用于下季度交货,但需支付存储费,每台每季度c元。已知工厂每季度最大生产能力为100台,第一季度开始时无存货,设a=50、b=、c=4,问工厂应如何安排生产计划,才能既满足合同又使总费用最低。讨论a、b、c变化对计划的影响,并作出合理的解释。
3、第一季度开始时工厂无存货;
4、生产总量达到180台时,不在进行生产;
5、工厂生产处的发动机质量有保证,不考虑退货等因素;
6、不考虑产品运输费用是否有厂家承担等和生产无关的因素。
符号规定:
x1——第一季度生产的台数;
x2——第二季度生产的台数;
180-x1-x2——第三季度生产的台数;
y1——第一季度总费用;
问题的分析和假设:
问题分析:本题是一个有约束条件的二次规划问题。决策变量是工厂每季度生产的台数,目标函数是总费用(包括生产费用和存储费)。约束条件是生产合同,生产能力的限制。在这些条件下需要如何安排生产计划,才能既满足合同又使总费用最低。
问题假设:
1、工厂最大生产能力不会发生变化;
2、合同不会发生变更;
问题:梯度法
其中function函数为: