
fun1 = @(x) x(1)^4-10x(1)^2+x(1)x(2)+x(2)^4-x(1)^2x(2)^2; %min f1(x1,x2)
fun2 = @(x) x(2)^4-x(1)^2x(2)^2+x(1)^4+x(1)x(2); %min f2(x1,x2)
fun1and2 = @(x) [fun1(x) fun2(x)];
lb = [-5 -5]; ub = [5 5];
options = gaoptimset('PopInitRange',[lb;ub]);
[x,fval,exitflag] = gamultiobj(fun1and2,2,[],[],[],[],lb,ub,options);
[x(:,1) fval(:,1) x(:,2) fval(:,2)]
运行上述程序,我们可以得到,x1、x2、f1、f2的值
x1、 x2、 f1、 f2
-070497 -52198 070581 -024999
-2672 -38333 19765 3306
-2672 -38333 19765 3306
-24917 -37682 18677 24405
-23171 -3548 19263 18207
-26 -38206 19629 29391
-070497 -52198 070581 -024999
-17604 -24862 090859 61268
-23679 -36543 18192 19526
-21375 -33048 17817 12639
-19846 -29335 18473 10051
从x1、x2、f1、f2的数值,不难发现
x1=-2672, x2=-38333 为X1、X2的最优解组合,其值分别为f1=19765,f2=3306
[x,fval,attainfactor] =fgoalattain(fun,x0,goal,weight,A,b,Aeq,beq,lb,ub,nonlcon)
x:最优解
attainfactor:超出或未到 目标 的 量
fun:目标 函数,由于 是多目标函数,所以这是一个 向量
x0,自变量的 初始值
goal:目标,是个向量
weight:各个 目标 的权重
下面三个同线性优化一样
Ax<=b
Aeqx=beq
lb<x<ub
nonlcon与非线性约束函数fmincon中 一样!
我是菜鸟<:sad:>,我觉得是不是应该改成下面的:function [f,ceq] = mymulti1(x)f(1) = x(1)^4 - 10x(1)^2+x(1)x(2) + x(2)^4 -(x(1)^2)(x(2)^2);f(2) = x(2)^4 - (x(1)^2)(x(2)^2) + x(1)^4 + x(1)x(2);ceq=[];
[x,fval,attainfactor] =fgoalattain(fun,x0,goal,weight,A,b,Aeq,beq,lb,ub,nonlcon)
x:最优解
fval:每个目标函数最优值
attainfactor:超出或未到 目标 的 量
fun:目标 函数,由于 是多目标函数,所以这是一个 向量
x0,自变量的 初始值
goal:目标,是个向量
weight:各个 目标 的权重
下面三个同线性优化一样
Ax<=b
Aeqx=beq
lb<x<ub
nonlcon与非线性约束函数fmincon中 一样!
我只想知道X1、X2的最优解组合?怎么评价?
答:fun1 = @(x) x(1)^4-10x(1)^2+x(1)x(2)+x(2)^4-x(1)^2x(2)^2; %min f1(x1,x2) fun2 = @(x) x(2)^4-x(1)^2x(2)^2+x(1)^4+x(1)x(2); %min f2(x1,x2) fun1and2 = @(x) [fun1(x) fun2(x)]; lb = [-5 -5]; ub = [5 5];
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)