用matlab解决二次规划求最值(在线等待您的答案)急急急急急!!!!

来源:百度知道 编辑:UC知道 时间:2024/06/24 07:09:38
p1=((35-x1)/35)*0.43 p2=((31-x2)/31)*0.57
p3=((18-x3)/18)*0.69 p4=((24-x4)/24)*0.35
p5=((26-x5)/26)*0.68
0<=x1<=25 0<=x2<=31 0<=x3<=18 0<=x4<=24 0<=x5<=26
x1+x2+x3+x4+x5=100

p(平均值)=(p1+p2+p3+p4+p5)/5

Dp=(p1-p)^2+(p2-p)^2+(p3-p)^2+(p4-p)^2+(p5-p)^2
求Dp取最小值时的x1,x2,x3,x4,x5的整数解.
谢谢,程序和得数都要。谢谢。

整数规划太难了,俺只会非整数的。

function hh
A=[];B=[];
Aeq=[1 1 1 1 1];Beq=100;
LB=[0 0 0 0 0];UB=[25 31 18 24 26];
X0=[20 20 20 20 20];
options=optimset;
options.TolCon=1e-30;
[X,FVAL,EXITFLAG]=FMINCON(@fun,X0,A,B,Aeq,Beq,LB,UB)
%0<=x1<=25 0<=x2<=31 0<=x3<=18 0<=x4<=24 0<=x5<=26
%x1+x2+x3+x4+x5=100
function Dp=fun(x)
x1=x(1);x2=x(2);x3=x(3);x4=x(4);x5=x(5);
p1=((35-x1)/35)*0.43;
p2=((31-x2)/31)*0.57 ;
p3=((18-x3)/18)*0.69 ;
p4=((24-x4)/24)*0.35 ;
p5=((26-x5)/26)*0.68 ;
p=(p1+p2+p3+p4+p5)/5 ;
Dp=(p1-p)^2+(p2-p)^2+(p3-p)^2+(p4-p)^2+(p5-p)^2 ;

结果:
X =

23.4975 24.9631 14.6778 16.1579 20.7037

FVAL =

7.5221e-004

EXITFLAG =

5