Заменим дугу АВ стягивающей ее хордой, получим прямолинейную трапецию аАВb, площадь которой примем за приближенное значение интеграла
|
y
0 a b x
рис 1.3.1 Криволинейная трапеция
Рис. 1.3.2. Метод трапеций.
Рис. 1.3.3. Метод средних прямоугольников.
По методам трапеций и средних прямоугольников соответственно интеграл равен сумме площадей прямоугольных трапеций, где основание трапеции какая-либо малая величина (точность), и сумма площадей прямоугольников, где основание прямоугольника какая-либо малая величина (точность), а высота определяется по точке пересечения верхнего основания прямоугольника, которое график функции должен пересекать в середине. Соответственно получаем формулы площадей —
для метода трапеций:
,
для метода средних прямоугольников:
.
1.4. Общая формула Симпсона (параболическая формула)
Пусть n=2m есть четное число и yi=f(xi) (i=0,1,2...n) - значения функции y=f(x) для равноотстоящих точек а=x0,x1,...,xn=b с шагом
Применив формулу Симпсона к каждому удвоенному промежутку [x0,x2], [x2,x4]... [x2m-2,x2m] длины 2h и введя обозначения
s1=y1+y2+... +y2m-1
s2=y2+y4+... +y2m
получим обобщенную формулу Симпсона:
Остаточный член формулы Симпсона в общем виде:
где xk I (x2к-2,x2к)
Квадратурная формула Чебышева
Рассмотрим квадратурную формулу вида:
функцию f(x) будем исать в виде когда f(x) многочлен вида f(x)=ao+a1x+...+anxn. Проинтегрировав, преобразовав и подставив значения многочлена в узлах
f(x1)=a0+a1x1+a2x12+a3x13+...+anx1n
f(x2)=a0+a1x2+a2x22+a3x23+...+anx2n
f(x3)=a0+a1x3+a2x32+a3x33+...+anx3n
................
f(xn)=a0+a1xn+a2xn2+a3xn3+...+anxnn
получим формулу Чебышева.
Значения х1,х2,..,хn для различных n приведены в таблице 3.
Таблица 3 – Значения х1,х2,..,хn для различных n.
n | I | ti | n | i | ti |
1;2 | ± 0,577350 | 1;6 | ± 0,866247 | ||
1;3 | ± 0,707107 | 2;5 | ± 0,422519 | ||
3;4 | ± 0,266635 | ||||
1;4 | ± 0,794654 | 1;7 | ± 0,883862 | ||
2;3 | ± 0,187592 | 2;6 | ± 0,529657 | ||
1;5 | ± 0,832498 | 3;5 | ± 0,321912 | ||
2;4 | ± 0,374541 | ||||
2. Решение контрольного примера
где a=0; b= ; при n=5;
f(x) = sin(x);
i | xi | yi |
0,131489 | 0,131118 | |
0,490985 | 0,471494 | |
0,785 | 0,706825 | |
0,509015 | 0,487317 | |
0,868511 | 0,763367 |
x1= p/4+p/4*t1=p/4+p/4(-0,832498)=0,131489
x2= p/4+p/4*t2=p/4+p/4(-0,374341)=0,490985
x3= p/4+p/4*t3=p/4+p/4*0=0,785
x4=1- x2=1-0,490985 = 0,509015
x5=1- x1=1-0,131489=0,868511
y1=sin(x1) = sin(0,131489)=0,131118
y2=sin(x2) = sin(0,490985)=0,471494
y3=sin(x3) = sin(0,785)=0,706825
y4=sin(x4) = sin(0,509015)=0,487317
y5=sin(x5) = sin(0,868511)=0,763367
I = p/10(0,131118+0,471494+0,706825+0,487317+0,763367) =
=p/10*2,560121=0,8038779.
Описание программы Integral. pas. Алгоритм.
Процедура VVOD - заполняет массив, содержащий в себе аргументы xi
Процедура FORM - используя массив, содержащий аргументы xi заполняет массив yi
Процедура CHEB - используя массивы xi и yi, высчитывает по квадратурной формуле Чебышева приближенное значение интеграла.
Процедура TABL - это подпрограмма, осуществляющая вывод таблицы узлов (аргумент - функция)
При запуске программы нужно ввести границы интегрирования.
После ввода границ интегрирования используется процедура VVOD, а затем высчитывается и выводиться на экран шаг табулирования функции h.
После этого используем процедуры FORM и CHEB.
Получив результат, выводим таблицу (процедура TABL) и интеграл.
Заключение и выводы.
Таким образом очевидно, что при вычислении определенных интегралов с помощью квадратурных формул, а в частности по формуле Чебышева не дает нам точного значения, а только приближенное.
Чтобы максимально приблизиться к достоверному значению интеграла нужно уметь правильно выбрать метод и формулу, по которой будет вестись расчет. Так же очень важно то, какой будет взят шаг интегрирования.
Хотя численные методы и не дают очень точного значения интеграла, но они очень важны, так как не всегда можно решить задачу интегрирования аналитическим способом.
Листинг программы.
Программа написана на языке Tubro Pascal 7.0 для MS-DOS. Ниже приведен ее листинг:
program integral;
uses crt;
const n=5;
k=-0.832498;
l=-0.374541;
z=0.0;
type aa=array[1..n] of real;
var x,y:aa;
a,b,h,ich:real;
{ заполнение х-сов в массив х[5] }
procedure vvod(var a,b:real;var c:aa);
var i:integer;
t:aa;
Begin
t[1]:=k;
t[2]:=l;
t[3]:=z;
t[4]:=l;
t[5]:=k;
for i:=1 to n-1 do
c[i]:=((b+a)/2+(b-a)/2*t[i]);
for i:=n-1 to n do
c[i]:=1 - c[n+1-i];
end;
{ заполнение y-ков в массиве у[5] }
procedure form(var x:aa; var y:aa);
var i:integer;
Begin
for i:=1 to n do
y[i]:=sin(x[i]); {функция}
end;
{ процедура для расчета интеграла по квадратурной
формуле Чебышева }
procedure cheb(var y:aa;var ich:real);
var i:integer;
Begin
ich:=0;
for i:=1 to n do
ich:=ich+y[i]*h;
end;
{ процедура вывода таблицы}
procedure tabl;
var i:integer;
Begin
writeln(' ___________________________________ ');
writeln('| i | t| x|y |');
writeln(' ___________________________________ ');
writeln('| 1 |',k:9:6,'|',x[1]:9:6,' |',y[1]:9:6,'|');
writeln('| 2 |',l:9:6,'|',x[2]:9:6,' |',y[2]:9:6,'|');
writeln('| 3 |',z:9:6,'|',x[3]:9:6,' |',y[3]:9:6,'|');
writeln('| 4 |',l:9:6,'|',x[4]:9:6,' |',y[4]:9:6,'|');
writeln('| 5 |',k:9:6,'|',x[5]:9:6,' |',y[5]:9:6,'|');
writeln(' ___________________________________ ');
end;
Begin
clrscr;
writeln(' П Р О Г Р А М М А Д Л Я В ЫЧ И С Л Е Н И Я');
writeln(' О П Р Е Д Е Л Е Н Н О Г ОИ Н Т Е Г Р А Л А ');
writeln;
writeln('Введите границы интегрирования a,b:');
readln(a,b);
vvod(a,b,x);
h:=(b-a)/n;
writeln('h=',h:9:6);
form(x,y);
cheb(y,ich);
tabl;
writeln('I=',ich:8:6);
end.
Вывод результата:
П Р О Г Р А М М А Д Л Я В ЫЧ И С Л Е Н И Я
О П Р Е Д Е Л Е Н Н О Г ОИ Н Т Е Г Р А Л А
Введите границы интегрирования a,b:
0 1.5708
h= 0.314160
____________________________
| i | t | x | y |
____________________________
| 1 |-0.832498| 0.131556 | 0.131177|
| 2 |-0.374541| 0.491235 | 0.471716|
| 3 | 0.000000| 0.785400 | 0.707108|
| 4 |-0.374541| 0.508765 | 0.487099|
| 5 |-0.832498| 0.868444 | 0.763325|
____________________________
I=0.804383
Список литературы:
1. Ракитин Т.А., Первушин В.А. “Практическое руководство по численным методам с приложением программ на языке Basic“
2. Крылов В.И. “Приближенные вычисления интегралов“ - М.: Физмат.
3. Демидович и Марон “Основы вычислительной математики“
4. Копченова и Марон “Вычислительная математика в примерах и задачах”
5. Вольвачев А.Н., Крисевич В.С. Программирование на языке Паскаль для ПЭВМ ЕС. Минск.: 1989 г.
6. Зуев Е.А. Язык программирования Turbo Pascal. М.1992 г.
7. Скляров В.А. Знакомьтесь: Паскаль. М. 1988 г.