Nonlinear optimization problem in Matlab
Ältere Kommentare anzeigen
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".

Antworten (2)
Alan Weiss
am 16 Mär. 2016
0 Stimmen
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 Kommentare
Torsten
am 16 Mär. 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
am 16 Mär. 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
am 16 Mär. 2016
Flore Flore
am 17 Mär. 2016
0 Stimmen
5 Kommentare
Torsten
am 17 Mär. 2016
Do you know how an element of SO(3) is sensefully parametrized ?
I don't.
Best wishes
Torsten.
Flore Flore
am 17 Mär. 2016
Bearbeitet: Flore Flore
am 17 Mär. 2016
Torsten
am 18 Mär. 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
am 22 Mär. 2016
Bearbeitet: Flore Flore
am 22 Mär. 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.
Kategorien
Mehr zu Get Started with Optimization Toolbox finden Sie in Hilfe-Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
