subject to
is solved.
using System; using Imsl.Math; public class MinConNLPEx1 : MinConNLP.IFunction { public double F(double[] x, int iact, bool[] ierr) { double result; ierr[0] = false; if (iact == 0) { result = (x[0] - 2.0) * (x[0] - 2e0) + (x[1] - 1.0) * (x[1] - 1.0); return result; } else { switch (iact) { case 1: result = (x[0] - 2.0 * x[1] + 1.0); return result; case 2: result = (-(x[0] * x[0]) / 4.0 - (x[1] * x[1]) + 1.0); return result; default: ierr[0] = true; return 0.0; } } } public static void Main(String[] args) { int m = 2; int me = 1; int n = 2; MinConNLP minconnon = new MinConNLP(m, me, n); minconnon.SetGuess(new double[]{2.0, 2.0}); double[] x = minconnon.Solve(new MinConNLPEx1()); new PrintMatrix("x").Print(x); } }
x 0 0 0.822875655532512 1 0.911437827766256Link to C# source.