MATLAB fgoalattain()函数 解…
2017-03-14 10:49
621 查看
多目标规划可以归结为
其中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是目标向量函数的值。
要完整掌握其用法,请用 help fgoalattain 或 type
fgoalattain 查询相关的帮助。
例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 -1 0
0
0 0
-1 -1
3 0
2 0
0 3
0 2];
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的绝对值
就可求得问题的解.
其中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是目标向量函数的值。
要完整掌握其用法,请用 help fgoalattain 或 type
fgoalattain 查询相关的帮助。
例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 -1 0
0
0 0
-1 -1
3 0
2 0
0 3
0 2];
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的绝对值
就可求得问题的解.
相关文章推荐
- Matlab fmincon函数用法
- MATLAB中的solve()函数 求代…
- matlab interp 各种插值函数
- Matlab fmincon函数用法
- matlab factoran 因子分析函数
- matlab line函数 直线绘图函数
- MATLAB中的int2str()函数 把…
- MATLAB中的cumsum()函数 计算…
- MATLAB中的 randperm()函数&n…
- matlab pause函数 程序暂停函数
- matlab 常用函数
- MATLAB中的eye() 函数 …
- MATLAB中的diag()函数 构造对…
- matlab sort() 排序函数…
- Matlab 图像处理相关函数命…
- matlab mod函数 rem函数…
- matlab ezplot3 绘制三维函数图
- matlab corrcoef 函数&n…
- 【MATLAB】matlab eig 函数…
- matlab 函数meshgrid的用法