Приближенное вычисление определенного интеграла при помощи квадратурной формулы Чебышева

Загрузить архив:
Файл: 025-0021.zip (60kb [zip], Скачиваний: 68) скачать

МИНИСТЕКРСТВООБРАЗОВАНИЯ  УКРАИНЫ

ГОСУДАРСТВЕННЫЙХИМИКОТЕХНОЛОГИЧЕСКИЙ УНИВЕРСИТЕТ

КАФЕДРА ВЫЧИСЛИТЕЛЬНОЙ ТЕХНИКИ

КУРСОВАЯ РАБОТА

на тему

“Приближенное  вычисление определенного интеграла
при помощи квадратурнойформулыЧебышева”

Студента 2-го курса: Полякова Е.В.

Научный руководитель: Куприна Л.А.

                              Днепропетровск   2000г.


Содержание.

1. Общая постановка и анализ задания.

    1.1.Введение

     1.2. Вывод формул численного интегрирования с использованием интерполяционного полинома Лагранжа

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

1.4. Общая формула Симпсона (параболическая формула)

     1.5. Квадратурная формула Чебышева

2 .   Решение  контрольногопримера

3.    ОписаниепрограммыIntegral. pas. Алгоритм.

4.    Заключение и выводы.

5.   Список литературы.

6.   Листинг программы. Вывод на экран.


1. Общая постановка и анализ задачи.

     1.1. Введение.

Требуется  найтиопределенныйинтеграл

       I =

поквадратурнойформуле  Чебышева.

Рассмотрим, что представляет из себя вообще квадратурная формула, и как можно с ее помощьювычислить приближенно интеграл.

Известно,что определенный интеграл функции типа численно представляет собой площадь криволинейной трапеции ограниченной кривыми x=0, y=a, y=b и y=(Рис.1).

Рис. 1. Криволинейная трапеция.

Если f(x) непрерывна на отрезке [a, b],и известна ее первообразная F(x), то определенный интеграл от этой функции в пределах от а до b может быть  вычислен по, известной всем, формуле Ньютона - Лейбница

=   F(b) -F(a)

         где

                        F’(x)  =f(x)

       Однако во многих случаях F(x) не может быть найдена, или первообразная получается очень сложной для вычисления.

Кроме того, функция часто задается таблично. Поэтому большое значениеприобретает приближенное и в первую очередь численное интегрирование.

         Задача численного интегрирования состоит в нахожденииприближенного значения интеграла подинтегральной функции f(x) внекоторых точках ( узлах )отрезка  [ a, b].

             Численное определение однократного интеграла называетсямеханической квадратурой, а соответствующие формулы численного  интегрирования - квадратурными .

    Заменяя подинтегральную функцию каким-либо интерполционным многочленом, мы получим квадратурные    формулы вида

                     

где

           xk -выбранныеузлы  интерполяции;

           Ak -коэффициенты,зависящие  толькоотвыбора  узлов,но                 

                   неот  видафункции(k=0,1,2,........, n).

      R - остаточный член, или погрешность квадратурной формулы.

      Отбрасывая остаточный член R, мы совершаем погрешностьусечения.

При расчете к ней добавляются еще различные погрешности  округления.

Разобьем отрезок интегрирования [a, b] на n равных частей  системой точек

                             xi= xo+ i..h;         ( i = 0,1,2,......,n)

                             xo= a;xn= b;

                        h= (b-a)/n ;

   и  вычислим подинтегральную функцию в полученных узлах

         yi= f(xi) ;         ( i = 0,1,2,......,n)

1.2. Вывод формул численного интегрирования с использованием интерполяционного полинома Лагранжа

Пусть для y=f(x) известны в n+1 точках X0,X1,X2..Xn промежутка [a,b] соответствующие значения f(xi)=yi (i=0,1,2..n). Требуется приближенно найти

                             

По заданным значениям Yi построим полином Лагранжа. Заменим f(x) полиномом Ln(x). Тогда

                                   

