以下代码不起作用,但这是我试图达到的想法。
c = @(x)constraints;
%this is where I would initialize sum as 0 but not sure how...
for i = 1:length(c)
sum = @(x)(sum(x) + (min(c(x)(i),0))^2);
end
penFunc = @(x)(funcHandle(x) + sig*sum(x));
其中约束和 funcHandle 是 x 的函数。整个代码将迭代一系列 sig。
显然 c(x)(i) 不起作用。我正在尝试编写函数,其中取 i 处的 c(x) 最小值(c(x) 是一个向量)或 0,然后取平方。
我知道我可以计算 c(x),然后在每个 i 处对其进行分析,但我最终想将 penFunc 作为句柄传递给另一个计算 penFunc 最小值的函数,所以我需要将其保留为函数。