Nonlinear optimization problem in Matlab
Mostra commenti meno recenti
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".

Risposte (2)
Alan Weiss
il 16 Mar 2016
0 voti
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 Commenti
Torsten
il 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
il 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
il 16 Mar 2016
Flore Flore
il 17 Mar 2016
0 voti
5 Commenti
Torsten
il 17 Mar 2016
Do you know how an element of SO(3) is sensefully parametrized ?
I don't.
Best wishes
Torsten.
Flore Flore
il 17 Mar 2016
Modificato: Flore Flore
il 17 Mar 2016
Torsten
il 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
il 22 Mar 2016
Modificato: Flore Flore
il 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.
Categorie
Scopri di più su Get Started with Optimization Toolbox in Centro assistenza e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
