我是一名不熟悉MATLAB的电气工程师。我的问题是当我调用" fmincon"命令时,如何传递用于计算成本函数的其他变量。首先,我首先制作成本函数名称" Sum_Square_error.m"用于从估计输出(使用神经网络估算的输出)和实际输出计算总和平方误差。在此函数中,我将使用来自列车网络的权重乘以收缩系数矩阵(c)并将其称为" modify_input_weight&#34 ;。然后我用modify_input_weight评估神经网络。所以我得到了估计输出。之后,我得到总和平方误差。我的目标是通过使用收缩系数矩阵(c)调整神经网络的权重来最小化Sum_square_error。
我已经读过" fmincon"功能参考。我可以通过三个方法传递额外的参数 1.匿名函数 2.嵌套函数 3.全局变量 对于这种问题哪种方法最适合。我试图使用像这样的匿名函数
------------------------------------------- Sum_Square_error.m - -------------------------------------------------- ---- f = @(c)Sum_Square_error(c,input_weight,X_test,Y_test);
for i=1:10
modify_input_weight(:,i) = c(i,1)*input_weight(:,i);
end
net.IW{1,1}= modify_input_weight;
y = net(X_test);
e = gsubtract(Y_test,y);
f = sum(e)^2;
端
----------------------------------------------- ---主程序--------------------------------------------- -------------
A = ones(1,10);
b = s;
lb = zeros(1,10);
[c,fval] = fmincon(@Sum_Square_error,c0,A,b,[],[],lb,[]);
但在我尝试运行此程序后,它会显示许多错误消息。有人可以帮我传递" c,input_weight,X_test,Y_test"优化这个成本函数。