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

ПРИМЕНЕНИЕ КВАДРАТУРНОЙ ФОРМУЛЫ ЧЕБЫШЕВА ДЛЯ ВЫЧИСЛЕНИЕ ОПРЕДЕЛЕННОГО ИНТЕГРАЛА

Ва

Оглавление

Введение         *

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

Описание алгоритма программы         *

Выводы         *

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

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

Ва

Ва

Введение

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

Как известно, вычисление определенного итегралла сводится к вычислению площади криволинейной трапеции, ограниченной кривыми x=0 , y=a , y=b и y=f(x)

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

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

Меняя подынтегральную функцию каким-либо интерполяционным многочленом, получаем квадратурные формулы, где x k - выбранные узлы интерполяции; A k - коэффициенты, зависящие только от выбора узлов, но не от вида функции (k=0,1,2,....,n); R - остаточный член, или погрешность квадратурной формулы, отбросив который получим погрешность усечения. Далее, при расчете к погрешности усечения добавляются другие погрешности округления

Разбив отрезок интегрирования [a, b] на n равных частей получим следующее: x i = x o + i . h; ( i = 0,1,2,...,n) x o = a; x n = b; h= (b-a)/n. Вычислим подынтегральную функцию в полученных узлах : y i = f(x i ) ; ( i = 0,1,2,...,n)

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

Пусть для функции 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), получим приближенную квадратурную формулу

Однако, заметим, следующее:

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

Считая, что y=xK (k=0,1,2.,n), получим линейную систему из n+1 уравнений, где (k=0,1,.,n), из которой можно определить коэффициенты А0,А1,.,АN. Определитель системы есть определитель Вандермонда

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

Применяя метод трапеций и средних прямоугольников интеграл будет численно равняться сумме площадей прямоугольных трапеций, где основание трапеции какая-либо малая величина (точность), и сумме площадей прямоугольников, где основание прямоугольника какая-либо малая величина (точность), а высота определяется по точке пересечения верхнего основания прямоугольника, график функции должен пересекать в середине

Определим общую формулу Симпсона (параболическая формула) по следующим условиям: пусть n=2m есть четное число и yi=f(xi) (i=0,1,2..n) - значения функции y=f(x) для равноотстоящих точек а=x0,x1, .. ,xn=b с шагом h. Применив формулу Симпсона к каждому удвоенному промежутку [x0,x2], [x2,x4] .. [x2m-2,x2m] длины 2h и введя обозначения s 1 =y 1 +y 2 + .. +y 2m-1 s 2 =y 2 +y 4 + .. +y 2m получим обобщенную формулу Симпсона и остаточный член формулы Симпсона в общем виде, где x k I (x 2к-2 ,x 2к )

Рассмотрим квадратурную формулу Чебышева: пусть дана функция f(x) в виде многочлена f(x)=a o +a 1 x+..+a n x n . Проинтегрировав, преобразовав и подставив значения многочлена в узлах

f(x 1 )=a 0 +a 1 x 1 +a 2 x 12 +a 3 x 13 +..+a n x 1n

f(x 2 )=a 0 +a 1 x 2 +a 2 x 22 +a 3 x 23 +..+a n x 2n

f(x 3 )=a 0 +a 1 x 3 +a 2 x 32 +a 3 x 33 +..+a n x 3n

. . . . . . . . . . . .

f(x n )=a 0 +a 1 x n +a 2 x n2 +a 3 x n3 +..+a n x nn

получим формулу Чебышева

Значения х1,х2,.,хn для различных n приведены ниже в таблице

n

I

t i

n

i

t i

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

Ва

Ва

Ва

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

f(x) = sin(x); где a=0; при n=5

i

x i

y i

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

Ва

x 1 = p /4+ p /4*t 1 = p /4+ p /4(-0,832498)=0,131489

x 2 = p /4+ p /4*t 2 = p /4+ p /4(-0,374341)=0,490985

x 3 = p /4+ p /4*t 3 = p /4+ p /4*0=0,785

x 4 =1- x 2 =1-0,490985 = 0,509015

x 5 =1- x 1 =1-0,131489=0,868511

y 1 =sin(x 1 ) = sin(0,131489)=0,131118

y 2 =sin(x 2 ) = sin(0,490985)=0,471494

y 3 =sin(x 3 ) = sin(0,785)=0,706825

y 4 =sin(x 4 ) = sin(0,509015)=0,487317

y 5 =sin(x 5 ) = sin(0,868511)=0,763367

I = p /10(0,131118+ 0,471494+0,706825+0,487317+0,763367) =

= p /10*2,560121=0,8038779

Описание алгоритма программы

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

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

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

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

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

Выводы

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

Ва

Ва

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

Ва

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 г

Вместе с этим смотрят:

Применение тройных и кратных интегралов
Применение тройных или кратных интегралов
Природа математических абстракций
Проекции точки