Nonlinear optimization problem in Matlab

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)

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

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.
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
Thank you for reply. The problem also said that "the optimization can be initialized with R = I3 and d = 0".

Sign in to comment.

i all,
please nobody has an idea?
even a helpful suggestion please

5 Comments

Do you know how an element of SO(3) is sensefully parametrized ?
I don't.
Best wishes
Torsten.
Flore Flore
Flore Flore on 17 Mar 2016
Edited: Flore Flore on 17 Mar 2016
Can we parametrize it like this? and consider the two parameters d and phi instead of R?
Best wishes
Flore
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
Flore Flore on 22 Mar 2016
Edited: Flore Flore on 22 Mar 2016
Thank you for your reply.
If we consider that this R is a scalar. Please i want to know how to build the function with the summation over k in Matlab.
Best wishes
Flore
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.

Sign in to comment.

Categories

Tags

No tags entered yet.

Asked:

on 16 Mar 2016

Edited:

on 23 Mar 2016

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!