Conventional migration methods, including reverse-time migration (RTM) have two weaknesses: first, they use the adjoint of forward-modelling operators, and second, they usually apply a crosscorrelation imaging condition to extract images from reconstructed wavefields. Adjoint operators, which are an approximation to inverse operators, can only correctly calculate traveltimes (phase), but not amplitudes. To preserve the true amplitudes of migration images, it is necessary to apply the inverse of the forward-modelling operator. Similarly, crosscorrelation imaging conditions also only correct traveltimes (phase) but do not preserve amplitudes. Besides, the examples show crosscorrelation imaging conditions produce strong sidelobes. Least-squares migration (LSM) uses both inverse operators and deconvolution imaging conditions. As a result, LSM resolves both problems in conventional migration methods and produces images with fewer artefacts, higher resolution and more accurate amplitudes. At the same time, RTM can accurately handle all dips, frequencies and any type of velocity variation. Combining RTM and LSM produces least-squares reverse-time migration (LSRTM), which in turn has all the advantages of RTM and LSM.In this thesis, we implement two types of LSRTM: matrix-based LSRTM (MLSRTM) and non-linear LSRTM (NLLSRTM). MLSRTM is a matrix formulation of LSRTM and is more stable than conventional LSRTM; it can be implemented with linear inversion algorithms but needs a large amount of computer memory. NLLSRTM, by contrast, directly expresses migration as an optimisation which minimises the ܮ 2 norm of the residual between the predicted and observed data. NLLSRTM can be implemented using non-linear gradient inversion algorithms, such as non-linear steepest descent and non-linear conjugated-gradient solvers.We demonstrate that both MLSRTM and NLLSRTM can achieve better images with fewer artefacts, higher resolution and more accurate amplitudes than RTM using three synthetic examples. The power of LSRTM is also further illustrated using a field dataset. Finally, a simple synthetic test demonstrates that the objective function used in LSRTM is sensitive to errors in the migration velocity.As a result, it may be possible to use NLLSRTM to both refine the migrated image and estimate the migration velocity.