我想用matlab中的fgoalattain函数,实现多目标函数优化.请问,函数中的goal怎么设置?我想用matlab中的fgoalattain函数,实现多目标函数的函数值最小化.请问,函数中的goal怎么设置?目标函数都是平方和,

来源:学生作业帮助网 编辑:作业帮 时间:2024/03/28 19:18:38
我想用matlab中的fgoalattain函数,实现多目标函数优化.请问,函数中的goal怎么设置?我想用matlab中的fgoalattain函数,实现多目标函数的函数值最小化.请问,函数中的goal怎么设置?目标函数都是平方和,

我想用matlab中的fgoalattain函数,实现多目标函数优化.请问,函数中的goal怎么设置?我想用matlab中的fgoalattain函数,实现多目标函数的函数值最小化.请问,函数中的goal怎么设置?目标函数都是平方和,
我想用matlab中的fgoalattain函数,实现多目标函数优化.请问,函数中的goal怎么设置?
我想用matlab中的fgoalattain函数,实现多目标函数的函数值最小化.请问,函数中的goal怎么设置?目标函数都是平方和,所以都为正数.
请问,实现多个函数的函数值最小化,用fgoalattain函数对吗?我随便设置了goal,初始值,结果不对.

我想用matlab中的fgoalattain函数,实现多目标函数优化.请问,函数中的goal怎么设置?我想用matlab中的fgoalattain函数,实现多目标函数的函数值最小化.请问,函数中的goal怎么设置?目标函数都是平方和,
一般的结构:
[x,fval] = fgoalattain(FUN,X0,GOAL,WEIGHT,A,B,Aeq,Beq,LB,UB,NONLCON)
当然,你还可以在等式右侧添加输出量,等式左侧的输入量,如果缺则填[].
按照你给的目标函数举例:
min (x1-1)^2+(x2-2)^2+(x3-3)^2
min x1^2+2*x2^2+3*x3^2
s.t.x1+x2+x3=6
x1,x2,x3>=0
%建立个m文件:
function y=fun(v,options)
x1=v(1);
x2=v(2);
x3=v(3);
y(1)=(x1-1)^2+(x2-2)^2+(x3-3)^2;
y(2)=x1^2+x2^2+x3^2;
%命令窗求
[x,fval]=fgoalattain(@fun,[1 1 1],[1 1],[1 1],[],[],[1 1 1],[6],[0 0 0],[])
%结果如下:
x =
2.0000 2.0000 2.0000
fval =
2.0000 12.0000
PS:fgoalattain函数是多目标规划早期的算法,目的是把多目标转化为单目标,给每个目标函数一个权重weight,然后去求解.