Формула трапеций
З
аменим
кривую f
(x)
не ступенчатой линией,
как в
предыдущем случае, а ломаной (рис.4),
соединив
соседние точки (xi, yi). Тогда площадь криволиней-
ной трапеции приближенно будет равняться сумме
площадей прямоуг
ольных
трапеций, ограниченных
сверху отрезками этой ломаной.
Площадь k-й трапеции равняется Рис.4.
Sk
=
(произведение полусуммы оснований на высоту). Здесь уk – 1 и уk – основания трапеции, а xk – xk – 1 = – ее высота. Поэтому
≈
=
.
(4)
Формула (4) называется формулой трапеций.
Формула парабол (Симпсона)
Если
заменить график функции у
= f
(x)
на
каждом частичном отрезке [xi – 1, xi] не прямыми,
а дугами парабол, то получим более точную фор-
мулу приближенного вычисления определенного
интеграла.
Нетрудно показать, что площадь криволи-
нейной трапеции, ограниченной параболой
y = ax2 + bx + c, проходящей через точки А(0, у0),
В(
,
у1),
С(h,
у2),
и прямыми х
= 0, х
= h,
у
= 0 Рис.5.
(рис.5), равна
S
=
=
(
2ah2
+ 3bh
+ 6c)
или в ординатах точек А, В, С,
S = ( у0 + 4у1 + у2 ). (5)
Разобьем отрезок [a, b] на 2n (четное число) равных отрезков точками
a = x0 < x1 < x2 < … < x2n -2 < x2n -1 < x2n = b
и представим интеграл в виде суммы
=
+
+ … +
.
(6)
Проведем
через точки xk
прямые,
параллель-
ные оси Оу, и обозначим через
А=М0, М1, М2, … , М2n -2, М2n -1, М2n =В
точки пересечения этих прямых с кривой у = f (x)
(рис.6). Обозначим через у0, у1, у2, …, у2n-2, у2n-1,
у2n ординаты этих точек. Через каждые три точки
М2k-2, М2k-1, М2k (k = 1,2,…,n) проведем параболу с
вертикальной осью симметрии (через три точки, не Рис.6.
лежащие на одной прямой, можно провести единст-
венную параболу). В результате получим n криволинейных трапеций, ограниченных сверху параболами, площадь каждой из которых по формуле (5) равна
=
(
у2k-2
+ 4у2k-1
+ у2k
).
Подставив в правую часть равенства (4) вместо интегралов их приближенные значения, получим приближенную формулу
= (у0 + у2n + 2(у2 + у4 + …+ у2n-2) + 4(у1 + у3 + …+ у2n-1)). (7)
Эта формула называется формулой парабол, или формулой Симпсона.
2. Порядок выполнения лабораторной работы.
Работа рассчитана на два-три занятия и состоит из нескольких этапов.
На первом этапе преподаватель вкратце напоминает теоретические основы численных методов интегрирования и раздает задания. Примерный перечень вариантов заданий представлен в приложении 1.
На втором этапе преподаватель предлагает воспользоваться математическим пакетом Mathcad для получения значения заданного определенного интеграла и первообразной от его подынтегральной функции. Для этого после вызова Mathcad выходим на панель инструментов Calculus (Вычисления). Для выхода на данную панель (в случае ее отсутствия на экране монитора) в строке меню View (Вид) выбираем подменю Toolbar (Панели инструментов), где выбираем пункт Math (Математика), который и содержит панель инструментов Calculus. Кроме этой панели для выполнения лабораторной работы желательно иметь на экране также панели Calculator (Калькулятор) и Symbolic (Символика).
Н
а
панели инструментов Calculus
«нажимаем кнопку»
(определенный
интеграл). На экране монитора на месте
«крестика»
появится символ . После заполнения местозаполнителей имеется возможность вычислить значение определенного интеграла либо численно, нажатием клавиши «=» на клавиатуре компьютера или панели Calculator, либо символьно, с помощью оператора символьного вывода «→», имеющегося на панелях Symbolic и Evaluation (Выражения). Примеры операторов интегрирования приведены ниже (рис.7).
Рис.7.
Д
ля
получения первообразной от подынтегральной
функции на панели Calculus
«нажимаем кнопку»
(неопределенный интеграл). На экране
монитора появится символ .
Результат
вычисления может быть получен только
символьно с помощью оператора
символьного вывода «→» (рис.8). Рис.8.
Полученные результаты записываются в рабочую тетрадь. Они будут служить эталонами для сравнения с результатами, полученными численно и аналитически в ходе выполнения лабораторной работы.
Замечания.
1. Запись некоторых функций в Mathcad имеет свои особенности. Например, вместо arctg(x) следует набирать atan(x). Полученный результат в виде ln(x)2 означает не ln x2, а ln2 x. Помочь разобраться со встроенными функциями поможет диалоговое окно Insert Function (Вставить функцию), которое вызывается нажатием кнопки f(x) на панели инструментов Standard (Стандартная).
2. Результаты символьного вывода зачастую неоптимизированны и представляют собой довольно сложные выражения, требующими упрощений.
3. Для получения значения заданного определенного интеграла и первообразной от его подынтегральной функции можно воспользоваться также возможностями соответствующих сайтов Интернета.
Третий
этап работы состоит в написании и отладке
тестового варианта работы на знакомом
(и доступном для рабочей ПЭВМ) языке
программирования. Пример программы на
PASCALе
вычисления определенного интеграла
методами прямоугольников (с выбором
точек ξk
в серединах частичных отрезков), трапеций
и парабол, а также результаты работы
программы представлены ниже.
Замечания. Для получения «красивых» таблиц
а) в строковых константах (в кавычках) при наборе их латиницей количество символов должно быть таким же, как и в примере, где они набраны кириллицей;
б) количество пробелов в строковых константах также должно быть таким же, как и в примере. Для этого последовательность количества пределов в строковой константе представлена в комментарии.
program ivanov_oi;
var
a,b,d,sp,st,ss,x1,x2,y1,y2,tr,u:real;
i,n:integer;
function pif(x:real):real;
begin
pif:=exp(1/x)/sqr(x);
end;
function prv(x:real):real;
begin
prv:=-exp(1/x);
end;
begin
writeln('введите границы a,b');
read(a,b);
tr:=prv(b)-prv(a);
writeln('введите число разбиений n');
read(n);
writeln(' Р Е З У Л Ь Т А Т Ы');
writeln;
writeln(' n прямоуг трапеции параболы');
writeln;
d:=(b-a)/n;
sp:=0;
ss:=pif(a)+pif(b);
st:=ss/2;
x1:=a+d/2;
x2:=a;
for i:=1 to n do
begin
y1:=pif(x1);
y2:=pif(x2);
sp:=sp+y1;
if i<>1 then
begin
st:=st+y2;
if i mod 2 =0 then ss:=ss+4*y2 else ss:=ss+2*y2;
end;
x1:=x1+d;
x2:=x2+d;
end;
sp:=sp*d;
st:=st*d;
ss:=ss*d/3;
writeln(n:7,sp:14:6,st:12:6,ss:14:6);
writeln;
writeln('аналитическое решение tr=',tr:10:6);
writeln;
writeln('ошибка метода прямоуг трапеции параболы');
writeln('абсолютная',abs(sp-tr):30:6,abs(st-tr):12:6,abs(ss-tr):14:6);
writeln('относительная',abs((sp-tr)/tr):27:6,abs((st-tr)/tr):12:6,abs((ss-tr)/tr):14:6);
readln;
end.
Окно вывода отлаженной программы должно иметь вид:
введите границы a,b
1
2
введите число разбиений n
100
Р Е З У Л Ь Т А Т Ы
n прямоуг трапеции параболы
100 1.069589 1.069624 1.069561
аналитическое решение tr = 1.069561
ошибка метода прямоуг трапеции параболы
абсолютная 0.000032 0.000064 0.000000
относительная 0.000030 0.000060 0.000000
Отлаженную программу необходимо «запомнить» под своим оригинальным именем на своем компьютере и, что очень желательно (во избежание затирания программы другим пользователем), на дискете или на «флэшке».
Четвертый этап выполнения работы состоит в аналитическом
расчете значения заданного определенного интеграла и его первообразной в рабочей тетради. Данный этап может быть выполнен дома.
Например, пусть
заданный интеграл имеет вид
.
Mathcad выдал следующий результат:
Аналитические
расчеты:
.
Под знаком интеграла стоит рациональная дробь. Разложим подынтегральную функцию на сумму простейших дробей
=
+
+
+
.
Тогда
x4 + 1 = A (x2 + 1) + B x (x2 + 1) + C x2 (x2 + 1) + (D x + E) x3 ,
т.е. x4 + 1 = (C + D) x4 + (B + E) x3 + (A + C) x2 + B x + A .
Отсюда
Решение системы имеет вид: A = 1, B = 0, C = –1, D = 2, E = 0. Т.о.,
=
–
+
.
Следовательно,
=
=
–
+
=
=
=
=
= –
+
–
ln2 + ln1+ ln5 – ln2 = ln
+
.
Пятый этап работы заключается в записи в отлаженную
программу (в раздел описания функций) описания «своей» подынтегральной функции (в предложенной выше программе это pif) и «своей» первообразной (в программе это prv):
function pif(x:real):real; {подынтегральная функция}
begin
pif:=(sqr(x)*sqr(x)+1)/( sqr(x)*x*( sqr(x)+1))
end;
function prv(x:real):real; {первообразная функции}
begin
prv:= –1/(2*x*x) –ln(x)+ln(x*x+1)
end;
При записи функций
следует обратить внимание на операцию
деления. Например, правильная запись
дроби
может иметь вид
sqr(a)*a*b*c/(r*t*sqr(s)),
или
sqr(a)*a*b*c/
r
/ t
/ sqr(s),
или
a*a*a*b*c/(r*t*s*s),
или какой-либо другой, но обязательно
знаменатель должен быть в скобках
или его
множители должны быть отделены друг от
друга операцией / (деление). Числитель
брать в скобки нужно в случае, если это
многочлен.
Другая особенность данного этапа состоит в ограниченности библиотеки встроенных функций PASCALя. Для записи встречающихся в заданиях функций используются функции
sin(x),
cos(x),
sqr t(x) (
),
sqr(x) (x2),
atan(x) (arctg
x),
ln(x),
abs(x) (|x|),
а
также
постоянная
pi (π).
Для записи других функций следует пользоваться тождественными формулами :
tg x
=
,
arcsin x
= arctg
,
arcctg x
=
–
arctg x,
arccos x
= arcctg
.
Еще два замечания:
Так как встроенная функция sqr(x) выполняется значительно дольше, чем операция * (умножение), то при возведении в целую степень при небольших значениях показателя степени желательно использовать операцию умножения.
Если в выражении функции некоторая степень встречается несколько раз, ее желательно вычислить один раз и в дальнейшем использовать вычисленное значение. Например, функцию y = x5 + sin(x5 + x4 – x3) можно описать так:
function primer (x:real):real;
y:real;
begin
y:= x*x*x*x*x;
primer:= y+sin(y+y/x–y/x/x)
end;
Шестой этап представляет собой защиту работы.
Программа пропускается со значениями n, равными 5, 10, 25, 100,1000. При этом необходимо:
1. Знать теоретические основы методов численного интегрирования.
Уметь объяснять полученные результаты, как-то, как и почему влияет на оценку интеграла число разбиений отрезка интегрирования, какой из методов «лучше», т.е. какой из методов быстрее сходится по n к точному значению.
Уметь объяснять функциональное назначение отдельных операторов и мест в программе.
Показать результаты аналитических расчетов в рабочей тетради.
Уметь выполнить интегрирование в Mathcad.
Одним из методов при небольшом значении n вручную получить приближенное значение какого-нибудь простого определенного интеграла, предложенного преподавателем. Для этого может быть использован список таких заданий, предложенный в приложении 2. При выполнении этого задания можно пользоваться калькулятором.
Пример выполнения такого задания представлен ниже.
Примеры выполнения задания ручного счета.
Вычислить приближенно значение интеграла
методом прямоугольников, разбив отрезок интегрирования на n = 4 частичных отрезка и выбрав точки ξk в концах частичных отрезков.
Задача
состоит в вычислении суммы четырех
прямоугольников с основаниями Δх = (4 – 0)/4 = 1
и высотами, равными значению подынтегральной
функции y
=
в точках х
=1,2,3,4.
Составим таблицу
x |
y |
ΔS=Δx y |
1 |
1 |
1 |
2 |
1,25 |
1,25 |
3 |
2 |
2 |
4 |
3,25 |
3,25 |
Искомый интеграл приближенно равен площади ступенчатой фигуры, изображенной на рисунке.
≈ S = 1 + 1,25 + 2 + 3,25 = 7,5.
Непосредственное применение формулы (2) дает тот же результат:
≈
(
1
+ 1,25
+ 2
+ 3,25 ) = 7,5.
Проверка:
=
=
+ 4 +
= 6
.
