我有一个名为101x82
的{{1}}大小矩阵。我正在尝试最小化目标函数A
,其值使用obj_fun
间接计算。
现在为了尽量减少这个目标函数A
,我需要扰乱obj_fun
的值。我想检查A
是否会降低值。如果没有,那么我需要干扰/更改obj_fun
的值到某个百分比,以便最小化A
。继续扰动/更改obj_fun
的值,直到我们得到最小值A
。在任何扰动之前我的平均值obj_fun
是~1.1529e + 003。
有没有人建议我该怎么做?另外,我关心速度,即方法/算法不应该太慢。感谢。
答案 0 :(得分:2)
您可以将随机高斯噪声添加到A
:
A = 0; % seed value for A with something more interesting than 0
best = obj_fun(A);
for iter = 1:max_iter % max_iter should be the maximum number of iterations
newA = A + normrnd(0, 1, size(A));
newObj = obj_fun(A);
if( newObj < best )
best = newObj;
A = newA;
end
end