To find the minima in an interval, you can use the golden-section search.
Basically, it is an iterative process where you divide each interval into 3 parts and discard the left or right part according to the values of the function at the boundaries.
However, since you have multiple minima you can either split the interval $[a; b]$ into $n$ several smaller intervals $[c_j; c_{j+1}]$, with $ a = c_0 < c_1 < \ldots < c_{n-1} < c_n = b $ such that you will only have at most one minimum in each interval (though you may have zero minima in an interval).
Another approach is to find a minimum $m_1$ in the interval $[a; b]$. Then, we split the initial interval into two intervals $[a; m_1)$ and $(m1; b]$, and search for a minima in both (one at a time). Each minimum you find will split the respective interval into two smaller intervals to search for minima. And if you don't find the minimum in the interval $(m_j; m_k)$ you could split it in half and repeat the search.
You could stop the iterative process and, thus, splitting each interval if one of the following happens: (1) all the minima are found (in case you know how many exist); (2) the interval amplitude is smaller than a pre-determined value.
Edit:
You may also alternate the search for local minima and local maxima, since between two maxima there is at least one minima (and vice-versa).