How do I determine the acceleration value for my printer? When the print head changes direction, the printer must accelerate and decelerate the print head. When calibrated correctly, the printer is able to do this quickly and without causing the printer to shake too much, without drastically slowing down the print process.

If I set it too high, my printer shakes violently, especially during infill. If I set it too low, print times are doubled or tripled.

What process can I follow to determine (or how can I calculate) the fastest acceleration value my printer can use without causing problems in my print?

I'd prefer a process I can follow over a formula I can plug values into, especially if the formula includes magic numbers.
As Tom pointed out, binary search is the best way. In case that term isn't familiar to all readers, here's a little more detail:


Establish an acceleration value that you're sure is too low (call it $L$), and one that you're sure is too high ($H$). It sounds like you know such values already from experience.
Figure out the speed in the middle: $(L+H)/2$.  Call that $M$.
Try printing at speed $M$. Something like a stepped calibration cube might be a good choice of object (plenty available on Thingiverse).
If $M$ is still too fast, take $M$ as your new high-speed limit (that is, reset $H$ to the value of $M$), and repeat from step #2.
If it's slow enough to work, take $M$ as your new low-speed limit ($L$), and repeat from step #2.


Each repetition will cut the range in half. Keep repeating until $L$ and $H$ get as close as you want; say, within 5&nbsp;% of each other or so.

I wouldn't bother trying to get super-close, because the workable value will vary somewhat over time (friction from dust getting on various parts; slight voltage differences; different mass and pulling tension for the filament roll, temperature of motors, complexity of the object you're printing, behavior of the slicing program you use, you name it).