где Rn(f) – ошибка квадратурной формулы. Отсюда, воспользовавшись выражением для Ln(x), получаем приближенную квадратурную формулу:

Для вычисления коэффициентов Аi заметим что:

1.коэффициенты Ai при данном расположении узлов не зависит от выбора функции f(x);

2.для полинома степени n последняя формула точная.

Пологая y=xK (k=0,1,2..,n), получим линейную систему из n+1 уравнений:

                      

где

(k=0,1,..,n), из которой можно определить коэффициенты А0,А1,..,АN.

Определитель системы есть определитель Вандермонда

                                     

Заметим, что при применении этого метода фактическое построение полинома Лагранжа Ln(x) является излишним. Простой метод подсчета погрешности квадратурных формул разработан С.М. Никольским.

Теперьрассмотрим   несколько   простейших   квадратурных   формул :

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

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

y-f(x)

B

               y

A


                  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

получим обобщенную формулу Симпсона:

            

Остаточный член формулы Симпсона в общем виде:

гдеxkI (x2к-2,x)

1.5. Квадратурная формула Чебышева

Рассмотрим квадратурную формулу вида:

                    

функцию 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

2

1;2

± 0,577350

   6

1;6

± 0,866247

3

1;3

± 0,707107

2;5

± 0,422519

2

     0

3;4

± 0,266635

4

1;4

± 0,794654

   7

1;7

± 0,883862

2;3

± 0,187592

2;6

± 0,529657

5

1;5

± 0,832498

3;5

± 0,321912

2;4

± 0,374541

4

    0

3

      0

2. Решениеконтрольногопримера

       

гдеa=0;b=    приn=5;

f(x) = sin(x);

i

        xi

          yi

1

0,131489

    0,131118

2

0,490985

    0,471494

3

   0,785

    0,706825

4

0,509015

0,487317

5

   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.

3. ОписаниепрограммыIntegral. pas. Алгоритм.

ПроцедураVVOD-   заполняет массив, содержащийв себе аргументыxi

Процедура FORM - используя массив, содержащий аргументы xi заполняет массив yi

ПроцедураCHEB -используямассивы xi и   yi, высчитывает по квадратурнойформулеЧебышева  приближенноезначениеинтеграла.

ПроцедураTABL - этоподпрограмма,осуществляющая вывод таблицы узлов (аргумент - функция)

При запуске программынужно  ввестиграницыинтегрирования.

Послеввода границ  интегрированияиспользуется процедура VVOD, а затем высчитывается и выводиться на экраншаг  табулированияфункции h.

После этого используем процедуры FORM и CHEB .

Получив результат, выводим таблицу (процедура TABL ) и интеграл.

              4.    Заключение и выводы.

Таким образом очевидно, что при вычислении определенных интегралов с помощьюквадратурных формул, а в частности по формуле Чебышева не дает нам точного значения, а только приближенное.

Чтобы максимально приблизиться к достоверному значению интеграла нужно уметь правильно выбрать метод и формулу, по которой будет вестись расчет. Так же очень важно то, какой будет взят шаг интегрирования.

Хотя численные методы и не дают очень точного значения интеграла, но они очень важны, так как не всегда можно решить задачу интегрирования аналитическим способом.

5.Список литературы:

1. Ракитин Т.А., Первушин В.А.“Практическое руководство по численным методам с приложением программ на языке Basic“

2. Крылов В.И.“Приближенные вычисления интегралов“ - М. : Физмат.

3. Демидовичи Марон“Основы вычислительной математики“

4. Копченова и Марон  “Вычислительная математика в примерах и задачах”

5. Вольвачев А.Н., Крисевич В.С. Программирование на языке Паскаль для ПЭВМ ЕС. Минск.: 1989 г.

6. Зуев Е.А. Язык программирования TurboPascal. М.1992 г.

7. Скляров В.А. Знакомьтесь: Паскаль. М. 1988 г.


          6.   Листинг программы.

Программа написана на языке 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