Нахождение определенного интеграла по точности - C#
Формулировка задачи:
Нужна помощь, надо приложение которое считает определенный интеграл по заданной точности(метод трапеции), мне надо конкретно часть когда которая будет находить n (число интервалов разбиения) по заданной точности(вводится с текстбокса).Как это сделать я вообще не могу понять( Прикрепляю код который есть сейчас но он считает по n - введенному с текстбокса.
double a = Convert.ToDouble(niz.Text);
double b = Convert.ToDouble(verh.Text);
double n = Convert.ToDouble(shag.Text);
//double eps = Convert.ToDouble(tochn.Text);
double h = (b - a) / n;
double res = 0;
double sum = 0;
//double an = 0;
if (radioButton1.Checked)
{
//do
for (x = a; x < b; x += h)
{
sum += (func1(x) + func1(x + h)) / 2;
res = sum * h;
//an = (func1(x) - func1(x + h));
} //while (an > eps);Решение задачи: «Нахождение определенного интеграла по точности»
textual
Листинг программы
private void button1_Click(object sender, EventArgs e)
{
double a = Convert.ToDouble(niz.Text);
double b = Convert.ToDouble(verh.Text);
double eps = Convert.ToDouble(epsil.Text);
int n = 2;
double sum1, sum2 = 0;
do
{
sum1 = sum2;
sum2 = 0;
double h = (b - a) / n;
double x = a + h;
while (x <= b)
{
sum2 += (f(x) + f(x - h)) * h / 2;
x += h;
}
n *= 2;
} while (Math.Abs(sum1 - sum2) > eps);
tbRezult.Text = sum2.ToString();
tbItCount.Text= (n/2).ToString();
}
double f(double x)
{
return Math.Sin(x);
}