The adjoint state method is a numerical method for efficiently computing the gradient of a function or operator in a numerical optimization problem. It has applications in geophysics, seismic imaging, photonics and more recently in neural networks[1].

The adjoint state space is chosen to simplify the physical interpretation of equation constraints.[2] It may take the form of a Hilbert space.

Adjoint state techniques allow the use of integration by parts, resulting in a form which explicitly contains the physically interesting quantity. An adjoint state equation is introduced, including a new unknown variable.

The adjoint method formulates the gradient of a function towards its parameters in a constraint optimization form. By using the dual form of this constraint optimization problem, it can be used to calculate the gradient very fast. A nice property is that the number of computations is independent of the number of parameters for which you want the gradient. The adjoint method is derived from the dual problem [1] and is used e.g. in the Landweber iteration method [2].

The name adjoint state method refers to the dual form of the problem, where the adjoint matrix ${\displaystyle A^{*}={\overline {A}}^{T}}$ is used.

When the initial problem consists of calculating the product ${\displaystyle s^{T}x}$ and ${\displaystyle x}$ must satisfy ${\displaystyle Ax=b}$, the dual problem can be realized as calculating the product ${\displaystyle r^{T}b}$ (${\displaystyle =s^{T}x}$), where ${\displaystyle r}$ must satisfy ${\displaystyle A^{*}r=s}$. And ${\displaystyle r}$ is called the adjoint state vector.