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

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

Введение

Данная задача заключается в решении определенного интеграла по квадратурной формуле Чебышева. Как известно, вычисление определенного интеграла сводится к вычислению площади криволинейной трапеции, ограниченной кривыми 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

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

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

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

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

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

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

Зуев Е. А. Язык программирования Turbo Pascal. — М., 1992.

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

Похожие рефераты: