MATLAB非线性规划问题Word文档格式.docx
- 文档编号:22862504
- 上传时间:2023-02-05
- 格式:DOCX
- 页数:10
- 大小:20.91KB
MATLAB非线性规划问题Word文档格式.docx
《MATLAB非线性规划问题Word文档格式.docx》由会员分享,可在线阅读,更多相关《MATLAB非线性规划问题Word文档格式.docx(10页珍藏版)》请在冰豆网上搜索。
调用格式:
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=
-4.00000.6667
fval=
-17.3333
exitflag=
1
例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*
-0.17210.1896
2.7239e-016
1
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求mine-x+x2,搜索区间为(0,1)
[x,fval]=fminbnd('
exp(-x)+x.^2'
0,1)
0.3517
0.8272
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,residual,exitflag,output,lambda,jacobian]=lsqnonlin(…)
x返回解向量;
resnorm返回x处残差的平方范数值:
sum(fun(x).^2);
residual返回x处的残差值fun(x);
lambda返回包含x处拉格朗日乘子的结构参数;
jacobian返回解x处的fun函数的雅可比矩阵.
lsqnonlin默认时选择大型优化算法.Lsqnonlin通过将options.LargeScale设置为’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])
3.98963.9912
reshorm=5.0037e-009
0.25780.2578
resnorm=
124.3622
二.有约束非线性规划问题:
数学模型:
minF(x)
s.tGi(x)≤0i=1,…,m
Gj(x)=0j=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文件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文件fun1.m
functionf=fun1(x)。
f=x
(1)^2+x
(2)^2+8。
和M文件fun2.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,1),[],[],[],[],zeros(2,1),[],...
'
fun2'
options)
就可以求得当时,最小值.
例6:
求解:
min100(x2-x12)2+(1-x1)2
s.tx1≤2。
x2≤2
首先建立ff6.m文件:
functionf=ff6(x)
f=100*(x
(2)-x
(2)^2)^2+(1-x
(1))^2。
然后在工作空间键入程序:
x0=[1.1,1.1]。
A=[10。
01]。
b=[2。
2]。
[x,fval]=fmincon(@ff6,x0,A,b)
1.00001.0000
3.1936e-011
例8求解:
minf=ex1(6x12+3x22+2x1x2+4x2+1)
s.tx1x2-x1-x2+1≤0
-2x1x2-5≤0
首先建立目标函数文件ff8.m文件:
functionf=ff8(x)
f=exp(x
(1))*(6*x
(1)^2+3*x
(2)^2+2*x
(1)*x
(2)+4*x
(2)+1)。
再建立非线性的约束条件文件:
ff8g.m
function[c,ceq]=ff8g(x)
c
(1)=x
(1)*x
(2)-x
(1)-x
(2)+1;
c
(2)=-2*x
(1)*x
(2)-5;
ceq=[]。
nonlcon=@ff8g
[x,fval]=fmincon(@ff8,x0,[],[],[],[],[],[],nonlcon)
-2.50001.0000
3.3244
1
当有等式约束时,要放在矩阵g的位置,如上例中加等式约束:
x
(1)+2*x
(1)=0
首先建立fun1.m文件:
function[c,g]=ff8g1(x)
c
(1)=x
(1)*x
(2)-x
(1)-x
(2)+1;
g
(1)=x
(1)+2*x
(2)。
x0=[-1,1]。
nonlcon=ff8g1。
[x,fval,exitflag]=fmincon(@ff8,x0,[],[],[],[],[],[],nonlcon)
-2.23611.1180
3.6576
1
版权申明
本文部分内容,包括文字、图片、以及设计等在网上搜集整理。
版权为潘宏亮个人所有
Thisarticleincludessomeparts,includingtext,pictures,anddesign.CopyrightisPanHongliang'
spersonalownership.
用户可将本文的内容或服务用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯本网站及相关权利人的合法权利。
除此以外,将本文任何内容或服务用于其他用途时,须征得本人及相关权利人的书面许可,并支付报酬。
Usersmayusethecontentsorservicesofthisarticleforpersonalstudy,researchorappreciation,andothernon-commercialornon-profitpurposes,butatthesametime,theyshallabidebytheprovisionsofcopyrightlawandotherrelevantlaws,andshallnotinfringeuponthelegitimaterightsofthiswebsiteanditsrelevantobligees.Inaddition,whenanycontentorserviceofthisarticleisusedforotherpurposes,writtenpermissionandremunerationshallbeobtainedfromthepersonconcernedandtherelevantobligee.
转载或引用本文内容必须是以新闻性或资料性公共免费信息为使用目的的合理、善意引用,不得对本文内容原意进行曲解、修改,并自负版权等法律责任。
Reproductionorquotationofthecontentofthisarticlemustbereasonableandgood-faithcitationfortheuseofnewsorinformativepublicfreeinformation.Itshallnotmisinterpretormodifytheoriginalintentionofthecontentofthisarticle,andshallbearlegalliabilitysuchascopyright.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MATLAB 非线性 规划 问题