private void button1_Click(object sender, EventArgs eventArgs) { double a = 0, b = 0; if (!double.TryParse(a_TextBox.Text, out a) || !double.TryParse(b_TextBox.Text, out b)) { MessageBox.Show("неправильні дані"); return; } double I = _func.PrimitiveF(b) - _func.PrimitiveF(a); // I - точне значення інтегралу exactRez_TextBox.Text = I.ToString(); //вивести точний результат int n = 1; double In = Qmh(a, b, n); n *= 2; double I2n = Qmh(a, b, n); // наближене значення інтегралу while (Math.Abs((I2n - In) / In) > e) { In = I2n; n *= 2; I2n = Qmh(a, b, n); } approxRez_TextBox.Text = I2n.ToString(); //вивести результат інтегрування n_TextBox.Text = n.ToString(); //вивести кількість розбиттів error_TextBox.Text = Math.Abs(Math.Abs(I) - Math.Abs(I2n)).ToString(); // похибка }
private void button1_Click(object sender, EventArgs eventArgs) { double a = 0, b = 0; int m = 1; if (!double.TryParse(a_TextBox.Text, out a) || !double.TryParse(b_TextBox.Text, out b) || !int.TryParse(m_TextBox.Text, out m)) { MessageBox.Show("неправильні дані"); return; } double I = _func.PrimitiveF(b) - _func.PrimitiveF(a); // I - точне значення інтегралу exactRez_TextBox.Text = I.ToString(); //вивести точний результат double h = (b - a) / m; int n = 4; double[] x = new double[] //вузли { -0.86113631, -0.33998104, 0.33998104, 0.86113631 }; double[] A = new double[] //ваги { 0.34785485, 0.65214515, 0.65214515, 0.34785485 }; double Igauss = 0; for (int j = 0; j <= m - 1; j++) { for (int k = 0; k <= n - 1; k++) { Igauss += A[k] * _func.F(a + j * h + (h / 2) + (h * x[k] / 2)); } } Igauss *= (h / 2); approxRez_TextBox.Text = Igauss.ToString(); //вивести результат інтегрування error_TextBox.Text = Math.Abs(Math.Abs(I) - Math.Abs(Igauss)).ToString(); // похибка }