doe_stationary_point Subroutine

public subroutine doe_stationary_point(mdl, n, z, nature, ok, eigenvalues)

Computes the stationary point of a quadratic (nway <= 2) response surface in coded variables and classifies its nature.

The model is written as

where the gradient and Hessian are recovered exactly from model evaluations. The stationary point solves , and is classified by the eigenvalues of : all negative is a maximum, all positive is a minimum, mixed signs is a saddle, and a (near) zero eigenvalue is singular (a ridge or flat direction, with no unique stationary point).

Arguments

Type IntentOptional Attributes Name
class(doe_model), intent(in) :: mdl

The fitted DOE model, defined in coded variables. Its nway must be 1 or 2.

integer(kind=int32), intent(in) :: n

The number of factors.

real(kind=real64), intent(out), allocatable, dimension(:) :: z

The stationary point in coded variables. This is allocated only if ok is true.

character(len=:), intent(out), allocatable :: nature

One of maximum, minimum, saddle, singular, or not quadratic.

logical, intent(out) :: ok

True if a unique stationary point was found.

real(kind=real64), intent(out), optional, allocatable, dimension(:) :: eigenvalues

The eigenvalues of the Hessian, in coded variables.