예제 #1
0
        /// <summary>
        /// Test bisection method.
        /// </summary>
        private static void TestBisec()
        {
            PrintMessage("Test Bisec method:\n\n", ConsoleColor.Green);

            Console.WriteLine("Find root of equation Sin(x) = 0," +
                              $" on the segment [{Left}, {Right}]:" + Environment.NewLine);

            // Types of functions.
            Function[] funcsArr =
            {
                Math.Sin,
                SinX,
                delegate(double x) { return(Math.Sin(x)); },
                x => Math.Sin(x)
            };

            // Types of messages.
            string[] messages =
            {
                "Finding a root using a library function: ",
                "Finding a root using a static method explicitly defined in the program: ",
                "Finding a root using an anonymous method: ",
                "Finding a root using a lambda expression: "
            };

            // Test.
            for (var i = 0; i < 4; i++)
            {
                PrintMessage(messages[i]);
                PrintMessage($"x = {NumMeth.Bisec(Left, Right, EpsX, EpsY, funcsArr[i])}\n",
                             ConsoleColor.Yellow);
            }

            Console.WriteLine();
        }
예제 #2
0
 static void Main(string[] args)
 {
     try
     {
         double a, b, epsX, epsY;
         Console.Write("Введите левую грвницу интервала: ");
         double.TryParse(Console.ReadLine(), out a);
         Console.Write("Введите правую грвницу интервала: ");
         double.TryParse(Console.ReadLine(), out b);
         Console.Write("Введите точность по абсциссе: ");
         double.TryParse(Console.ReadLine(), out epsX);
         Console.Write("Введите точность по ординате: ");
         double.TryParse(Console.ReadLine(), out epsY);
         Console.WriteLine($"Корень функции: {NumMeth.Bisec(a, b, epsX, epsY, Math.Log)}");
         Console.WriteLine($"Корень функции: {NumMeth.Bisec(a, b, epsX, epsY, Log)}");
         Console.WriteLine($"Корень функции: {NumMeth.Bisec(a, b, epsX, epsY, delegate (double x) { return Math.Log(x); })}");
         Console.WriteLine($"Корень функции: {NumMeth.Bisec(a, b, epsX, epsY, x => Math.Log(x))}");
         Console.WriteLine($"Минимум функции cos(x): {NumMeth.Optimum_1(x => Math.Cos(x), 3, 6, 0.001, 0.001)}");
         Console.WriteLine($"Минимум функции x*(x*x-2)-5: {NumMeth.Optimum_1(x => x * (x * x - 2) - 5, 0, 1, 0.001, 0.001)}");
         Console.WriteLine($"Минимум функции -Sin(x)-Sin(3*x)/3 : {NumMeth.Optimum_1(x => -Math.Sin(x) - Math.Sin(3 * x) / 3, 0, 1, 0.001, 0.001)}");
     }
     catch (Exception e)
     {
         Console.WriteLine(e.Message);
     }
 }