Формула Симпсона (также Ньютона-Симпсона) относится к приёмам численного интегрирования.
Идея метода заключается в том, чтобы приближать подынтегральную функцию на отрезке [a, b] интерполяционным многочленом второй степени p2(x), то есть приближение графика функции на отрезке параболой.
, (1)
где – значения функции в соответствующих точках (на концах отрезка и в его середине) [1, с. 158-161]. На рис. 2 приведена реализация метода Симпсона для функции. Для оценки точности при получении интегралов методом Симпсона и методом левых прямоугольников будем пользоваться правилом Рунге. Вычислив значение интеграла с шагом h увеличим значение n в два раза и вычислим новое значение интеграла. После чего можно выполнить оценку точности найденного значения интеграла по формуле . (2)
Тогда, при достижении необходимой точности из программы будет возвращаться результат, соответствующей требуемой точности [1-2].
.
Рис. 1. Блок-схема метода Симпсона
Рис. 2. Реализация метода Симпсона на С++
Метод прямоугольников — метод численного интегрирования функции одной переменной, заключающийся в замене подынтегральной функции на многочлен нулевой степени, то есть константу, на каждом элементарном отрезке. Если рассмотреть график подынтегральной функции, то метод будет заключаться в приближённом вычислении площади под графиком суммированием площадей конечного числа прямоугольников, ширина которых будет определяться расстоянием между соответствующими соседними узлами интегрирования, а высота — значением подынтегральной функции в этих узлах. Алгебраический порядок точности равен 0. (Для формулы средних прямоугольников равен 1).
Если отрезок [a, b] является элементарным и не подвергается дальнейшему разбиению, значение интеграла можно найти по формуле левых прямоугольников:
. (3)
В случае разбиения отрезка интегрирования на n элементарных отрезков приведённые выше формулы применяются на каждом из этих элементарных отрезков между двумя соседними узлами. В результате, получаются составные квадратурные формулы.
Формулу с вычислением значения в средней между двумя узлами точке можно применять лишь тогда, когда подынтегральная функция задана аналитически, либо каким-нибудь иным способом, допускающим вычисление значения в произвольной точке. В задачах, где функция задана таблицей значений остаётся лишь вычислять среднее значение между интегралами, посчитанными по формулам левых и правых прямоугольников соответственно, что приводит к составной квадратурной формуле трапеций[1-2]. На рис. 4 приведена реализация метода левых прямоугольников для функции
Рис. 3. Блок-схема метода левых прямоугольников
Рис.4. Реализация метода левых прямоугольников на С++
Таблица
Результат вычисления тестовых примеров с временем счета
Границы интегри-рования |
Пример |
eps |
Simpson |
Time Simpson (мкс) |
Rectangle |
Time Rectangle (мкс) |
Time Simpson/ |
a = 3, |
x4 – 2x3 – 4x2 + x - 1 |
0,1 |
-19,2 |
47 |
-19,1 |
27 |
1,74 |
0,01 |
-19,14 |
86 |
-19,13 |
82 |
1,05 |
||
0,001 |
-19,135 |
238 |
-19,133 |
383 |
0,62 |
||
0,0001 |
-19,1334 |
3089 |
-19,1333 |
5890 |
0,52 |
||
0,00001 |
-19,13333 |
24496 |
-19,13333 |
46925 |
0,52 |
||
a = 1, |
x4 – 3x3 + 4x2 + x - 2 |
0,1 |
3,8 |
45 |
3,8 |
20 |
2,25 |
0,01 |
3,79 |
66 |
3,78 |
47 |
1,40 |
||
0,001 |
3,784 |
145 |
3,78 |
208 |
0,70 |
||
0,0001 |
3,7834 |
1712 |
3,7833 |
3174 |
0,54 |
||
0,00001 |
3,78334 |
15378 |
3,78333 |
29520 |
0,52 |
||
a = 0, |
x4 – 6x2 + 6x + 1 |
0,1 |
4,4 |
63 |
4,4 |
30 |
2,1 |
0,01 |
4,41 |
59 |
4,39 |
25 |
2,36 |
||
0,001 |
4,401 |
209 |
4,399 |
353 |
0,59 |
||
0,0001 |
4,4001 |
1832 |
4,3999 |
3595 |
0,51 |
||
0,00001 |
4,40001 |
11239 |
4,40001 |
21499 |
0,52 |
Мы произвели решение трёх разных примеров с разной заданной точностью. Исходя из результата, мы можем сказать, что метод Симпсона более эффективен при вычислении интегралов при более высокой точности, что можно заметить исходя из наблюдений времени выполнения метода Симпсона и метода левых прямоугольников. При повышении заданной точности метод Симпсона, который при изначальной точности в 0,1 был примерно на 50% медленнее метода левых прямоугольников, принимает значения скорости вычисления интеграла, который примерно в 2 раза выше скорости вычисления аналогичного интеграла методом левых прямоугольников. Исходя из результатов вычислений можем сделать вывод, что метод левых прямоугольников стоит использовать, если в расчётах не принципиальна высокая точность ответа. При заданной точности до 0.01 метод левых прямоугольников будет эффективнее метода Симпсона. Если же при расчётах нужна высокая точность и производительность, то следует использовать метод Симпсона.
Список литературы:
В.М. Вержбицкий – Численные методы. Математический анализ и дифференциальные уравнения: М.: Высшая школа, 2001г. 382с;
М. П. Лапчик, М. И. Рагулина, Е. К. Хеннер – Численные методы; под ред. М. П. Лапчика. Издательский центр "Академия", 2004 г. 384с.
В.И. Ракитин, В.Е. Первушин – Практическое руководство по методам вычислений с приложением программ для персональных компьютеров: Учеб. пособие. – М.: Высш. шк., 1998 г. 383c.;