实例matlab-非线性规划-作业

y2——第二季度总费用;
y3——第三季度总费用;
y——总费用(包括生产费用和存储费)。
建模:
1、第一、二、三季度末分别交货40台、60台、80台;
2、每季度的生产费用为(元);
3、每季度生产数量满足40≤x1≤100,0≤x2≤100,100≤x1+x2≤180;
4、要求总费用最低,这是一个目标规划模型。
50.0000
60.0001
fval =
1.1280e+004
分析讨论:
由结果可知:第一季度应生产50台,第二季度应生产60台,第三季度应生产70台,可既满足合同又使总费用最低,最低费用为11280元。
讨论a,b,c对生产ຫໍສະໝຸດ 案的影响:a增大或减小对生产方案完全没有影响(无论a为多少,方案都是50、60、70)。
实例matlab-非线性规划-作业
现代设计方法-工程优化理论、方法与设计
姓名
学号
班级

问题:
某厂向用户提供发动机,合同规定,第一、二、三季度末分别交货40台、60台、80台。每季度的生产费用为(元),其中x是该季生产的台数。若交货后有剩余,可用于下季度交货,但需支付存储费,每台每季度c元。已知工厂每季度最大生产能力为100台,第一季度开始时无存货,设a=50、b=0.2、c=4,问工厂应如何安排生产计划,才能既满足合同又使总费用最低。讨论a、b、c变化对计划的影响,并作出合理的解释。
3、第一季度开始时工厂无存货;
4、生产总量达到180台时,不在进行生产;
5、工厂生产处的发动机质量有保证,不考虑退货等因素;
6、不考虑产品运输费用是否有厂家承担等和生产无关的因素。
符号规定:
x1——第一季度生产的台数;
x2——第二季度生产的台数;
180-x1-x2——第三季度生产的台数;
y1——第一季度总费用;
目标函数:
y1
y2
y3
y
40≤x1≤100
0≤x2≤100
100≤x1+x2≤180
求解的Matlab程序代码:
先建立M-文件fun.m:
function f=fun(x);
f=14920+0.4*x(1)*x(1)+0.4*x(2)*x(2)+0.4*x(1)*x(2)-64*x(1)-68*x(2);
b逐渐增大,则三个季度的生产量趋近交付总量的平均值,即同趋于60台(第一季度生产量增加,第二季度不变,第三季度减少)。
c逐渐增大,三季度的生产量分别趋近于每季度的交付量,即分别趋于40、60、80(第一季度生产量减少,第二季度不变,第三季度增加)。
问题:梯度法
其中function函数为:
再建立主程序xx.m:
x0=[0;0];
A=[-1 -1;1 1];
b=[-100;180];
Aeq=[];beq=[];
vlb=[40;0];vub=[100;100];
[x,fval]=fmincon('fun',x0,A,b,Aeq,beq,vlb,vub)
计算结果与问题分析讨论:
计算结果:
x =
问题的分析和假设:
问题分析:本题是一个有约束条件的二次规划问题。决策变量是工厂每季度生产的台数,目标函数是总费用(包括生产费用和存储费)。约束条件是生产合同,生产能力的限制。在这些条件下需要如何安排生产计划,才能既满足合同又使总费用最低。
问题假设:
1、工厂最大生产能力不会发生变化;
2、合同不会发生变更;
合集下载

matlab解决非线性规划问题(凸优化问题)

matlab解决非线性规划问题(凸优化问题)

matlab解决⾮线性规划问题(凸优化问题)当⽬标函数含有⾮线性函数或者含有⾮线性约束的时候该规划问题变为⾮线性规划问题,⾮线性规划问题的最优解不⼀定在定义域的边界,可能在定义域内部,这点与线性规划不同;例如:编写⽬标函数,定义放在⼀个m⽂件中;编写⾮线性约束条件函数矩阵,放在另⼀个m⽂件中;function f = optf(x);f = sum(x.^2)+8;function [g, h] = limf(x);g = [-x(1)^2+x(2)-x(3)^2x(1)+x(2)^2+x(3)^3-20]; %⾮线性不等式约束h = [-x(1)-x(2)^2+2x(2)+2*x(3)^2-3]; %⾮线性等式约束options = optimset('largescale','off');[x y] = fmincon('optf',rand(3,1),[],[],[],[],zeros(3,1),[],...'limf',options)输出为:最速下降法(求最⼩值):代码如下:function [f df] = detaf(x);f = x(1)^2+25*x(2)^2;df = [2*x(1)50*x(2)];clc,clear;x = [2;2];[f0 g] = detaf(x);while norm(g)>1e-6 %收敛条件为⼀阶导数趋近于0p = -g/norm(g);t = 1.0; %设置初始步长为1个单位f = detaf(x+t*p);while f>f0t = t/2;f = detaf(x+t*p);end %这⼀步很重要,为了保证最后收敛,保持f序列为⼀个单调递减的序列,否则很有可能在极值点两端来回震荡,最后⽆法收敛到最优值。

