失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > MATLABnbsp;fgoalattain()函数nbsp;解…

MATLABnbsp;fgoalattain()函数nbsp;解…

时间:2021-07-26 19:18:09

相关推荐

MATLABnbsp;fgoalattain()函数nbsp;解…

多目标规划可以归结为

其中x,weight,goal,b,lb和ub是向量,A和Aeq是矩阵C(x),ceq(x)和f(x)是向量函数,他们可以是非线性函数。 F(x)是所考虑的目标函数,goal 是欲达到的目标,多目标规划的Matlab 函数fgoalattain的用法为[x,fval]= fgoalattain('fun',x0,goal,weight)[x,fval]= fgoalattain('fun',x0,goal,weight,A,b)[x,fval]= fgoalattain('fun',x0,goal,weight,A,b,Aeq,beq)[x,fval]= fgoalattain('fun',x0,goal,weight,A,b,Aeq,beq,lb,ub,nonlcon)其中fun 是用 M 文件定义的目标向量函数,x0 是初值,weight是权重。A,b 定义不等式约束A*x ≤ b ,Aeq,beq定义等式约束 Aeq*x=Beq ,nonlcon是用 M 文件定义的非线性约束c(x) ≤0,ceq(x)=0 。返回值 fval是目标向量函数的值。要完整掌握其用法,请用 helpfgoalattain 或 typefgoalattain 查询相关的帮助。例5求解多目标线性规划问题

(i )编写 M函数 Fun.m:

function F=Fun(x);

F(1)=-100*x(1)-90*x(2)-80*x(2)-70*x(4);

F(2)=3*x(2)+2*x(4);

(ii )编写 M文件

a=[-1 -100

00-1 -1

3020

0302];

b=[-30 -30 120 48]';

c1=[-100 -90 -80 -70];

c2=[0 3 0 2];

[x1,g1]=linprog(c1,a,b,[],[],zeros(4,1))%求第一个目标函数的目标值

[x2,g2]=linprog(c2,a,b,[],[],zeros(4,1))%求第二个目标函数的目标值

g3=[g1;g2]%目标goal的值

[x,fval]=fgoalattain('Fun',rand(4,1),g3,abs(g3),a,b,[],[],zeros(4,1))

%这里权重weight=目标goal的绝对值

就可求得问题的解.

如果觉得《MATLABnbsp;fgoalattain()函数nbsp;解…》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。