4
$\begingroup$

I am trying to minimize a function where my initial guess is quite close to the minimum. I'm trying to minimize

$$f(q) = \text{angle}(qw_1q*, v_1) + \text{angle}(qw_2q*, v_2) + \text{angle}(qw_3q*, v_3)$$

with $q$ being a quaternion and it's conjugate $q*$ and $w$ and $v$ being vectors. What algorithms are there that can find my minimum without requiring expensive derivatives? Speed is my biggest concern.

$\endgroup$
  • 5
    $\begingroup$ If speed is the biggest concern, then you should use derivatives. Optimization algorithms with derivatives are way faster. The only reasons not to use derivatives is if they do not exist or you cannot compute them. $\endgroup$ – Nick Alger Jul 24 '18 at 9:09
  • $\begingroup$ But computing the derivate is most of the time slow, isn't it? Especially for this function? $\endgroup$ – Hakaishin Jul 24 '18 at 9:16
  • $\begingroup$ Can you explain the notation of your objective function? What are $w_i$ and $v_i$? $\endgroup$ – nicoguaro Jul 24 '18 at 13:27
  • 2
    $\begingroup$ You'll want to provide more detail before we can answer this question. However, Nick is correct that if you want a precise answer you'll do much better with a derivative based optimization algorithm than with a derivative free method. $\endgroup$ – Brian Borchers Jul 24 '18 at 15:19
  • 1
    $\begingroup$ But computing the derivate is most of the time slow, isn't it? Especially for this function? No. The derivative may be non-trivial or tedious to compute by hand, but it'll be fast to evaluate. (For reference, "slow to evaluate" usually refers to derivatives involving solutions of massive (stochastic) PDEs.) Unless you have real-time requirements, in which case you should put that information into your question. $\endgroup$ – Christian Clason Jul 25 '18 at 5:13

Your Answer

By clicking "Post Your Answer", you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.