我认为你们需要理解优化变量都需要在一个变量中,通常称为
x
.看到
编写标量目标函数
.此外,如果你愿意的话
gamultiobj
在您尝试创建目标函数之前,您将得到一个比您正在使用的模板更有用的模板。最后,你的非线性约束函数必须返回
c (x)
对于可行点,它小于零。我认为你需要
c =(π* r1 ^ 2) * l1 +π* (r2 ^ 2 * l2) +(π* r3 ^ 2) * l3 - 1.5 * v_part;
一件事。你可能想要设置
r
而且
l
作为向量,而不是作为每个分量的单独变量。所以你会写
r (2)
而不是
r2
.再说一遍,这些都是
x
向量。所以你可能会有
函数f1 = obj (x)
r = x (1:3);
l = x (6);
然后用r和l表示。
结束
您可能需要为固定的参数使用额外的变量,例如
k
而且
v_melt
.你可以把它们放在你的工作空间里然后你的函数看起来就像
函数f1 = obj (x k v_melt)
%代码在这里
结束
祝你好运,
艾伦·韦斯
MATLAB数学工具箱文档