Тульский государственный университет
Кафедра АОТ и ОС
по курсу информатика
"ПРИБЛИЖЕННОЕ ВЫЧИСЛЕНИЕ ЗНАЧЕНИЙ ОПРЕДЕЛЕННОГО ИНТЕГРАЛА"
Тула, 2007
Содержание
Введение
Метод средних прямоугольников
Метод Ньютона-Котеса
Блок-схема основной программы
Блок-схема процедуры: метод трапеций
Блок-схема процедуры: метод Ньютона-Котеса
Блок-схема процедуры: метод Чебышева
Текст программы
Список используемой литературы
На практике редко удается вычислить точно определенный интеграл. Например, в элементарных функциях не вычисляется функция Лапласа
широко используемая в теории вероятностей для вычисления вероятностей, связанных с нормально распределенными случайными величинами.
Задача численного интегрирования состоит в нахождении приближенного значения интеграла:
от непрерывной на отрезке [a, b] функции
Численные методы интегрирования применяются в случаях, когда не удается найти аналитическое выражение первообразной для функции
Пример: Приближенное неравенство
где qj – некоторые числа, xj – некоторые точки отрезка [a, b], называется квадратурной формулой, определяемой весамиqj и узламиxj.
Говорят, что квадратурная формула точна для многочленов степени m, если при замене
Рассмотрим некоторые широко используемые примеры приближенного вычисления определенных интегралов, квадратурные формулы.
Вычисление определенного интеграла геометрически означает вычисление площади фигуры, ограниченной кривой
Обозначим
n – количество шагов.
Формула левых прямоугольников:
Формула правых прямоугольников:
Более точной является формула средних прямоугольников:
Метод трапеций
Площадь под кривой заменяется суммой площадей трапеций:
или
Нетрудно убедиться, что
Поскольку точность вычислений по приведенным формулам зависит от числа разбиений n исходного отрезка [a; b], то вычислительный процесс целесообразно строить итерационным методом, увеличивая n до тех пор, пока не будет выполнено условие
где
Заменим подынтегральную функцию f(x) интерполяционным многочленом Лагранжа:
Тогда
Так как dx=hdq, то
Так как
Окончательно получаем формулу Ньютона-Котеса:
Величины Hi называют коэффициентами Ньютона-Котеса. Они не зависят от f(x). Их можно вычислить заранее для различного числа узлов n (таблица 1).
Формула Ньютона-Котеса с n узлами точна для полиномов степени не выше n. Для получения большей точности не рекомендуется использовать формулы с большим числом узлов, а лучше разбивать отрезок на подотрезки, к каждому из которых применяется формула с одним и тем же небольшим числом узлов.
H | N | |||
1 | 2 | 3 | 4 | |
H0 | 1/2 | 1/6 | 1/8 | 7/90 |
H1 | 1/2 | 2/3 | 3/8 | 16/45 |
H2 | - | 1/6 | 3/8 | 2/15 |
H3 | - | - | 1/8 | 16/45 |
H4 | - | - | - | 7/90 |
Интересно отметить, что из формулы (2) следуют как частные случаи: формула трапеций при n=1
формула Симпсона при n=2
правило трех восьмых при n=3
Формулу (2) при n>6 не применяют, так как коэффициенты Ньютона-Котеса становятся слишком большими и вычислительная погрешность резко возрастает.
П.Л. Чебышев предложил формулу:
в которой коэффициенты ci фиксированы, а хi подлежат определению.
Пользуясь алгебраическими свойствами симметричных многочленов, опустив преобразования, ограничимся готовыми результатами. В таблице 2 приведены значения узлов квадратурной формулы Чебышева для некоторых значений n.
Число интервалов n | Номер узла i | Значение узла Xi |
1 | 12 | 0,2113250,788675 |
2 | 123 | 0,1464470,5000000,853553 |
3 | 1234 | 0,1026730,4062040,5937960,897327 |
4 | 12345 | 0,0837510,3127300,5000000,6872700,916249 |
5 | 123456 | 0,0668770,2887400,3666820,6333180,7122600,933123 |
Для любых пределов интегрирования имеем:
Значения xi берутся из таблицы при выбранном значении n. Для повышения точности можно не только увеличивать количество узлов, но и разбивать отрезок [a, b] на подотрезки, к каждому из которых применяется соответствующая формула. Не рекомендуется применять формулы с большим количеством узлов (n>=8).Доказано, что для n=8 построить квадратурную формулу Чебышева невозможно.
Блок-схема основной программы
Блок-схема процедуры: метод трапеций
Блок-схема процедуры: метод Ньютона-Котеса
Блок-схема процедуры: метод Чебышева
program Curs;
uses crt, graph;
var i, n:integer;
t:byte;
a, b, eps, h:real;
x, sum1, sum2, seps, m0, m1, m2, m3, m4:real;
lf:text;
st:string;
function f (x:real):real;
begin
f:=19.44*exp (0.224*x);
end;
procedure gr (xn, xk:real);
var x, y, mx, my, dx, dy,
ymin, ymax, xh:real;
xb, yb, xm, ym, xl, yv, xp, yn, bord1, bord2, bord3, bord4, xt, yt, xt1, yt1, dxp, dyp, nd, nr, i, kx, ky, k:integer;