I understand that for a functional $J[f]$ on the space of differentiable functions $f$ on some domain, setting $\delta J[f]|_{f=f_0} = 0$ yields a (possibly nonlinear) partial differential equation in $f_0$, the $f$ that minimizes $J$. Solutions are non-degenerate if extrema of $J$ are locally unique, and the uniqueness of the PDE is related to the number of extrema of $J$.
My question is if, given a known (nonlinear) partial differential equation with solutions $u$, there is a general method to construct a functional that the $u$ will minimize?
I am not interested in functionals of the form $(f-u)^2$ and other functionals that contain the explicit form of the solutions $u$, and would like to know if there is a method to find $J$ given the terms in the PDE. I'm aware that this can be done for all linear equations such as $Lu=v$ in a straightforward way; namely, for $L\cdot u=v$, $J[u] = \langle u\cdot L\cdot u \rangle - \langle v \cdot u \rangle - \langle u \cdot v \rangle$; but don't know of any extensions to nonlinear PDEs.
The problem of determining a Lagrangian (and so the action functional) such that the corresponding Euler-Lagrange equation equal a given PDE is known as the inverse problem of variational calculus. See wikipedia (http://en.wikipedia.org/wiki/Inverse_problem_for_Lagrangian_mechanics) for an introduction and nlab (http://ncatlab.org/nlab/show/variational+bicomplex) for a mathematical generalization of this idea (especially the references in the later are useful: Takens/Zuckermann/...).