Function UndefineFunc147();//主函数
Begin
goal := array(1,1) ;// 目标约束
wight := array(1,0.5); //目标权重
//线性等式约束
aeq := array((1,1,1));
beq := array(1);
//上下界约束
lb := array(0,0,0);
ub := array() ;
//初始值
x0 := array(1,1,1);
//算法设定
options:=array('tolx':1.0e-6,'tolcon':1.0e-6,'tolfun':1.0e-6);
//线性不等式约束
A :=ARRAY((1,1),(4,1));
B := array(3,9);
Return prog_M('UndefineFunc147.obj',x0,goal,wight,a,b,aeq,beq,lb,ub,'UndefineFunc147.cons',options);
End;
function obj(x);//目标函数
begin
f1 :=-3*x[0]-x[1]-5*x[2]+6; //目标1
f2 :=3*x[0]+4*x[1]+5*x[2]-6; //目标2
f :=array(f1,f2);
return f;
end
function cons(x);//约束条件
begin
c := array();
c[0] := x[0]^2- x[1]; // x[0]^2<=x[1]; 不等式
ceq := array();
ceq[0] := x[0]^2-0.1; // x[0]^2=0.1; 等式约束
ceq[1] := x[1]^2-0.3; // x[1]^2=0.3; 等式约束
return array(c,ceq);
end
结果:
Prog_L Prog_Q Prog_N NonLP_Fminsearch NonLP_Fminbnd