Вы на главный вопрос так и не ответили!
Здесь Вам отвечает известный на Ответах Мэйл Ру психически больной, который даже не понял что Вам требуется, и Вы его почему-то не баните, просто прожав дизлайк, следовательно серьёзных ответов на свои вопросы Вам не надо! И ответ Александра тоже совершенно бесполезный, а тогда и его вместе с его дурацким ответом не плохо было бы отправить прямиком в мут, но и он у Вас почему-то до сих пор не в бане, равно как и душевнобольной Фурсов!
А вот как можно сделать автоматизированный расчёт на плюсах то, что Вам действительно нужно:
#include
#include
#include
using namespace std;
double f(double x) { return pow(64. - x * x, -1.5); }
double middle_rectangles(double (*fun)
(double), double a, double b, double n)
{
double h = (b - a) / n, i, s = 0.;
for (i = 0.; i < n; i += 1.) s += fun(a + (i + 0.5) * h);
return s * h;
}
int main()
{
double a = 0., b = 4. * sqrt(3), n, s, s2;
cout.setf(ios::fixed); cout.precision(16);
while (true)
{
cout << "n: "; cin >> n;
s = middle_rectangles(f, a, b, n);
s2 = middle_rectangles(f, a, b, 2. * n);
cout << "Middle Rectangles: " << s2 <<
"\nε (Runge): " << fabs(s2 - s) / 3.<< endl;
}
}
Результаты работы кода в интерактивном сеансе:
Начальное количество интервалов n, равное десяти, умножается на два, то есть всего двадцать равномерных интервалов вполне обеспечивают необходимую точность вычислений в соответствии с оценкой погрешности по правилу Рунге, которая, вообще-то, не очень точная, а поэтому n надо всегда брать избыточным, то есть с неким техническим запасом. А если ещё точность имеется в виду не абсолютная, а относительная, то n требуется брать значительно бо́льшим, а именно не n=10, a n=62.