多约束拓扑优化MATLAB,matlab多目标优化问题,fgoalattain函数,将取值范围放的非常大,还出问题。...

约束条件:%%条件中有反正切函数和二次开方,会与这个有关系吗?

function [g,ceq]=YSTJ3(x)

g(1)=x(1)+x(2)-x(3)+100;

g(2)=200-((3^(0.5))/2)*x(5)-(x(1)+2*x(2))/2+x(3)+((3^(0.5))/4)*x(4);

g(3)=pi/6-atan((((3^(0.5))/2)*x(3))/(x(3)/2+x(1)+x(2)));

g(4)=1110-2*(3^(0.5))*(x(1)+x(2)+x(3));

g(5)=1060-2*(3^(0.5))*(x(1)+x(2)+x(3))+(3*(x(1)+x(2))/4+(3^(0.5))/2)*(x(3)^2-((x(1)+x(2))^2)/4)^(0.5);

g(6)=x(1)+x(2)+x(3)-410;

g(7)=350+(3*(x(1)+x(2))/4+(3^(0.5))/2)*(x(3)^2-((x(1)+x(2))^2)/4)^(0.5)-(3^(0.5))*(x(1)+x(2)+x(3));

ceq=[];

目标函数:

function f=MBHS3(x)

f(1)=x(1);

f(2)=x(2);

f(3)=x(3);

f(4)=x(4);

f(5)=x(5);

执行函数:

x0=[70,70,250,90,500];

goal=[70,70,250,90,500];

w=goal;

lb=[0,0,0,0,0];

ub=[1000,1000,1000,1000,1000];

[xopt,fopt,c,d,e,f]=fgoalattain(@MBHS3,x0,goal,w,[],[],[],[],lb,ub,@YSTJ3)

运行结果:

Solver stopped prematurely.

fgoalattain stopped because it exceeded the function evaluation limit,

options.MaxFunEvals = 600 (the default value).

xopt =

11.7742   11.7742  304.3358   46.2874  587.4252

fopt =

11.7742   11.7742  304.3358   46.2874  587.4252

c =

1.8150e+04

d =

0

e =

iterations: 29

funcCount: 607

lssteplength: 0.2500

stepsize: 1.3897e+03

algorithm: 'goal attainment SQP, Quasi-Newton, line_search'

firstorderopt: []

constrviolation: 4.2032e+03

message: [1x146 char]

f =

lower: [5x1 double]

upper: [5x1 double]

eqlin: [0x1 double]

eqnonlin: [0x1 double]

ineqlin: [0x1 double]

ineqnonlin: [7x1 double]

求大神指教,小虫感激不尽

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值