Программная реализация численного интегрирования

 

Было у меня одно задание по "численным методам".  Вот такое:

Вычислить приближенное значение интеграла с помощью формулы

а) прямоугольников, б) трапеций,  в) Симпсона.

 

Величину шага выбрать заранее, сделав вручную оценку погрешности через вторую (случаи а, б) или  четвертую (случай в) производные.

Нужно было написать программу которая вычисляет такой интеграл:

Вы можете изменить формулу в исходнике и подставлять свои пределы интегрирования.

Его точное значение я посчитал вручную. У меня получилось:

 

Немного теории:  

Для приближенного вычисления интеграла  

используются конечные суммы вида

называется квадратурной формулой, где Аk – числовые коэффициенты,  которые называют весами (весовыми коэффициентами) квадратурной формулы, а фиксированные аргументы Xк называют узлами. Очевидно, определенный интеграл приближенно равен среднему взвешенному значений подынтегральной функции, вычисленных в определенных точках промежутка интегрирования. Построение квадратурной формулы сопровождается оценкой погрешности, возникающей при замене интеграла квадратурной формулой.

Один из способов построения квадратурной формулы следующий. Отрезок [а,в] разбивается на несколько равных или неравных интервалов с построением на каждой части самостоятельного интерполяционного многочлена той или иной степени. Интеграл функции по отрезку разбиения заменяется интегралом от интерполяционного многочлена. Полученные интегралы суммируются  по всем отрезкам разбиения. Рассматривая интерполяционные многочлены нулевой степени, получаем метод прямоугольников, первой степени – метод трапеций, второй степени – метод Симпсона.

1.Методы прямоугольников, трапеций и Симпсона - квадратурные формулы с равностоящими узлами
Квадратурные формулы с равностоящими узлами применяются для вычисления интеграла: 

с постоянной весовой функцией и конечным отрезком интегрирования. Пусть на отрезке [a,b] задана функция f(x) . Введем сетку, разбивающую отрезок [a,b] на N равностоящих узлов: 

 

где 

 

Выберем на каждом сегменте серединную точку 

 

и обозначим

Квадратурная формула прямоугольников имеет вид:

Если функции f(x), f'(x), f''(x) непрерывны на отрезке [a,b], то погрешность погрешность формулы прямоугольников оценивается выражением (остаточный член имеет вид):

,где

 Квадратурная формула трапеций имеет вид:

Если функции f(x), f'(x), f''(x) непрерывны на отрезке [a,b], то погрешность погрешность формулы прямоугольников оценивается выражением (остаточный член имеет вид):

, где

 

Также можно взять удвоенный частичный отрезок, обозначив 

 

и 

В результате получим другой вариант формулы Симпсона:

Если функции f(x), f'(x), f''(x) непрерывны на отрезке [a,b], то погрешность погрешность формулы прямоугольников оценивается выражением (остаточный член имеет вид):

,где

Решая неравенство R

 

 

У меня получилась вот такая программа:

Шаг я брал 0,002 (так точнее получается). 

Для квадратурной формулы прямоугольников:

Для квадратурной формулы трапеций

Для квадратурной формулы Симпсона

Из результатов видим: точнее то оказывается формула прямоугольников.

Исходники и готовую программу можете скачать здесь: скачать

dle

Помоги проекту! Расскажи друзьям об этом сайте: