private void btnSubmit_Click(object sender, EventArgs e)
        {
            var cekKosong = this.Controls.OfType <TextBox>().Where((txt) => txt.Text.Length == 0 && txt.Visible == true);

            if (cekKosong.Any())
            {
                MessageBox.Show("Harap masukkan semua pasangan dan pangkat yang ada!");
            }
            else
            {
                listBox1.Items.Clear();
                int      pas    = int.Parse(comboBox1.Text);
                int      pang   = int.Parse(textBox21.Text);
                double[] x      = new double[pas];
                double[] y      = new double[pas];
                double[] yAksen = new double[pas];
                double[] sigX   = new double[pang * 2];
                double[] sigXY  = new double[pang * 2];
                double[] a      = new double[pang + 1];
                double[,] arr = new double[pang + 1, pang + 1];
                double err       = 0;
                var    textBoxes = new TextBox[] { textBox1, textBox2, textBox3, textBox4, textBox5, textBox6, textBox7, textBox8, textBox9, textBox10, textBox11, textBox12, textBox13, textBox14, textBox15, textBox16, textBox17, textBox18, textBox19, textBox20 };
                for (int i = 0; i < pas; i++)
                {
                    x[i]      = double.Parse(textBoxes[i * 2].Text);
                    y[i]      = double.Parse(textBoxes[i * 2 + 1].Text);
                    yAksen[i] = 0;
                }
                for (int i = 0; i < pang * 2; i++)
                {
                    sigX[i]  = 0;
                    sigXY[i] = 0;
                }
                for (int i = 0; i < pang * 2; i++)
                {
                    for (int j = 0; j < pas; j++)
                    {
                        sigX[i]  += Math.Pow(x[j], i + 1);
                        sigXY[i] += Math.Pow(x[j], i) * y[j];
                    }
                }
                double[,] tmp = new double[pang + 1, pang + 1];
                for (int i = 0; i <= pang; i++)
                {
                    for (int j = 0; j <= pang; j++)
                    {
                        if (i == 0 && j == 0)
                        {
                            arr[i, j] = pas;
                        }
                        else
                        {
                            arr[i, j] = sigX[i + j - 1];
                        }
                        tmp[i, j] = arr[i, j];
                    }
                }
                double detA = func.det(arr, pang + 1);
                for (int i = 0; i <= pang; i++)
                {
                    if (i > 0)
                    {
                        for (int j = 0; j <= pang; j++)
                        {
                            arr[j, i - 1] = tmp[j, i - 1];
                        }
                    }
                    for (int j = 0; j <= pang; j++)
                    {
                        arr[j, i] = sigXY[j];
                    }
                    double detI = func.det(arr, pang + 1);
                    a[i] = detI / detA;
                    string kataa = string.Format("a{0} = {0}", i, a[i]);
                    listBox1.Items.Add(kataa);
                }
                double sigE = 0;
                listBox1.Items.Add("|               x               |                y               |                 y'                |              |y-y'|              |");
                for (int i = 0; i < pas; i++)
                {
                    for (int j = 0; j <= pang; j++)
                    {
                        yAksen[i] += a[j] * Math.Pow(x[i], j);
                    }
                    sigE += Math.Pow(yAksen[i] - y[i], 2);
                    err  += Math.Abs(yAksen[i] - y[i]);
                    string kataa = string.Format("   {0:F10}         {1:F10}          {2:F10}               {3:F10}", x[i], y[i], yAksen[i], Math.Abs(y[i] - yAksen[i]));
                    listBox1.Items.Add(kataa);
                }
                string kata = string.Format("Total Error Regresi = {0:F10}", err);
                listBox1.Items.Add(kata);
                kata = string.Format("MSE Regresi = {0:F10}", sigE / pas);
                listBox1.Items.Add(kata);
                double   nilaiX = double.Parse(textBox22.Text);
                double   deltaX = double.Parse(textBox23.Text);
                double[] fx     = new double[3];
                for (int i = 0; i < 3; i++)
                {
                    fx[i] = 0;
                }
                for (int i = 0; i < 3; i++)
                {
                    if (i == 0)
                    {
                        nilaiX -= deltaX;
                    }
                    else
                    {
                        nilaiX += deltaX;
                    }
                    for (int j = 0; j <= pang; j++)
                    {
                        fx[i] += a[j] * Math.Pow(nilaiX, j);
                    }
                    kata = string.Format("f({0}) = {1}", nilaiX, fx[i]);
                    listBox1.Items.Add(kata);
                }
                double bda, fda, cda;
                bda  = (fx[1] - fx[0]) / deltaX;
                fda  = (fx[2] - fx[1]) / deltaX;
                cda  = (fx[2] - fx[0]) / (2 * deltaX);
                kata = string.Format("BDA = {0}", bda);
                listBox1.Items.Add(kata);
                kata = string.Format("CDA = {0}", cda);
                listBox1.Items.Add(kata);
                kata = string.Format("FDA = {0}", fda);
                listBox1.Items.Add(kata);
                listBox1.Items.Add("Error : ");
                double[] error = new double[6];
                error[0] = (Math.Abs(bda - cda) * 100) / bda;
                error[1] = Math.Abs(bda - fda) * 100 / bda;
                error[2] = Math.Abs(cda - bda) * 100 / cda;
                error[3] = Math.Abs(cda - fda) * 100 / cda;
                error[4] = Math.Abs(fda - bda) * 100 / fda;
                error[5] = Math.Abs(fda - cda) * 100 / fda;
                double errorMin = error.Min();
                kata = string.Format("BDA vs CDA = {0:f6}%", error[0]);
                listBox1.Items.Add(kata);
                kata = string.Format("BDA vs FDA = {0:f6}%", error[1]);
                listBox1.Items.Add(kata);
                kata = string.Format("CDA vs BDA = {0:f6}%", error[2]);
                listBox1.Items.Add(kata);
                kata = string.Format("CDA vs FDA = {0:f6}%", error[3]);
                listBox1.Items.Add(kata);
                kata = string.Format("FDA vs BDA = {0:f6}%", error[4]);
                listBox1.Items.Add(kata);
                kata = string.Format("FDA vs CDA = {0:f6}%", error[5]);
                listBox1.Items.Add(kata);
                double[] f = new double[10];
                for (int i = 0; i < 10; i++)
                {
                    f[i] = 0;
                }
                for (int i = -4; i <= 4; i++)
                {
                    for (int j = 0; j < pang + 1; j++)
                    {
                        f[i + 4] += a[j] * Math.Pow(nilaiX + i * deltaX, j);
                    }
                }
                //turunan pertama
                listBox1.Items.Add("Turunan Pertama FDA(2 titik) : ");
                kata = string.Format("f(x) = {0}", f[4]);
                listBox1.Items.Add(kata);
                kata = string.Format("f(x+1) = {0}", f[5]);
                listBox1.Items.Add(kata);
                kata = string.Format("f' = (f(x+1)-f(x))/deltaX = {0}", (f[5] - f[4]) / deltaX);
                listBox1.Items.Add(kata);
                listBox1.Items.Add("Turunan Pertama FDA(3 titik) : ");
                kata = string.Format("f(x) = {0}", f[4]);
                listBox1.Items.Add(kata);
                kata = string.Format("f(x+1) = {0}", f[5]);
                listBox1.Items.Add(kata);
                kata = string.Format("f(x+2) = {0}", f[6]);
                listBox1.Items.Add(kata);
                kata = string.Format("f' = (-3 * f(x) + 4 * f(x+1) - f(x+2)) / (2 * deltaX)= {0}", (-3 * f[4] + 4 * f[5] - f[6]) / (2 * deltaX));
                listBox1.Items.Add(kata);
                listBox1.Items.Add("");
                listBox1.Items.Add("Turunan Pertama CDA(3titik) : ");
                kata = string.Format("f(x-1) = {0}", f[3]);
                listBox1.Items.Add(kata);
                kata = string.Format("f(x+1) = {0}", f[5]);
                listBox1.Items.Add(kata);
                kata = string.Format("f' = (f(x+1) - f(x-1))/(2*deltaX) = {0}", (f[5] - f[3]) / (2 * deltaX));
                listBox1.Items.Add(kata);
                listBox1.Items.Add("");

                listBox1.Items.Add("Turunan Pertama CDA(5titik) : ");
                kata = string.Format("f(x-2) = {0}", f[2]);
                listBox1.Items.Add(kata);
                kata = string.Format("f(x-1) = {0}", f[3]);
                listBox1.Items.Add(kata);
                kata = string.Format("f(x+1) = {0}", f[5]);
                listBox1.Items.Add(kata);
                kata = string.Format("f(x+2) = {0}", f[6]);
                listBox1.Items.Add(kata);
                kata = string.Format("f' = (-f(x+2) + 8 * f(x+1) - 8 * (x-1) + f(x-2)) / (12 * deltaX) =  {0}", (-f[6] + 8 * f[5] - 8 * f[3] + f[2]) / (12 * deltaX));
                listBox1.Items.Add(kata);
                listBox1.Items.Add("");

                listBox1.Items.Add("Turunan Pertama BDA(2 titik) : ");
                kata = string.Format("f(x-1) = {0}", f[3]);
                listBox1.Items.Add(kata);
                kata = string.Format("f(x) = {0}", f[4]);
                listBox1.Items.Add(kata);
                kata = string.Format("f' = (f(x) - f(x-1))/deltaX= {0}", (f[4] - f[3]) / deltaX);
                listBox1.Items.Add(kata);
                listBox1.Items.Add("");


                listBox1.Items.Add("Turunan Pertama BDA(3 titik) : ");
                kata = string.Format("f(x-2) = {0}", f[2]);
                listBox1.Items.Add(kata);
                kata = string.Format("f(x-1) = {0}", f[3]);
                listBox1.Items.Add(kata);
                kata = string.Format("f(x) = {0}", f[4]);
                listBox1.Items.Add(kata);
                kata = string.Format("f' = (-3 * f(x) + 4 * f(x-1) - f(x-2)) / (2 * deltaX)= {0}", (-3 * f[4] + 4 * f[3] - f[2]) / (2 * deltaX));
                listBox1.Items.Add(kata);
                listBox1.Items.Add("");
                //turunan kedua
                listBox1.Items.Add("Turunan kedua FDA(3titik) : ");
                kata = string.Format("f(x) = {0}", f[4]);
                listBox1.Items.Add(kata);
                kata = string.Format("f(x+1) = {0}", f[5]);
                listBox1.Items.Add(kata);
                kata = string.Format("f(x+2) = {0}", f[6]);
                listBox1.Items.Add(kata);
                kata = string.Format("f'' = (f(x+2) - 2 * f(x+1) + f(x)) / (deltaX^2) = {0}", (f[6] - 2 * f[5] + f[4]) / (deltaX * deltaX));
                listBox1.Items.Add(kata);
                listBox1.Items.Add("");


                listBox1.Items.Add("Turunan kedua FDA(4titik) : ");
                kata = string.Format("f(x) = {0}", f[4]);
                listBox1.Items.Add(kata);
                kata = string.Format("f(x+1) = {0}", f[5]);
                listBox1.Items.Add(kata);
                kata = string.Format("f(x+2) = {0}", f[6]);
                listBox1.Items.Add(kata);
                kata = string.Format("f(x+3) = {0}", f[7]);
                listBox1.Items.Add(kata);
                kata = string.Format("f'' = (-f(x+3) + 4 * f(x+2) - 5 * f(x+1) + 2 * f(x)) / (deltaX^2) = {0}", (-f[7] + 4 * f[6] - 5 * f[5] + 2 * f[4]) / (deltaX * deltaX));
                listBox1.Items.Add(kata);
                listBox1.Items.Add("");

                listBox1.Items.Add("Turunan kedua CDA (3 titik): ");
                kata = string.Format("f(x-1) = {0}", f[3]);
                listBox1.Items.Add(kata);
                kata = string.Format("f(x) = {0}", f[4]);
                listBox1.Items.Add(kata);
                kata = string.Format("f(x+1) = {0}", f[5]);
                listBox1.Items.Add(kata);
                kata = string.Format("f'' = (f(x+1) - 2 * f(x) + f(x-1)) / (deltaX^2) = {0}", (f[5] - 2 * f[4] + f[3]) / (deltaX * deltaX));
                listBox1.Items.Add(kata);
                listBox1.Items.Add("");

                listBox1.Items.Add("Turunan kedua CDA (5 titik): ");
                kata = string.Format("f(x-2) = {0}", f[2]);
                listBox1.Items.Add(kata);
                kata = string.Format("f(x-1) = {0}", f[3]);
                listBox1.Items.Add(kata);
                kata = string.Format("f(x) = {0}", f[4]);
                listBox1.Items.Add(kata);
                kata = string.Format("f(x+1) = {0}", f[5]);
                listBox1.Items.Add(kata);
                kata = string.Format("f(x+2) = {0}", f[6]);
                listBox1.Items.Add(kata);
                kata = string.Format("f'' = (-f(x+2) + 16 * f(x+1) - 30 * f(x) + 16 * f(x-1) - f(x-2)) / (12 * deltaX^2) = {0}", (-f[6] + 16 * f[5] - 30 * f[4] + 16 * f[3] - f[2]) / (12 * deltaX * deltaX));
                listBox1.Items.Add(kata);
                listBox1.Items.Add("");

                listBox1.Items.Add("Turunan kedua BDA (3 titik): ");
                kata = string.Format("f(x-2) = {0}", f[2]);
                listBox1.Items.Add(kata);
                kata = string.Format("f(x-1) = {0}", f[3]);
                listBox1.Items.Add(kata);
                kata = string.Format("f(x) = {0}", f[4]);
                listBox1.Items.Add(kata);
                kata = string.Format("f'' = (f(x) - 2 * f(x-1) + f(x-2)) / (deltaX^2) = {0}", (f[4] - 2 * f[3] + f[2]) / (deltaX * deltaX));
                listBox1.Items.Add(kata);
                listBox1.Items.Add("");

                listBox1.Items.Add("Turunan kedua BDA (4 titik): ");
                kata = string.Format("f(x-3) = {0}", f[1]);
                listBox1.Items.Add(kata);
                kata = string.Format("f(x-2) = {0}", f[2]);
                listBox1.Items.Add(kata);
                kata = string.Format("f(x-1) = {0}", f[3]);
                listBox1.Items.Add(kata);
                kata = string.Format("f(x) = {0}", f[4]);
                listBox1.Items.Add(kata);
                kata = string.Format("f'' = (-f(x-3) + 4 * f(x-2) - 5 * f(x-1) + 2 * f(x)) / (deltaX^2) = {0}", (-f[1] + 4 * f[2] - 5 * f[3] + 2 * f[4]) / (deltaX * deltaX));
                listBox1.Items.Add(kata);
                listBox1.Items.Add("");
                //turunan ketiga
                listBox1.Items.Add("Turunan Ketiga FDA (4 titik): ");
                kata = string.Format("f(x) = {0}", f[4]);
                listBox1.Items.Add(kata);
                kata = string.Format("f(x+1) = {0}", f[5]);
                listBox1.Items.Add(kata);
                kata = string.Format("f(x+2) = {0}", f[6]);
                listBox1.Items.Add(kata);
                kata = string.Format("f(x+3) = {0}", f[7]);
                listBox1.Items.Add(kata);
                kata = string.Format("f''' = (f(x+3) - 3 * f(x+2) + 3 * f(x+1) - f(x)) / (delta^3) = {0}", (f[7] - 3 * f[6] + 3 * f[5] - f[4]) / Math.Pow(deltaX, 3));
                listBox1.Items.Add(kata);
                listBox1.Items.Add("");

                listBox1.Items.Add("Turunan Ketiga CDA (5 titik): ");
                kata = string.Format("f(x-2) = {0}", f[2]);
                listBox1.Items.Add(kata);
                kata = string.Format("f(x-1) = {0}", f[3]);
                listBox1.Items.Add(kata);
                kata = string.Format("f(x+1) = {0}", f[5]);
                listBox1.Items.Add(kata);
                kata = string.Format("f(x+2) = {0}", f[6]);
                listBox1.Items.Add(kata);
                kata = string.Format("f''' = (f(x+2) - 2 * f(x+1) + 2 * f(x-1) - f(x-2)) / 2 * deltaX^ 3 = {0}", (f[6] - 2 * f[5] + 2 * f[3] - f[2]) / 2 * Math.Pow(deltaX, 3));
                listBox1.Items.Add(kata);
                listBox1.Items.Add("");

                listBox1.Items.Add("Turunan Ketiga BDA (4 titik): ");
                kata = string.Format("f(x-3) = {0}", f[1]);
                listBox1.Items.Add(kata);
                kata = string.Format("f(x-2) = {0}", f[2]);
                listBox1.Items.Add(kata);
                kata = string.Format("f(x-1) = {0}", f[3]);
                listBox1.Items.Add(kata);
                kata = string.Format("f(x) = {0}", f[4]);
                listBox1.Items.Add(kata);
                kata = string.Format("f''' = (-f(x-3) + 3 * f(x-2) - 3 * f(x-1) + f(x)) / deltaX^ 3 = {0}", (-f[1] + 3 * f[2] - 3 * f[3] + f[4]) / Math.Pow(deltaX, 3));
                listBox1.Items.Add(kata);
                listBox1.Items.Add("");
                //turunan keempat
                listBox1.Items.Add("Turunan Keempat FDA (5 titik): ");
                kata = string.Format("f(x) = {0}", f[4]);
                listBox1.Items.Add(kata);
                kata = string.Format("f(x+1) = {0}", f[5]);
                listBox1.Items.Add(kata);
                kata = string.Format("f(x+2) = {0}", f[6]);
                listBox1.Items.Add(kata);
                kata = string.Format("f(x+3) = {0}", f[7]);
                listBox1.Items.Add(kata);
                kata = string.Format("f(x+4) = {0}", f[8]);
                listBox1.Items.Add(kata);
                kata = string.Format("f'''' = (f(x+4) - 4 * f(x+3) + 6 * f(x+2) - 4 * f(x+1) + f(x)) / delta^4 = {0}", (f[8] - 4 * f[7] + 6 * f[6] - 4 * f[5] + f[4]) / Math.Pow(deltaX, 4));
                listBox1.Items.Add(kata);
                listBox1.Items.Add("");

                listBox1.Items.Add("Turunan Keempat CDA (5 titik): ");
                kata = string.Format("f(x-2) = {0}", f[2]);
                listBox1.Items.Add(kata);
                kata = string.Format("f(x-1) = {0}", f[3]);
                listBox1.Items.Add(kata);
                kata = string.Format("f(x) = {0}", f[4]);
                listBox1.Items.Add(kata);
                kata = string.Format("f(x+1) = {0}", f[5]);
                listBox1.Items.Add(kata);
                kata = string.Format("f(x+2) = {0}", f[6]);
                listBox1.Items.Add(kata);
                kata = string.Format("f'''' = (f(x+2) - 4 * f(x+1) + 6 * f(x) - 4 * f(x-1) + f(x-2)) / delta^4 = {0}", (f[6] - 4 * f[5] + 6 * f[4] - 4 * f[3] + f[2]) / Math.Pow(deltaX, 4));
                listBox1.Items.Add(kata);
                listBox1.Items.Add("");

                listBox1.Items.Add("Turunan Keempat BDA (5 titik): ");
                kata = string.Format("f(x-4) = {0}", f[0]);
                listBox1.Items.Add(kata);
                kata = string.Format("f(x-3) = {0}", f[1]);
                listBox1.Items.Add(kata);
                kata = string.Format("f(x-2) = {0}", f[2]);
                listBox1.Items.Add(kata);
                kata = string.Format("f(x-1) = {0}", f[3]);
                listBox1.Items.Add(kata);
                kata = string.Format("f(x) = {0}", f[4]);
                listBox1.Items.Add(kata);
                kata = string.Format("f'''' = (f(x-4) - 4 * f(x-3) + 6 * f(x-2) - 4 * f(x-1) + f(x)) / delta^4 = {0}", (f[0] - 4 * f[1] + 6 * f[2] - 4 * f[3] + f[4]) / Math.Pow(deltaX, 4));
                listBox1.Items.Add(kata);
                listBox1.Items.Add("");
            }
        }
