matlab多目标优化求解的例子

%1、对f1(x)的最优解求解matlab程序如下:f=[3;-2];A=[2,3;2,1];b=[18;10];lb=[0;0];[x1,fval1]=linprog(... % 1、对f1(x)的最优解求解matlab程序如下:
f=[3;-2];
A=[2,3;2,1];
b=[18;10];
lb=[0;0];
[x1,fval1]=linprog(f,A,b,[],[],lb);
% 2、对f2(x)最优解的matlab程序为:
f2=[-4;3];
[x2,fval2]=linprog(f2,A,b,[],[],lb);
% 求模型的最优解
x0=[1;1];
x=fmincon('((-3*x(1)+2*x(2)+fval1)^2+(4*x(1)+3*x(2)+fval2)^2)^(1/2)',x0,A,b,[],[],lb,[])

运行结果如下
multi_objective
Optimization terminated.
Optimization terminated.
错误使用 inlineeval (line 14)
内联表达式出错 ==>
((-3*x(1)+2*x(2)+fval1)^2+(4*x(1)+3*x(2)+fval2)^2)^(1/2)
未定义函数或变量 'fval1'。

出错 inline/feval (line 33)
INLINE_OUT_ = inlineeval(INLINE_INPUTS_,
INLINE_OBJ_.inputExpr, INLINE_OBJ_.expr);

出错 fmincon (line 535)
initVals.f = feval(funfcn{3},X,varargin{:});

出错 multi_objective (line 21)
x=fmincon('((-3*x(1)+2*x(2)+fval1)^2+(4*x(1)+3*x(2)+fval2)^2)^(1/2)',x0,A,b,[],[],lb,[])

原因:
Failure in initial objective function evaluation. FMINCON
cannot continue.

求问这个是什么问题以及如何进行修改呢?
展开
 我来答
lhmhz
高粉答主

2018-01-27 · 专注matlab等在各领域中的应用。
lhmhz
采纳数:7264 获赞数:17013

向TA提问 私信TA
展开全部

出错原因:下列的函数表达式定义错误,

x=fmincon('((-3*x(1)+2*x(2)+fval1)^2+(4*x(1)+3*x(2)+fval2)^2)^(1/2)',x0,A,b,[],[],lb,[])

纠正方法,用句柄函数来定义函数表达式,即

@(x)((-3*x(1)+2*x(2)+fval1)^2+(4*x(1)+3*x(2)+fval2)^2)^(1/2)

完整写法如下,

x=fmincon(@(x)((-3*x(1)+2*x(2)+fval1)^2+(4*x(1)+3*x(2)+fval2)^2)^(1/2),x0,A,b,[],[],lb,[])

更改后运行,可得到

x1 =    0.1756;x2=    5.8829

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式