赞
踩
我正在使用Matlab fminsearch来最小化带有两个变量的方程sum((interval-5).^2, 2)*factor间隔是一个包含5个值的向量。 只能从1到30的步长为1的顺序选择它们。因子是0.1到0.9的值。
代码如下。 我认为区间值是正确的,但因子值是错误的。
间隔值:[3 4 5 6 7]因子值:0.6最终输出:6
我认为因子值应为0.1,最终输出应为1作为全局最小值。
%% initialization of problem parameters
minval = 1;
maxval = 30;
step = 1;
count = 5;
minFactor = 0.1;
maxFactor = 0.9;
%% the objective function
fun = @(interval, factor) sum((interval-5).^2, 2)*factor;
%% a function that generates an interval from its initial value
getinterval = @(start) floor(start) + (0:(count-1)) * step;
getfactor =@(start2) floor(start2 * 10)/10;
%% a modified objective function that handles constraints
objective = @(start, start2) f(start, fun, getinterval, minval, maxval, getfactor, minFac
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。