Full-waveform inversion, Part 3: Optimization
This tutorial is the third part of a full-waveform inversion (FWI) tutorial series with a step-by-step walkthrough of setting up forward and adjoint wave equations and building a basic FWI inversion framework. For discretizing and solving wave equations, we use Devito ( http://www.opesci.org/devito-public ), a Python-based domain-specific language for automated generation of finite-difference code ( Lange et al., 2016 ). The first two parts of this tutorial ( Louboutin et al., 2017 , 2018 ) demonstrated how to solve the acoustic wave equation for modeling seismic shot records and how to compute the gradient of the FWI objective function using the adjoint-state method. With these two key ingredients, we will now build an inversion framework that can be used to minimize the FWI least-squares objective function.