实例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]
x1+x2≤5000
x 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为给定的搜索的初始点。options指定优化参数。
返回的x为最优解向量;fval为x处的目标函数值;exitflag描述函数的输出条件;output返回优化信息;grad返回目标函数在x处的梯度。hessian返回在x处目标函数的hessian矩阵信息。
例1 : 求
程序:通过绘图确定一个初始点:
x,y]=meshgrid(-10:.5:10);
z= 8*x-4*y +x.^2+3*y.^2;
surf(x,y,z)
选初始点:x0=(0,0)
x0=[0,0];
x,fval,exitflag]=fminunc(‘8*x(1)-4*x(2) +x(1)^2+3*x(2)^2‘,x0)
结果:x =
fval =
exitflag =
例2:程序:
取初始点:x0=(1,1)
x0=[1,1];
x,fval,exitflag]=fminunc(‘4*x(1)^2+5*x(1)*x(2)+2*x(2)^2‘,x0)
结果: x =
1.0e-007 *
fval =
2.7239e-016
exitflag =
2. minsearch函数。
调用格式: x=fminsearch(fun,x0)
x=fminsearch(fun,x0,options)
x=fminsearch(fun,x0,options,p1,p2)
[x,fval]=fminsearch(…)
[x,fval, exitflag]=fminsearch(…)
[x,fval, exitflag,output]=fminsearch(…)
x,fval, exitflag,output,grad]=fminsearch(…)
x,fval, exitflag,output,grad,hessian]=fminsearch(…)
说明:参数及返回变量同上一函数。对求解二次以上的问题,fminsearch函数比fminunc函数有效。
3. fminbnd函数。
调用格式: [x,fval]=fminbnd(fun,x1,x2,options)
x=fminbnd(…)
例5 求min e-x+x2,搜索区间为(0,1)
x,fval]=fminbnd('exp(-x)+x.^2',0,1)x =
fval =
4. 多元非线性最小二乘问题:
非线线性最小二乘问题的数学模型为:
其中l为常数。
调用格式: x=lsqnonlin(fun,x0)
x=lsqnonlin(fun,x0,lb,ub)
x=lsqnonlin(fun,x0,options)
x=lsqnonlin(fun,x0,options,p1,p2)
[x,resnorm]=lsqnonlin(…)
[x,resnorm, residual,exitflag]=lsqnonlin(…)
[x,resnorm, residual , exitflag,output]=lsqnonlin(…)
x,resnorm, residual,exitflag, output,lambda]=lsqnonlin(…)
x,resnorm, r esidual,exitflag, output,lambda,jacobian]=lsqnonlin(…)
说明:x返回解向量;resnorm返回x处残差的平方范数值:sum(fun(x).
^2);residual返回x处的残差值fun(x);lambda返回包含x处拉格朗日乘子的结构参数;jacobian返回解x处的fun函数的雅可比矩阵。
lsqnonlin默认时选择大型优化算法。lsqnonlin通过将设置为’off’来作中型优化算法。其采用一维搜索法。
例4.求 minf=4(x2-x1)2+(x2-4)2 ,选择初始点x0(1,1)
程序:f ='4*(x(2)-x(1))^2+(x(2)-4)^2'
x,reshorm]=lsqnonlin(f,[1,1])
结果: x =
reshorm =5.0037e-009
结果 : x =
resnorm =
数学模型: min f(x)
gi (x) ≤0 i=1,…,m
gj (x) =0 j=m+1,…,n
xl≤x≤xu
其中:f(x)为多元实值函数,g(x)为向量值函数,在有约束非线性规划问题中,通常要将该问题转换为更简单的子问题,这些子问题可以求并作为迭代过程的基础。其基于k-t方程解的方法。
它的k-t方程可表达为:
方程第一行描述了目标函数和约束条件在解处梯度的取消。由于梯度取消,需要用拉格朗日乘子λi来平衡目标函数与约束梯度间大小的差异。
调用格式: x=fmincon(f,x0,a,b)
x=fmincon(f,x0,a,b,aeq,beq)
x=fmincon(f,x0,a,b,aeq,beq,lb,ub)
x=fmincon(f,x0,a,b,aeq,beq,lb,ub,nonlcon)
x=fmincon(f,x0,a,b,aeq,beq,lb,ub,nonlcon,options)
[x,fval]=fmincon(…)
[x, fval, exitflag]=fmincon(…)
[x, fval, exitflag, output]=fmincon(…)
[x, fval, exitflag, output, lambda]=fmincon(…)
说明:x=fmincon(f,x0,a,b)返回值x为最优解向量。其中:x0为初始点。a,b为不等式约束的系数矩阵和右端列向量。
x=fmincon(f,x0,a,b,aeq,beq) 作有等式约束的问题。若没有不等式约束,则令a=[ b=[
x=fmincon(f, x0,a,b,aeq,beq,lb,ub, nonlcon ,options) 中lb ,ub为变量 x的下界和上界;nonlcon=@fun,由m文件给定非线性不等式约束c (x) ≤0和等式约束g(x)=0;options为指定优化参数进行最小化。
matlab中非线性规划的数学模型写成以下形式。
其中是标量函数,是相应维数的矩阵和向量,是非线性向量函数。
matlab中的命令是。
x=fmincon(fun,x0,a,b,aeq,beq,lb,ub,nonlcon,options)
它的返回值是向量,其中fun是用m文件定义的函数;x0是的初始值;a,b,aeq,beq定义了线性约束,如果没有等式约束,则a=b=aeq=beq=lb和ub是变量的下界和上界,如果上界和下界没有约束,则lb=ub=如果无下界,则lb=-inf,如果无上界,则ub=inf;nonlcon是用m文件定义的非线性向量函数;options定义了优化参数,可以使用matlab缺省的参数设置。
例2 求下列非线性规划问题。
)编写m文件。
function f=fun1(x);
f=x(1)^2+x(2)^2+8;
和m文件。function [g,h]=fun2(x);
g=-x(1)^2+x(2);
h=-x(1)-x(2)^2+2; %等式约束。
)在matlab的命令窗口依次输入。
options=optimset;
x,y]=fmincon('fun1',rand(2,1zeros(2,1),[
fun2', options)
第6章非线性规划
前面几章,我们论述了线性规划及其扩展问题,这些问题的约束条件和目标函数都是关于决策变量的一次函数。虽然大量的实际问题可以简化为线性规划及其扩展问题来求解,但是还有相当多的问题很难用线性函数加以描述。如果目标函数或约束条件中包含有非线性函数,就称这样的规划问题为非线性规划问题。由于人们对实际问题解的精...
第一章非线性规划理论 1
第一节非线性优化规划模型及其解的概念,第二节凸函数与凸规划,第三节下降迭代算法。第四节一维搜索方法。第一节非线性优化规划模型及其解的概念。线性规划的目标函数和约束条件都是其自变量的线性函数,如果目标函数或约束条件中含有自变量的非线性函数,则这样的规划问题就是非线性规划。有些实际问题可以表示成线性规划...
第一章非线性规划理论 2
第五节无约束非线性规划常用解法。第六节约束非线性规划的最优性条件。第七节约束非线性规划的常用解法。第五节无约束非线性规划常用解法。无约束极值问题可以表述为。在求解上述问题时常用迭代法,迭代法大体上可以分为两类 一类称为解析法,它会用到函数的一阶或二阶导数 另一类称为直接法,它主要在迭代过程中使用函数...
高考题分类线性规划
线性规划。1.安徽11 若满足约束条件 则的取值范围为。解析 的取值范围为。约束条件对应边际及内的区域 则。2.北京2 设不等式组,表示平面区域为d,在区域d内随机取一个点,则此点到坐标原点的距离大于2的概率是。a b c d 解析 题目中表示的区域如图正方形所示,而动点d可以存在的位置为正方形面积...
第4章线性规划初步
在日常生活中我们经常会遇到这样的问题 如何合理安排有限的人力 物力 财力等资源,使得这些资源的效能能够充分地发挥,以获取最佳的经济效益。线性规划就是辅助人们寻求解决这些问题的一种数学方法。在本章的学习中,我们将把一些简单的实际问题归结为线性规划的问题,通过学习解决这些问题的思想和方法,对线性规划的建...