fminsearch used in a complex way
5 views (last 30 days)
Show older comments
Hi All,
Trying to sort out a specific application of fminsearch. Here it is:
options = optimset('Display', 'off', 'Diagnostics', 'on', 'GradObj', 'off', 'TolX', 1e-6, 'TolFun',1e-6, 'MaxFunEvals', 1000);
p = fminsearch(@(c) calc_global_angle(c, Rx*Ry, p_global), p_global, options);
And here's the calc_global_angle function:
function [residual, value] = calc_global_angle(ang, mat, p)
Rz = build_Rz(ang);
T = mat*Rz;
value = -asin(T(1,2)/sqrt(T(1,2)^2+T(2,2)^2));
residual = abs(value - p);
I can also tell you this: Rx is a 3x3 matrix. Ry is a 3x3 matrix. p_global is a scalar. p is a scalar.
And c just appears. I'm not exactly sure where the variable c comes from. It just appears, just as you see it in the p = fminsearch(...) line.
I'm also quite unclear on how you can find the minimum of a function that returns two variables (or a two element vector, if you prefer). Is it minimizing on value or residual?
Also, since the calc_global_angle takes three arguments (c, a 3x3 matrix, and another scalar), why is fminsearch returning only a scalar? Shouldn't it return the three arguments that minimize the function?
Any explanations and help that people feel like providing would be much appreciated.
Regards, Elroy
0 Comments
Answers (1)
Walter Roberson
on 11 Nov 2015
3 Comments
Walter Roberson
on 11 Nov 2015
fun is the function to be minimized. It accepts an input x and returns a scalar f, the objective function evaluated at x.
The second output is simply being ignored.
The first output happens to be your "residue", so basically you are searching for the angle that returns the smallest residue.
fminsearch uses a simplex type search that does not necessarily get stuck in any given local minimum, but certainly can get stuck in local minima. fminsearch() is not a global minimizer.
See Also
Categories
Find more on Optimization in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!