fminbnd finding wrong minimum point for no reason, please help
显示 更早的评论
f = @(x)(-(1.0/((x-0.3).^2+0.01)+1.0/((x-0.9).^2+0.04)));
x = fminbnd(f, -1, 2);
x
y=f(x);
y
x = -1:0.3:2
y = -(1./((x-0.3).^2+0.01)+1./((x-0.9).^2+0.04))
plot(x,y)
here, minimum of the function should be smt between -50 and -60, but it finds -102.5014!! Why is that? please help.
采纳的回答
更多回答(1 个)
Walter Roberson
2011-10-19
0 个投票
As was indicated more than once in resposne to your previous question, you are trying to apply fminbnd() to a problem with multiple minima, but fminbnd() is not designed to handle such situations.
If you want to handle functions like the one above, you need a global minimizer.
类别
在 帮助中心 和 File Exchange 中查找有关 Functions 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!