用matlab求解题主的多目标优化问题,可以这样来考虑:
1、创建目标函数,其内容
w1 =0.4w2=1-w1
y =w1*0.78539*(x(1)^2-x(2)^2)+w2*x(1)^2
2、创建约束条件函数,其内容
c(1)=(9224400*x(1)/(x(1)^4-x(2)^4))-45
c(2)=(13050819/(x(1)^4-x(2)^4))-1
c(3)=216379-(x(1)^4-x(2)^4)/x(1)
c(4)=-x(1)+x(2)
ceq = []
3、初设x0的初值,即 x0 =[80,20]
4、设定上下限值漏御,即lb=[0,0]ub=[170,100]
5、使用fmincon最小值最优化函数态漏,求出x(1)、x(2)的值。帆搜烂即
[x,fval] = fmincon(@(x) fmincon_fun(x),x0,[],[],[],[],lb,ub,@(x) fmincon_con(x))
6、验证约束条件,即
disp('x2-x1<0')
disp(x(2)-x(1))
运行代码后得到如下结果。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)