Finding local minima and maxima of a graph
James Hurley
jhurley0305 at sbcglobal.net
Sun Dec 5 11:40:35 EST 2010
Brian,
> Jonathan, Jerry, et al
> As to the number of potential observations. Thousands of series,
> 10s to hundreds of thousands of observations per series at a
> minimum. Possibly millions. So computational efficiency isn't a
> luxury, it is a requirement.
> Brian
The following method is fairly efficient. The process, on my slow Mac
Mini, take 2 seconds to process one million data points.
on mouseUp
put .1 into tAngle
--Create one million data points
repeat 1000000 times
put sin(tAngle*pi/180) & cr after tempList
add 5 to tAngle
end repeat
--Now find the minima and maxima
put the sec into tStartTime
put MinMax(tempList) into field 1
put the sec - tStartTime into msg box
beep
end mouseUp
function MinMax tList
put line 1 of tList into yOld
put 0 into dyOld
repeat for each line yNew in tList
put yNew - yOld into dy
put dy * dyOld into tChange
if tChange < 0 or tChange = 0 then
put yNew & cr after tExreema
end if
put ynew into yOld
put dy into dyOld
end repeat
return tExreema
end MinMax
More information about the Use-livecode
mailing list