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 获赞数:17007

向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

光点科技
2023-08-15 广告
通常情况下,我们会按照结构模型把系统产生的数据分为三种类型:结构化数据、半结构化数据和非结构化数据。结构化数据,即行数据,是存储在数据库里,可以用二维表结构来逻辑表达实现的数据。最常见的就是数字数据和文本数据,它们可以某种标准格式存在于文件... 点击进入详情页
本回答由光点科技提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式