Newton() public method

public Newton ( int n, Array x, Array f ) : void
n int
x Array
f Array
return void
Example #1
0
        private void button1_Click(object sender, EventArgs e)
        {
            method = comboBox1.SelectedIndex;
            number = int.Parse((string)comboBox2.SelectedItem);

            if (method == 2 || method == 3 && number > 5)
            {
                number = 5;
            }

            if (method == 1)
            {
                if (number > 11)
                {
                    number = 11;
                }

                series = new Series(1.6, number, f);
            }

            else if (method == 0)
            {
                double[] fy = new double[number + 1];
                double   h  = 3.2 / number;
                double   x  = -1.6;

                for (int i = 0; i <= number; i++)
                {
                    fy[i] = f(x);
                    x    += h;
                }

                inter = new Interpolate();
                coeff = inter.ChebyshevCalculateCoefficients(number, fy);
            }

            else if (method == 2)
            {
                lx = new double[Split, number + 1];
                ly = new double[Split, number + 1];
                double[] y = new double[number + 1];
                double[] z = new double[number + 1];
                double   h = 3.2 / (number * Split);
                double   x = -1.6;
                inter = new Interpolate();

                for (int i = 0; i < Split; i++)
                {
                    for (int j = 0; j <= number; j++)
                    {
                        z[j] = lx[i, j] = x;
                        y[j] = ly[i, j] = f(x);
                        x   += h;
                    }
                }

                inter = new Interpolate();
            }

            else if (method == 3)
            {
                nx = new double[Split, number + 1];
                ny = new double[Split, number + 1];
                double[] y = new double[number + 1];
                double[] z = new double[number + 1];
                double   h = 3.2 / (number * Split);
                double   x = -1.6;
                inter = new Interpolate();

                for (int i = 0; i < Split; i++)
                {
                    for (int j = 0; j <= number; j++)
                    {
                        z[j] = nx[i, j] = x;
                        y[j] = f(x);
                        x   += h;
                    }

                    inter.Newton(number, z, y);

                    for (int j = 0; j <= number; j++)
                    {
                        ny[i, j] = y[j];
                    }
                }
            }

            else if (method == 4)
            {
                double h = 3.2 / number;
                double x = -1.6;
                complex = new Complex();
                cy      = new Complex[number + 1];
                tx      = new double[number + 1];
                ty      = new double[number + 1];

                for (int j = 0; j <= number; j++)
                {
                    tx[j] = x;
                    ty[j] = f(x);
                    x    += h;
                }

                cy = complex.DFT(ty);
            }

            panel1.Invalidate();
        }