Esempio n. 1
0
 private void Button1_Click(object sender, System.EventArgs e)
 {
     if (checkBox1.Checked)
     {
         bools[0]       = true;
         polynomials[0] = new LagrangePolynomial(points);
     }
     else
     {
         bools[0] = false;
     }
     if (checkBox2.Checked)
     {
         int degree = 0;
         try
         {
             degree = Convert.ToInt32(textBox1.Text);
         }
         catch (FormatException)
         {
             DialogResult dialog = MessageBox.Show("Лабуда якась записана в полі порядку апроксимації: \n " + textBox1.Text, "Помилка!", MessageBoxButtons.OK, MessageBoxIcon.Error);
             return;
         }
         if (degree < points.Count)
         {
             polynomials[1] = new LeastSquaresPolynomial(points, degree);
             if (polynomials[1].CoefficientVector == null)
             {
                 bools[1] = false;
             }
             else
             {
                 bools[1] = true;
             }
         }
         else
         {
             DialogResult dialog = MessageBox.Show("Порядок полінома для апроксимації більше або рівний кількості заданих точок!", "Помилка!", MessageBoxButtons.OK, MessageBoxIcon.Error);
         }
     }
     else
     {
         bools[1] = false;
     }
     if (points.Count > 0 && (bools[0] || bools[1]))
     {
         UpdateTogetherSpline();
     }
 }
Esempio n. 2
0
        private void Button3_Click(object sender, EventArgs e)
        {
            int degree = -1;

            try
            {
                degree = Convert.ToInt32(textBox3.Text);
            }
            catch (FormatException)
            {
                DialogResult dialog = MessageBox.Show("Лабуда якась записана в полі порядку екстраполяції: \n " + textBox3.Text, "Помилка!", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }
            List <int> nums;

            if ((nums = GetPointForX(0)).Count != 0)
            {
                foreach (int i in nums)
                {
                    points.RemoveAt(i);
                }
            }
            if ((nums = GetPointForX(6)).Count != 0)
            {
                foreach (int i in nums)
                {
                    points.RemoveAt(i);
                }
            }
            if (degree < points.Count)
            {
                Polynomial extra = new LeastSquaresPolynomial(points, degree);
                AddPoint(0, extra.Solve(0));
                AddPoint(6, extra.Solve(6));
                Update();
            }
            else
            {
                DialogResult dialog = MessageBox.Show("Порядок полінома для ектраполяції більше або рівний кількості заданих точок!", "Помилка!", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }