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(); } }
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); } }