fminsearch giving results below initialisation point

2 visualizaciones (últimos 30 días)
udi ibgui
udi ibgui el 30 de En. de 2020
Comentada: John D'Errico el 6 de Feb. de 2020
I have a function that I am trying to minimise as follows
function x = kmean_per_dif_fit(img, adam)
x0 = [80,10,1];
tota = @(x)0;
totb = 0;
for i = 1:5
err = @(x)abs(round(sum(sum((abs(img{1} - x(1))<abs(img{1} - x(2))) == 1))/x(3))-adam(i));
tota = @(x)tota(x) + err(x);
totb = totb + adam(i);
a = @(x)tota(x)/totb;
x = fminsearch(a,x0)
As you can see, i have three unknowns and I try to initialise them at x0 = [80,10,1]
The answers that I get yet, are not within my initilastions
316.1776 -1.1811 2.6955
any help would be appreciated!
  1 comentario
John D'Errico
John D'Errico el 6 de Feb. de 2020
Very strange. (Not what fminsearch did, but what you are doing.)
You have one function in there called tota, which is identically zero. You add it to err(x). err is something strange looking too. But it appears that err is doing something highly non-differentiable, and certainly discontinuous.
Why is that a problem? Because fminsearch is not designed to solve such a problem.
And, of course, you do not tell us what img and adam are. IMG is some arbitrary cell array, containing only cell. adam is some unknown vector, of length 5. So we cannot even test your code out to show you what it does, and why fminsearch fails.
So it is totally impossible to help you, to explain why fminseach goes where it did go.
As for why it might have done so, fminseach has NO constraints upon it. So it can freely go wherever it decides might improve the objective function.

Iniciar sesión para comentar.

Respuesta aceptada

Pravin Jagtap
Pravin Jagtap el 6 de Feb. de 2020
Hello Udi,
I think this can happen because it depends on the function and starting point (Since 'fminseach' function uses heuristic method). The 'fminsearch' uses the Nelder-Mead simplex algorithm for getting the minimum value. Please refer to following documentation for more details on the algorithm.

Más respuestas (0)


Más información sobre Get Started with Optimization Toolbox en Help Center y File Exchange.


Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by