示例#2
0
        private void btnSubmit_Click(object sender, EventArgs e)
        {
            int  m, n;
            bool isNumeric1 = int.TryParse(comboBox1.Text, out m);
            bool isNumeric2 = int.TryParse(comboBox2.Text, out n);

            if (isNumeric1 && isNumeric2)
            {
                var cekKosong = this.Controls.OfType <TextBox>().Where((txt) => txt.Text.Length == 0 && txt.Visible == true);
                dgvHasil.Rows.Clear();
                if (cekKosong.Any())
                {
                    MessageBox.Show("Harap masukkan semua pasangan dan pangkat yang ada!");
                }
                else
                {
                    listBox1.Items.Clear();
                    int      pas    = int.Parse(comboBox1.Text);
                    int      pang   = int.Parse(comboBox2.Text);
                    double[] x      = new double[pas];
                    double[] y      = new double[pas];
                    double[] yAksen = new double[pas];
                    double[] sigX   = new double[pang * 2];
                    double[] sigXY  = new double[pang * 2];
                    double[] a      = new double[pang + 1];
                    double[,] arr = new double[pang + 1, pang + 1];
                    double err       = 0;
                    var    labels    = new Label[] { label3, label4, label5, label6 };
                    var    textBoxes = new TextBox[] { textBox1, textBox2, textBox3, textBox4, textBox5, textBox6, textBox7, textBox8, textBox9, textBox10, textBox11, textBox12, textBox13, textBox14, textBox15, textBox16, textBox17, textBox18, textBox19, textBox20 };
                    for (int i = 0; i < pas; i++)
                    {
                        x[i]      = double.Parse(textBoxes[i * 2].Text);
                        y[i]      = double.Parse(textBoxes[i * 2 + 1].Text);
                        yAksen[i] = 0;
                    }
                    for (int i = 0; i < pang * 2; i++)
                    {
                        sigX[i]  = 0;
                        sigXY[i] = 0;
                    }
                    for (int i = 0; i < pang * 2; i++)
                    {
                        for (int j = 0; j < pas; j++)
                        {
                            sigX[i]  += Math.Pow(x[j], i + 1);
                            sigXY[i] += Math.Pow(x[j], i) * y[j];
                        }
                    }
                    double[,] tmp = new double[pang + 1, pang + 1];
                    for (int i = 0; i <= pang; i++)
                    {
                        for (int j = 0; j <= pang; j++)
                        {
                            if (i == 0 && j == 0)
                            {
                                arr[i, j] = pas;
                            }
                            else
                            {
                                arr[i, j] = sigX[i + j - 1];
                            }
                            tmp[i, j] = arr[i, j];
                        }
                    }
                    double detA = func.det(arr, pang + 1);
                    for (int i = 0; i <= pang; i++)
                    {
                        if (i > 0)
                        {
                            for (int j = 0; j <= pang; j++)
                            {
                                arr[j, i - 1] = tmp[j, i - 1];
                            }
                        }
                        for (int j = 0; j <= pang; j++)
                        {
                            arr[j, i] = sigXY[j];
                        }
                        double detI = func.det(arr, pang + 1);
                        a[i] = detI / detA;
                        string kataa = string.Format("a{0} : ", i);
                        labels[i].Text    = kataa + a[i].ToString();
                        labels[i].Visible = true;
                    }
                    double sigE = 0;
                    for (int i = 0; i < pas; i++)
                    {
                        for (int j = 0; j <= pang; j++)
                        {
                            yAksen[i] += a[j] * Math.Pow(x[i], j);
                        }
                        sigE += Math.Pow(yAksen[i] - y[i], 2);
                        err  += Math.Abs(yAksen[i] - y[i]);
                        dgvHasil.Rows.Add(x[i].ToString("n10"), y[i].ToString("n10"), yAksen[i].ToString("n10"), (Math.Abs(yAksen[i] - y[i])).ToString("n10"));
                    }
                    string kata = string.Format("Total Error Regresi = {0:F10}", err);
                    listBox1.Items.Add(kata);
                    kata = string.Format("MSE Regresi = {0:F10}", sigE / pas);
                    listBox1.Items.Add(kata);
                    double   nilaiX = double.Parse(textBox21.Text);
                    double[] fx     = new double[3];
                    for (int i = 0; i < 3; i++)
                    {
                        fx[i] = 0;
                    }
                    double deltaX = double.Parse(textBox22.Text);
                    for (int i = 0; i < 3; i++)
                    {
                        if (i == 0)
                        {
                            nilaiX -= deltaX;
                        }
                        else
                        {
                            nilaiX += deltaX;
                        }
                        for (int j = 0; j <= pang; j++)
                        {
                            fx[i] += a[j] * Math.Pow(nilaiX, j);
                        }
                        kata = string.Format("f({0}) = {1}", nilaiX, fx[i]);
                        listBox1.Items.Add(kata);
                    }
                    double bda, fda, cda;
                    bda  = (fx[1] - fx[0]) / deltaX;
                    fda  = (fx[2] - fx[1]) / deltaX;
                    cda  = (fx[2] - fx[0]) / (2 * deltaX);
                    kata = string.Format("BDA = {0}", bda);
                    listBox1.Items.Add(kata);
                    kata = string.Format("CDA = {0}", cda);
                    listBox1.Items.Add(kata);
                    kata = string.Format("FDA = {0}", fda);
                    listBox1.Items.Add(kata);
                    listBox1.Items.Add("Error : ");
                    double[] error = new double[6];
                    error[0] = (Math.Abs(bda - cda) * 100) / bda;
                    error[1] = Math.Abs(bda - fda) * 100 / bda;
                    error[2] = Math.Abs(cda - bda) * 100 / cda;
                    error[3] = Math.Abs(cda - fda) * 100 / cda;
                    error[4] = Math.Abs(fda - bda) * 100 / fda;
                    error[5] = Math.Abs(fda - cda) * 100 / fda;
                    double errorMin = error.Min();
                    kata = string.Format("BDA vs CDA = {0:f6}%", error[0]);
                    listBox1.Items.Add(kata);
                    kata = string.Format("BDA vs FDA = {0:f6}%", error[1]);
                    listBox1.Items.Add(kata);
                    kata = string.Format("CDA vs BDA = {0:f6}%", error[2]);
                    listBox1.Items.Add(kata);
                    kata = string.Format("CDA vs FDA = {0:f6}%", error[3]);
                    listBox1.Items.Add(kata);
                    kata = string.Format("FDA vs BDA = {0:f6}%", error[4]);
                    listBox1.Items.Add(kata);
                    kata = string.Format("FDA vs CDA = {0:f6}%", error[5]);
                    listBox1.Items.Add(kata);
                    kata = string.Format("Perbandingan error Regresi dengan nilai Error turunan terkecil:");
                    listBox1.Items.Add(kata);
                    kata = string.Format("Error turunan terkecil = {0:F6}", errorMin);
                    listBox1.Items.Add(kata);
                    kata = string.Format("Error Regresi = {0:F6}", err);
                    listBox1.Items.Add(kata);
                }
            }
            else
            {
                MessageBox.Show("Harap masukkan jumlah pasangan/pangkat terlebih dahulu!");
            }
        }