using System; using System.Collections.Generic; using System.Linq; using System.Text; using V = Science.Mathematics.VectorCalculus; namespace VectorCalculus5Ed.Chapter3.Section4 { public class Example08 { public Example08() { } private string result; public string Result { get{return result;} } public void Compute() { Science.Mathematics.Function.ToLastType f = new Science.Mathematics.Function.ToLastType(func); Science.Mathematics.Function.ToLastType g = new Science.Mathematics.Function.ToLastType(gf); double[] x = { 1.0, 1.0, 2.0 }; double[] l = { 0.4 }; V.LagrangeMultiplierMethod obj = new V.LagrangeMultiplierMethod(f, g, x, l); obj.Compute(); result += obj.CriticalPoint[0].ToString() + "\r\n"; result += obj.CriticalPoint[1].ToString() + "\r\n"; result += obj.CriticalPoint[2].ToString() + "\r\n"; result += obj.LagrangeMultiplier[0].ToString() + "\r\n"; result += func(obj.CriticalPoint).ToString() + "\r\n"; } private double func(double[] x) { return x[0] + x[1] + x[2]; } private double[] gf(double[] x) { double[] y = new double[1]; y[0] = x[0] * x[0] + x[1] * x[1] + x[2] * x[2] - 1.0; return y; } } } /* 0.577350269189598 0.577350269189688 0.577350269189591 0.86602540378439 1.73205080756888 */