如何使用"fsolve"来优化目标函数?



如何使用"fsolve"优化以下函数。它只接受向量形式的输入参数,但我必须以矩阵的形式将输入参数传递给下面的函数。

我在使用优化工具箱时收到以下错误

运行优化时出错。内部矩阵尺寸必须一致。

 function f = object(w)
 k=10;
 B=20;
 f = sum ((w(1,:)/(w(2,:).^w(3,:)*k)+((w(3,:)-1)*w(4,:)/B*w(3,:))));
 end

您对外部环境的问题描述非常简短,但从您的函数来看,该函数可能需要大小为 4 x Nw参数。我猜对了吗?如果是这样,请尝试

w_initial = rand(4*N,1); % resonable initialization. maybe random? maybe zeros?
fsolve(@(w) object(reshape(w,4,N)), w_initial, ...)

最新更新