Mathematics Stack Exchange is a question and answer site for people studying math at any level and professionals in related fields. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I'm fitting the following Von Mises type function to some data:

$(A/2\pi)e^{k\cos(\theta)}+C$ where A and k are positive.

I want to calculate the width at half height from the lowest point of the curve. Note that for some values of $A$, $k$, and $C$ this is not the same as $1/2$ of the maximum value taken by the function. Instead, you can get those values just by setting $\cos(\theta) = 1$ and $\cos(\theta)=-1$. Those should be the maximum and minimum values taken on by the function for a given set of parameters. Then, plugging those in to the main equation and subtracting the min from the max, you get:


Now I want to get the half height, which is half of the above value, so that's $(A/4\pi)[e^k-e^{-k}]$.

So far so good. Now I want to solve for which $\theta$ the original equation takes those values. There should be two since this a symmetric function, but I only need one, because I know where the peak is, and also since the function is centered at 0, one should be equivalent the negative of the other. So I proceeded to solve the equation as so:

$(A/2\pi)e^{k\cos(\theta)}=(A/4\pi)[e^k-e^{-k}]$ (the $C$ was dropped because when finding the half-height the $C$ was re-centered to $0$).

Solving this for $\theta$ gives: $\theta=\operatorname{acos}(\ln(\sinh(k))/k)$

For large values of $k$ this gives the right answer, as tested against numeric methods. However, when $k$ becomes small, $\operatorname{acos}()$ becomes imaginary. I am then unsure of how to retrieve the solution. It's clear that the solution exists (I can still crawl alongthe contour of the function and numerically find a great approximation). It's also the case that replacing $\sinh()$ with $\cosh()$ produces a really good approximation, although $\cosh()$ begins to fail to approximate well as $k$ gets larger (again, tested with numerical methods).

So the question is, how to solve for those solutions analytically? Also, why does $\cosh()$ work so well in the range of small k but not in the range of larger $k$?


share|cite|improve this question

Ahh looks like I made a mistake. It's not sufficient to just do (Max - Min) / 2 to determine the point, but I have to add back the minimum point to take care of the fact that it recentered around 0. So it should be ((Max-Min)/2) + Min = (Max + Min)/2, which is the same cosh() result mentioned above. No wonder it's such a good 'approximation' since it's the actual real solution. Sinh() takes a lot of the same values as Cosh() for large k and therefore mislead me into thinking it was the correct expression.

share|cite|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.