Vibration energy harvesting: Optimal non-linear motion