示例#1
0
        static void Main(string[] args)
        {
            Parser p      = new Parser("((x-0,5)^2 - 1)^4-(y-0,1)*((y-0,1)^3)");
            double answer = p.calc(-0.3361, -0.2010);

            double rad = 2;

            double[] Y   = new double[2];
            double[] X   = new double[2];
            double[] Xok = new double[2];
            int      m   = 1000;
            int      j   = 1;

            X[0] = 2;  X[1] = 2;
            double cal, calx;

            Random rx = new Random();

            double[] ar = new double[2];
            double   a, b;

            while (j <= m)
            {
                rad   = Math.Sqrt(X[0] * X[0] + X[1] * X[1]);
                a     = -rad; b = rad;
                ar[0] = rx.NextDouble() * (b - a) + a;
                ar[1] = rx.NextDouble() * (b - a) + a;
                Y     = ravn_rasp(ar);
                cal   = p.calc(Y[0], Y[1]);
                if (cal < 0)
                {
                    X[0] = Y[0];
                    X[1] = Y[1];
                }
                else if (j < m)
                {
                    j = j + 1;
                }
                else if (j == m)
                {
                    Xok[0] = X[0];
                    Xok[1] = X[1];
                    j      = j + 1;
                }
            }
            //Console.WriteLine("x={0}, y={1}, f={2}", Xok[0], Xok[1], cal);

            calx = p.calc(Xok[0], Xok[1]);
            Console.WriteLine("x(1)={0}, x(2)={1}, f(x)={2}", Xok[0], Xok[1], calx);

            Console.ReadKey();
        }