x = x+t*p;[f0,g] = detaf(x);endx,f0所得到的最优值为近似解。

用Matlab解非线性规划问题[1]

用Matlab解非线性规划问题[1]

用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求解非线性规划
3. 运算结果为: x = -1.2250 1.2250 fval = 1.8951
例4
min f X 2x1 x2
s.t. g1X 25 x12 x22 0
g2 X 7 x12 x22 0
0 x1 5, 0 x2 10
1.先建立M-文件fun.m定义目标函数:
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
用MATLAB求解非线性规划
1、二次规划
标准型为:
Min Z= 1 XTHX+cTX
2
s.t. AX<=b Aeq X beq
VLB≤X≤VUB
用MATLAB软件求解,其输入格式如下:
1. x=quadprog(H,C,A,b);
2. x=quadprog(H,C,A,b,Aeq,beq); 3. x=quadprog(H,C,A,b,Aeq,beq,VLB,VUB); 4. x=quadprog(H,C,A,b, Aeq,beq ,VLB,VUB,X0); 5. x=quadprog(H,C,A,b, Aeq,beq ,VLB,VUB,X0,options); 6. [x,fval]=quaprog(...); 7. [x,fval,exitflag]=quaprog(...); 8. [x,fval,exitflag,output]=quaprog(...);

MATLAB优化工具箱--线性规划-非线性规划

MATLAB优化工具箱--线性规划-非线性规划
数学实验
linprog输入参数说明: f, A, b, Aeq, beq lb,ub 边界设置 说明: 如果x(i)无边界,则 lb(i) = -inf, ub(i) = inf
6
linprog 输出参数说明: x 决策变量取值 fval 目标函数最优值
exitflag > 0 成功找到最优解 0 达到最大迭代次数也没有找到最优解 < 0 该线性规划问题不可行或者linprog计
10
fmincon函数求解形如下面的有约束非线性规 划模型
一般形式:
min f ( X ) s.t. AX b
Aeq X beq l X u c(X ) 0 ceq ( X ) 0
Matlab求解有约束非线性最小化 1.约束中可以有等式约束 2.可以含线性、非线性约束均可
数学实验
输入参数语法:
例子:某农场种植两种作物A、B,需要甲、乙两种化肥。种植 每亩作物A和作物B分别需用的化肥数,可得利润及农场现有化
肥数量如下表所示:
问在现有条件下,如何安排种植,才能使利润最大?
作物
每亩所需化肥 (百公斤)
现有化肥
AB (百公斤)
化肥

23
100) 6 4
数学实验
例题建模
[x,fval,exitflag,output,lambda]=fmincon(fun,x0,...)
数学实验
输入参数的几点说明
模型中如果没有A,b,Aeq,beq,lb,ub的限制,则以空矩阵[ ]作为 参数传入; nonlcon:如果包含非线性等式或不等式约束,则将这些函数
编写为一个Matlab函数, nonlcon就是定义这些函数的程序文件名;
3

第6讲 matlab中非线性规划的应用

第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

Matlab非线性规划

Matlab非线性规划

Matlab⾮线性规划⾮线性规划在matlab⾮线性规划数学模型可以写成⼀下形式:minf(x)\\ s.t.\begin{cases} Ax \le B \\ Aeq·x = Beq\\ C(x) \le 0\\ Ceq(x) = 0 \end{cases}f(x)为⽬标函数,A,B,Aeq,Beq为线性约束对应的矩阵和向量,C(x),Ceq(x)为⾮线性约束。

Matlab求解命令为:X = fmincon(fun, x0, A, B, Aeq, Beq, LB, UB, NONLCON, OPTIONS) fun为⽬标函数,x0为初值,A,B,Aeq,Beq为线性约束对应的矩阵和向量,LB,UB分别为x的下限和上限,NONLCON为⾮线性约束(需要写⾃定义函数),OPTIONS为优化参数。

【例】求下列⾮线性规划问题minf(x) = x^2_1+x^2_2+8\\ s.t.\begin{cases} x_1^2-x_2 \ge 0\\ -x_1-x_2^2+2=0\\ x_1,x_2 \ge 0 \end{cases}编写函数⽂件:fun1.m,fun2.mfunction f = fun1(x)f = x(1)^2 + x(2)^2 + 8;endfunction [g,h] = fun2(x)g = -x(1)^2 + x(2);%g代表不等式约束,即代表约束条件-x(1)^2 + x(2) <= 0。

