A simple, analytically correct algorithm is developed for calculating pencil beam coordinates using the signals from an ideal cylindrical particle beam position monitor (BPM) with four pickup electrodes (PUEs) of infinitesimal widths. The algorithm is then applied to simulations of realistic BPMs with finite width PUEs. Surprisingly small deviations are found. Simple empirically determined correction terms reduce the deviations even further. The algorithm is then used to study the impact of beam-size upon the precision of BPMs in the non-linear region. As an example of the data acquisition speed advantage, a FPGA-based BPM readout implementation of the new algorithm has been developed and characterized. Finally,the algorithm is tested with BPM data from the Cornell Preinjector.