Nonlinear optimization problem in Matlab
Afficher commentaires plus anciens
Hi all, i want to find the maximum likelyhood of this problem but i really don't know how to do it. The problem also said that "the optimization can be initialized with R = I3(identity) and d = 0".

Réponses (2)
Alan Weiss
le 16 Mar 2016
0 votes
Are you really allowed to take any d you want? If so, why not just take any R in SO(3), maybe the identity, and take d to be the value of the resulting matrix multiplication?
If, instead, you have a fixed d, then you need to characterize the R in SO(3) by a set of variables, and minimize the expression over those variables. You can try using fminsearch, though you may have to start it from a variety of initial points to get a global minimum.
Alan Weiss
MATLAB mathematical toolbox documentation
3 commentaires
Torsten
le 16 Mar 2016
Are you really allowed to take any d you want? If so, why not just take any R in SO(3), maybe the identity, and take d to be the value of the resulting matrix multiplication?
I think you missed the summation over k.
Best wishes
Torsten.
Alan Weiss
le 16 Mar 2016
Indeed I did, thanks! I should spend more time looking when the problem seems nonsensical.
The suggestion stands, though: parametrize SO(3) matrices, and have at it with a minimizer.
Alan Weiss
MATLAB mathematical toolbox documentation
Flore Flore
le 16 Mar 2016
Flore Flore
le 17 Mar 2016
0 votes
5 commentaires
Torsten
le 17 Mar 2016
Do you know how an element of SO(3) is sensefully parametrized ?
I don't.
Best wishes
Torsten.
Flore Flore
le 17 Mar 2016
Modifié(e) : Flore Flore
le 17 Mar 2016
Torsten
le 18 Mar 2016
Why only rotations in the xy-plane ? The representation you choose for R in the objective function must include all possible cases, e.g. a composition of a rotation in the xy-plane with a rotation in the xz-plane.
Best wishes
Torsten.
Flore Flore
le 22 Mar 2016
Modifié(e) : Flore Flore
le 22 Mar 2016
The objective function should somehow look like
summe=objfunc(x,y_zk,y_mk,invD0,o)
d=x(1:end-1);
r=x(end);
summe=0.0;
for k=1:K
summe = summe + norm(d-y_zk(k,:)*r*invD0*(y_mk(k,:)-o)');
end
Best wishes
Torsten.
Catégories
En savoir plus sur Get Started with Optimization Toolbox dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
