gemseo.mda.quasi_newton module#
A set of quasi Newton algorithm variants for solving MDAs.
- class MDAQuasiNewton(disciplines, settings_model=None, **settings)[source]#
Bases:
BaseParallelMDASolver
Quasi-Newton solver for MDA.
Quasi-Newton methods include numerous variants ( Broyden, Levenberg-Marquardt <https://en.wikipedia.org/wiki/Levenberg-Marquardt_algorithm> __, ...).
The name of the variant should be provided via the
method
parameter of the class.The new iterate is given by:
\[\begin{split}x_{k+1} = x_k - \\rho_k B_k f(x_k)\end{split}\]where \(\\rho_k\) is a coefficient chosen in order to minimize the convergence and \(B_k\) is an approximation of \(Df(x_k)^{-1}\), the inverse of the Jacobian of \(f\) at \(x_k\).
Initialize self. See help(type(self)) for accurate signature.
- Parameters:
disciplines (Sequence[Discipline]) -- The disciplines from which to compute the MDA.
settings_model (MDAQuasiNewton_Settings | None) -- The MDA settings as a Pydantic model. If
None
, use**settings
.**settings (Any) -- The MDA settings. These arguments are ignored when
settings_model
is notNone
.
- Raises:
ValueError -- If the method is not a valid quasi-Newton method.
- Settings#
The pydantic model for the settings.
alias of
MDAQuasiNewton_Settings
- settings: MDAQuasiNewton_Settings#
The settings of the MDA