## Multi-dimensional Optimization - Function of Four Variables |

This page contains a utility that attempts to compute the minimum value of a function of four variables.

**References:**

The utility posted on this page is a JavaScript translation of the FORTRAN routine UNCMND, by Stephen Nash, which is posted on the NIST site as UNCMND.

From the book "Numerical Methods and Software"

D. Kahaner, C. Moler, and S. Nash

Prentice Hall, 1988

Although all care has been taken to ensure that the sub-routines were translated accurately, some errors may have crept into the translation. These errors are mine; the original FORTRAN routines have been thoroughly tested and work properly. Please report any errors to the webmaster.

The program posted on this page seeks a minimum of the Function, **F**(w, x, y, z), where **F** is the following function:

**F** = A w^{2} + B x^{2} + C y^{2} + D z^{2} +

E w + F x + G y + H z +

I wx + J wy + K xy + L yz +

M xz + N wz +

O x^{2}y + P x^{2}z +

Q x y^{2} + R y^{2}z +

S x z^{2} + T yz^{2}

Values for *all* of these coefficients may not be necessary--in which case, make sure there is a "0" in the unused fields--but, by providing many fields, the intention is to make this program applicable to a wider range of problems.

Optimization in the present context refers to the minimization or maximization of a function. In practice, most programs are designed to seek a minimum of a function, but these programs are equally effective for seeking a maximum of a function
because the task of maximizing a function, **F**, is the same as minimizing **-F**. In other words, if the goal is to find the *largest* value of **F**, multiply the coefficients by -1 before inputting them into the data fields below.

**HOW TO USE THIS UTILITY**

Enter the appropriate values for the coefficients in the data fields below.

Also enter an initial estimate for the solution vector **x**_{o} = (w_{o}, x_{o}, y_{o}, z_{o})^{T}.

(Note that numbers in scientific notation are NOT recognized)

Once you click the "Minimize" button, this utility will seek the solution vector **x** = (w, x, y, z)^{T} that minimize the function **F**. This vector, and the value of **F** at that point, are output--if a minimum can be found.

**IMPORTANT!** Note the error code.

There are functions for which a solution cannot be found. In these cases, the program terminates without finding a solution.

For more information about this program, please see the associated blog post: Multi-dimensional Optimization Routine1