Вычисление интеграла с помощью метода трапеций на компьютере

МОСКОВСКИЙ ГОСУДАРСТВЕННЫЙ СТРОИТЕЛЬНЫЙУНИВЕРСИТЕТ КУРСОВАЯ РАБОТАтема Вычисление определ нного интегралас помощью метода трапецийна компьютере Выполнил студент ф-таЭОУС-1-12Принял Зоткин С. П.Москва 20011. Введение Определенный интеграл отфункции, имеющей неэлементарную первообразную, можно вычислить с помощью тойили иной приближенной формулы. Для решения этой задачи на компьютере, можновоспользоваться формулами прямоугольников, трапеций или формулой Симпсона.В данной работе рассматривается формула трапеций.Пусть I f x dx, где f x непрерывная функция, которую мы для наглядности будем предполагатьположительной.

Тогда I представит собой площадь криволинейной трапеции, ограниченной линиями x a, x b, y 0, y f x . Выберем какое-нибудь натуральное числоn и разложим отрезок a,b на n равных отрезков при помощи точек x0 a lt x1 lt lt xn b. Прямые x xi разбивают интересующую наскриволинейную трапецию на nполосок.Примемкаждую из этих полосок за обыкновенную прямолинейную трапецию рис. 1, где n 4 . рис. 1Тогда площадь первойслева полоски будет приближенно выражаться числом f x0 f x1 2 x1-x0 y0 y1 2 b-a n ,ибо основания трапеции,за которую мы принимаем полоску, равны f x0 y0 и f x1 y1,а высота е x1-x0 b-a n.Аналогично площадидальнейших полосок выразятся числами y1 y2 b-a 2 n , y2 y3 b- a 2 n , , yn-1 yn b-a 2 n .Значит, для нашегоинтеграла получается формулаI b-a 2 n y0 2 y1 yn-1 yn .Пологая для краткости y0 yn Yкр крайние , y1 y2 yn-1 Yпром промежуточные , получим ydx b-a 2 n Yкр 2 Yпром Эту формулу можнозаписать в другом виде f x dx h 2 f a f b 2 f xi где h длина одного из n равных отрезков, xi a i h . Эта приближенная формула и называется формулой трапеций. Она оказываетсятем более точной, чем больше взятое нами число n. Погрешность одного шагавычисляется по формуле - h 12. Задача. Пустьнужно проинтегрировать функцию f x x sup3 2x sup2 -3x-8 наотрезке 0, 6 . На этом отрезке функция непрерывна.

Для выполненияпоставленной задачи составлена нижеописанная программа, приближенно вычисляющая определенный интегралс помощью метода трапеций. Программа состоит из трех функций main, f и trap. Функция main позволяет ввести интервалыинтегрирования и задать точность вычисления интеграла, а также вызывает функциюtrap для вычисления интеграла и распечатывает на экране результат.

Функция f принимает аргумент x типа float и возвращает значение интегрируемойфункции в этой точке.

Trap основная функция программы онавыполняет все вычисления, связанные с нахождением определенного интеграла.

Trap принимает четыре параметра пределыинтегрирования типа float a и b , допустимую относительную ошибку типа float и указатель на интегрируемуюфункцию. Вычисления выполняются до тех пор, пока относительная ошибка,вычисляемая по формуле S-Sn , не будет меньше или равна требуемой.Функцияреализована с экономией вычислений, т. е. учитывается, что S0 постоянная и S1 S1 f a 2 i 1 h , поэтому эти значения вычисляются единожды. Метод трапеций обладает высокой скоростью вычисления, но меньшейточностью, чем метод Симпсона, поэтому его применение удобно там,где не требуется очень высокая точность.

Ниже предлагается блок-схема,листинг, спецификации, ручной счет и результат работы программы на примере поставленной вышезадачи.Блок-схема позволяет отследить и понятьособенности алгоритма программы, спецификации дают представление о назначениикаждой переменной в основной функции trap, листинг - исходный код работающей программы скомментариями, а ручной счет предоставляет возможностьпроанализировать результаты выполнения программы. 2. Блок-схема программы ДА НЕТ i 1 S1 S1 f a 2 i 1 h i n 3. Листинг include lt stdio.h gt include lt math.h gt include lt conio.h gt main doublea,b,er,eps,f double ,s,trap double,double,double,double double clrscr printf nЗадайте пределы интегрирования и точность scanf lf lf lf , amp a, amp b, amp eps s trap a,b,eps,f printf n Интеграл от a 3.2lf до b 3.2lf равен lf ,a,b,s getch double f double x return x x x 2 x x -3 x-8 double trap double a,double b,doubleeps,double f double double h,s,s0,s1,sn int i,n s 1 sn 101 n 4 s0 f a f b 2 s1 f a b 2 while fabs s-sn gt eps sn s h b-a n for i 0 i lt n 2 i s1 f a 2 i 1 h s h s0 s1 n 2 return s 4. Нижний предел интегрирования b double Верхний предел интегрирования h double шаг разбиения отрезка eps double допустимая относительная ошибка f double указатель на интегрируемую фун - цию x double аргумент ф-ии f s double текущий результат интегрирования s0 double половина суммы значений функции в точках a и b s1 double сумма значений функции в промежуточных точках sn double предыдущий результат интегрирования 5. Ручной счет Xi Yi 0 -8 0,75 -8,703125 1,5 -4,625 2,25 6,765625 3 28 3,75 61,609375 4,5 110,125 5,25 176,6. Результат работы программы при eps 0.1 при eps 0.001 Введите a, b,eps Введите a, b,eps 0 0 6 6 .1 .001 Интеграл 4170 Интеграл 366.000094 т.е с помощью этой программы можновычислить интеграл от функции с точностью до 1 10000.