The linear speed is variable, I guess you can calculate it by checking the position at several time intervals.
You initialize the oldXposition of the sprite.
Every S seconds you get the newXposition of the sprite, calculate the speed with ABS(newXposition-oldXposition) and just afterwards update the oldXposition with the newXposition value.
This will give you the speed in px per S seconds you have defined. If the S value is too small, reaching the per tick system limit, I guess that it will give bad readings. The speed of the sine goes from 0 in the edges to the max speed when passing the initial point.