Формула трапеций и средних прямоугольников.




Заменим дугу АВ стягивающей ее хордой, получим прямолинейную трапецию аАВb, площадь которой примем за приближенное значение интеграла

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 г.

 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2019-06-03 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: