Nonlinear optimization problem in Matlab
Show older comments
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".

Answers (2)
Alan Weiss
on 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 Comments
Torsten
on 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
on 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
on 16 Mar 2016
Flore Flore
on 17 Mar 2016
0 votes
5 Comments
Torsten
on 17 Mar 2016
Do you know how an element of SO(3) is sensefully parametrized ?
I don't.
Best wishes
Torsten.
Flore Flore
on 17 Mar 2016
Edited: Flore Flore
on 17 Mar 2016
Torsten
on 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
on 22 Mar 2016
Edited: Flore Flore
on 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.
Categories
Find more on Get Started with Optimization Toolbox in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!