好文档 - 专业文书写作范文服务资料分享网站

intersectab返回向量ab的公共部分

天下 分享 时间: 加入收藏 我要投稿 点赞

x =

0.6110 -0.3055

注:比较两种方法,fminunc函数的效率高于fminsearch函数,所以在无约束最优化问题求解时,如果安装了最优化工具箱则建议使用fminunc函数。

(2)有约束最优化问题求解

1线性规划问题的计算机求解 ○

[x,fopt,flag,c]=linprog(f,A,B,Aeq,Beq,xm,xM,x0,options) 【例1.76】是求解下面的线性规划问题

min(?2x?x?4x?x?x)

12345?2x?x?4x?2x?20?s.t.?3x?4x?x?x?2x?31?x,x?0,x?3,x?1,x?2 ?23451234512345解 由于约束条件中没有等式约束。故可以定义Aeq,Beq为空矩阵,且对x的上界xM也没有限制,故同样将其写为空矩阵,可以给出如下命令,即可得出结果:

>>f=[-2,-1,4,-1,1]';A=[0 2 1 4 2;3 -4 1 -1 2];B=[20;31];

>>Ae=[];Be=[];xm=[0,0,3,1,2]';xM=[];

>>ff=optimset;ff.LargeScale='off';ff.TolX=1e-15;ff.TolFun=1e-20;ff.Display='iter'; >>[x,f_opt,key,c]=linprog(f,A,B,Ae,Be,xm,xM,[],ff) Optimization terminated. x =

14.3333 4.5000 3.0000 1.0000 2.0000

f_opt =

-20.1667

key =

1 c =

iterations: 5

constrviolation: 1.7764e-15

algorithm: 'medium-scale: active-set' cgiterations: []

message: 'Optimization terminated.' firstorderopt: 7.1054e-15

2二次型规划问题的求解 ○

>>[x,fopt,flag,c]=quadprog(H,f,A,B,Aeq,Beq,xm,xM,x0,options) H为二次规划目标函数中的H矩阵 【例1.77】试求解下面的二次规划问题

min((x?1)^2?(x?2)^2?(x?3)^2?(x?4)^2)1234?x?x?x?x?5?s.t.?3x?3x?2x?x?10?x,x,x,x?10?123412341234

解 首先应该讲原问题写成二次型规划的模式,展开目标函数得:

f(x)=x1+x2+x3+x4-2x1-4x2-6x3-8x4+30=?xTHx+fTx+30

其中,H=diag([2,2,2,2]),fT=[-2 -4 -6 -8],xT=(x1,x2,x3,x4),而目标函数中的常数30对最优化结果没有影响,可略去.

>>f=[-2,-4,-6,-8];H=diag([2,2,2,2]);

>>opt=optimset;opt.LargeScale='off';

>>A=[1,1,1,1;3,3,2,1];B=[5;10];Aeq=[];Beq=[];xm=[0;0;0;0]; xM=[];x0=[];

>>[x,f_opt]=quadprog(H,f,A,B,Aeq,Beq,xm,xM,x0,opt) Optimization terminated. x =

0.0000 0.6667 1.6667 2.6667

f_opt =

-23.6667

从而,在约束条件下,当x=[0,0.6667,1.6667,2.6667]T时,所求函数取得最小值,且最小值为:-23.6667+30=6.3333

3一般有约束最优化问题的求解 ○

>>[x,fopt,flag,c]=fmincon(F,x0,A,B,Aeq,Beq,xm,xM,CF,options) 【例1.78】求解下面的有约束最优化问题

min(x^2?x^2?xx?2x?5x)121212?(x?1)^2?x?0s.t.???2x?3x?6?01212

解 首先建立非线性约束函数文件: function [c,ceq]=mycon(x) c=(x(1)-1)^2-x(2); ceq=[ ]; %无等式约束

然后,在命令窗口中输入:

>>inline('(x(1)^2+x(2)^2-x(1)*x(2)-2*x(1)-5*x(2)','x'); >>F=inline('(x(1)^2+x(2)^2-x(1)*x(2)-2*x(1)-5*x(2)','x'); >>x0=[0,1];A=[-2,3];B=6;Aeq=[ ];Beq=[ ];xm=[ ];xM=[ ]; >>ff=optimset;ff.LargeScale=='off';ff.Display='iter';ff.TolFun=1e-30;ff.TolX=1e-15;

>>[x,f_opt,flag,c]=fmincon(F,x0,A,B,Aeq,Beq,xm,xM,'mycon',ff)

1.求解下面的线性规划问题:

min(?3x?4x?2x?5x)1234?4x?x?2x?x??2??x?x?x?2x?14s.t.??2x?3x?x?x??2?x,x,x??1,x无约束?1234123412341234

f=[-3,4,-2,5]';A=[1 1 -1 2;2 -3 -1 -1];B=[14;-2]; Ae=[4 -1 2 -1];Be=[-2];xm=[-1,-1,-1,-Inf]';xM=[];

ff=optimset;ff.LargeScale='off';ff.TolX=1e-15;ff.TolFun=1e-20;ff.Display='iter';ff.TolCon=1e-20;

[x,f_opt,key,c]=linprog(f,A,B,Ae,Be,xm,xM,[],ff)

Exiting: the solution is unbounded and at infinity; the constraints are not restrictive enough. x =

1.0e+15 *

-0.0000 7.0711 -0.0000 -7.0711

f_opt =

-7.0711e+15

key =

intersectab返回向量ab的公共部分

x=0.6110-0.3055注:比较两种方法,fminunc函数的效率高于fminsearch函数,所以在无约束最优化问题求解时,如果安装了最优化工具箱则建议使用fminunc函数。(2)有约束最优化问题求解1线性规划问题的计算机求解○[x,fopt,flag,c]=l
推荐度:
点击下载文档文档为doc格式
8pqmh5nhv7553973044s2xc786b4a900ysp
领取福利

微信扫码领取福利

微信扫码分享