matlab默认g<=0,所以题⽬中的条件被改成了相反数。

%如果有多个不等式约束,写成g(1) = 关于x的函数; g(2) = 关于x的函数;······h = -x(1) - x(2)^2 + 2;%h代表等式约束,即代表约束条件 -x(1) - x(2)^2 + 2 = 0。

%如果有多个等式约束,写成h(1) = 关于x的函数; h(2) = 关于x的函数;······end注:在写fun2时,可以把线性和⾮线性约束的等式和不等式约束都按照这种格式写到这个函数⾥⾯,这样的话fun2就包含了所有约束条件,在后⾯运⾏fmincon()时不需要再写A,B,Aeq,Beq,直接⽤[]略过。

(完整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)

MATLAB非线性规划问题

一.非线性规划课题实例1 表面积为36平方米的最大长方体体积。

建立数学模型:设x、y、z分别为长方体的三个棱长,f为长方体体积。

max f = x y (36-2 x y)/2 (x+y)实例2 投资决策问题某公司准备用5000万元用于A、B两个项目的投资,设x1、x2分别表示配给项目A、B的投资。

预计项目A、B的年收益分别为20%和16%。

同时,投资后总的风险损失将随着总投资和单位投资的增加而增加,已知总的风险损失为2x12+x22+(x1+x2)2.问应如何分配资金,才能使期望的收益最大,同时使风险损失为最小。

建立数学模型:max f=20x1+16x2-λ[2x12+x22+(x1+x2)2]s.t x1+x2≤5000x 1≥0,x2≥0目标函数中的λ≥0是权重系数。

由以上实例去掉实际背景,其目标函数与约束条件至少有一处是非线性的,称其为非线性问题。

非线性规划问题可分为无约束问题和有约束问题。

实例1为无约束问题,实例2为有约束问题。

二.无约束非线性规划问题:求解无约束最优化问题的方法主要有两类:直接搜索法(Search method)和梯度法(Gradient method),单变量用fminbnd,fminsearch,fminunc;多变量用fminsearch,fminnuc 1.fminunc函数调用格式:x=fminunc(fun,x0)x=fminunc(fun,x0,options)x=fminunc(fun,x0,options,P1,P2)[x,fval]=fminunc(…)[x,fval, exitflag]=fminunc(…)[x,fval, exitflag,output]=fminunc(…)[x,fval, exitflag,output,grad]=fminunc(…)[x,fval, exitflag,output,grad,hessian]=fminunc(…)说明:fun为需最小化的目标函数,x0为给定的搜索的初始点。

MATLAB非线性规划问题样本

一.非线性规划课题实例1 表面积为36平方米的最大长方体体积。

建立数学模型:设x、 y、 z分别为长方体的三个棱长, f为长方体体积。

max f = x y (36-2 x y)/2 (x+y)实例2 投资决策问题某公司准备用5000万元用于A、 B两个项目的投资, 设x1、 x2分别表示配给项目A、 B的投资。

预计项目A、 B的年收益分别为20%和16%。

同时, 投资后总的风险损失将随着总投资和单位投资的增加而增加, 已知总的风险损失为2x12+x22+(x1+x2)2.问应如何分配资金, 才能使期望的收益最大, 同时使风险损失为最小。

建立数学模型:max f=20x1+16x2-λ[2x12+x22+(x1+x2)2]s.t x1+x2≤5000x 1≥0,x2≥0目标函数中的λ≥0是权重系数。

由以上实例去掉实际背景, 其目标函数与约束条件至少有一处是非线性的, 称其为非线性问题。

非线性规划问题可分为无约束问题和有约束问题。

实例1为无约束问题, 实例2为有约束问题。

二.无约束非线性规划问题:求解无约束最优化问题的方法主要有两类: 直接搜索法(Search method)和梯度法(Gradient method), 单变量用fminbnd,fminsearch,fminunc;多变量用fminsearch,fminnuc1.fminunc函数调用格式: x=fminunc(fun,x0)x=fminunc(fun,x0,options)x=fminunc(fun,x0,options,P1,P2)[x,fval]=fminunc(…)[x,fval, exitflag]=fminunc(…) [x,fval, exitflag,output]=fminunc(…)[x,fval, exitflag,output,grad]=fminunc(…)[x,fval, exitflag,output,grad,hessian]=fminunc(…)说明: fun 为需最小化的目标函数, x0为给定的搜索的初始点。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档