Доброго времени суток всем заинтересовавшимся!
Прошу помощи в поиске ошибки, хотелось бы с подробным объяснением.
Задание: вычислить значение интеграла трёх функций с заданными интервалом, разбиениями и точностью, используя следующие методы: метод левых прямоугольников, трапеций, парабол (Симпсона), Буля. Предполагается исследовательская направленность задания, поэтому в том числе нужно выводить на экран количество итераций (а именно сравнений текущего значения интеграла и его значения при удвоенном разбиении (эти величины сравниваются до тех пор, пока не станут меньше точности) ).
Формула для метода Симпсона (из задания):
Int=h/3*(y0+yn +2*S1+4*S2),
S1=y2+y4+y6+y8+…
S2=y1+y3+y5+y7+…
n кратно двум - количество разбиений
Проблема: Метод парабол. Значение интеграла считается правильно, количество итераций - неприлично большое (должно быть не больше трёх по словам педагога). Странность, которую удалось обнаружить: количество разбиений удваивается, по идее значение интеграла должно приблизиться к ответу. Вместо этого оно сначала от него удаляется, потом начинает медленно приближаться. Ещё одна странность: вот это формула для метода Буля
Int=4*h/90*(7*(y0+yn)+14*S1+32*S2+12*S3),
S1=y4+y8+y12+y16+…
S2=y1+y3+y5+y7+…
S3=y2+y6+y10+y14+…
n кратно четырём- количество разбиений
Т.е. приблизительно такой же алгоритм, который считается идеально и с количеством итераций всё нормально.
Ну и выстрел в голову: Я поняла формулу так, что y1,y3,y5... - значение функции в аргументе номер 1,3,5... Аналогично для y2,y4,y6
Что сказал педагог: y1,y3,y5... - значение функции в нечётном аргументе. Но даже если так, как я определю чётность аргумента, если это у меня вещественное число...
В общем, уже шарики за ролики едут. Помогите, пожалуйста, разобраться.