I have a sine wave whose parameters I can determine (they are user-input). It’s of the form y=a*sin(m*x + t)
I’d like to know whether anyone knows an efficient algorithm to figure out the range of y for a given interval which goes from [0, x] (x is again another input)
For example:
for y = sin(x) (i.e. a=1, t=0, m=1), for the interval [0, 4] I’d like an output like [1, -0.756802]
Please keep in mind, m and t can be anything. Thus, the y-curve does not have to start (or end) at 0 (or 1). It could start anywhere.
Also, please note that x will be discrete.
Any ideas?
PS: I’ll use python for implementing the algorithm.
Since function
y(x) = a*sin(m*x + t)is continuous, maximum will be either at one of the interval’s ends or at the maximum inside interval, in this casedy/dxwill be equal to zero.So:
1. Find values of y(x) at the ends of interval.
2. Find out if dy/dx == a * m cos (mx + t) have zero(s) in interval, find out values of y(x) at the zero(s).
3. Choose point where
y(x)have maximum value