public void ChordMethod(double x1, double x2, CurrentFucntion function)
        {
            int iii = 0;
            int N   = 1000;

            double k    = Math.Abs(function(x1) / function(x2));
            double xmid = (x1 + (k * x2)) / (1 + k);

            while (Math.Abs(function(xmid)) > precisionPoint && iii <= N)
            {
                if (DifferentSign(function(x1), function(xmid), function))
                {
                    x2 = xmid;
                }
                else
                {
                    x1 = xmid;
                }

                k    = Math.Abs(function(x1) / function(x2));
                xmid = (x1 + k * x2) / (1 + k);

                iii = iii + 1;
            }

            richTextBox1.AppendText(String.Format(" {0,6:d}   {1,12:f7}  {2,12:f7} {3,12:f7} {4,12:f7} {5,12:f7} {6,12:f7}\n",
                                                  iii, xmid, function(xmid), x1, x2, function(x1), function(x2)));

            CHORDS.Points.AddXY(xmid, 0);
        }
        private void FormInitializer(float x1, float x2, CurrentFucntion function, string functionName)
        {
            ClearForm(); // išvalomi programos duomenys
            PreparareForm(-5, 5, -10, 10);
            SeriesInitializer();

            this.x1 = x1; // izoliacijos intervalo pradžia
            this.x2 = x2; // izoliacijos intervalo galas

            xstep = 0.1F;

            richTextBox1.AppendText("Iteracija         x            F(x)        x1          x2          F(x1)         F(x2)       \n");

            double x = -50;

            for (int i = 0; i < 5000; i++)
            {
                FNC.Points.AddXY(x, function(x));
                x = x + (2 * Math.PI) / 50;

                //Console.WriteLine("x->{0}",x);
                Console.WriteLine("F(x)->{0}", function(x));
            }

            FNC.BorderWidth = 2;
        }
        public void NewtonMethod(double x1, double x2, CurrentFucntion function, CurrentFucntionD functionD)
        {
            int iii = 0;
            int N   = 1000;

            double answer = x1;
            double step   = function(answer) / functionD(x1);

            while (Math.Abs(function(answer)) > precisionPoint && iii <= N)
            {
                step    = step = function(answer) / functionD(x1);
                answer -= step;

                iii++;
            }

            richTextBox1.AppendText(String.Format(" {0,6:d}   {1,12:f7}  {2,12:f7}\n",
                                                  iii, answer, function(answer)));

            NEWTON.Points.AddXY(answer, 0);
        }
        // ---------------------------------------------- KITI METODAI ----------------------------------------------

        /// <summary>
        /// Nustotoma ar f(num1) ir f(num2) ženklai yra skirtingi
        /// </summary>
        private bool DifferentSign(double num1, double num2, CurrentFucntion function)
        {
            return(Math.Sign((double)function(num1)) != Math.Sign((double)function(num2)));
        }
        public void DecreasingIntervalMethod(double xstart, double xend, double step, CurrentFucntion function)
        {
            if (found)
            {
                return;
            }

            if (Math.Abs(Math.Abs(function(xstart + step)) - (Math.Abs(function(xstart)))) > precisionPoint)
            {
                for (double i = xstart; i < xend; i += step)
                {
                    itterations++;

                    if (DifferentSign(i, i + step, function))
                    {
                        DecreasingIntervalMethod(i, i + step, step / 5, function);
                    }
                }
            }
            else
            {
                found = true;

                if (found)
                {
                    richTextBox1.AppendText(String.Format(" {0,6:d}   {1,12:f7}  {2,12:f7} {3,12:f7} {4,12:f7} {5,12:f7} {6,12:f7}\n",
                                                          itterations, xstart + (step / 2), function(xstart + (step / 2)), xstart, xend, function(xstart), function(xend)));

                    ITTERATION.Points.AddXY(xstart, 0);
                    ITTERATION.Points.AddXY(xstart + step, 0);
                }
            }
        }