Реферат: Применение квадратурной формулы Чебышева для вычисления определенного интеграла
Название: Применение квадратурной формулы Чебышева для вычисления определенного интеграла Раздел: Рефераты по математике Тип: реферат | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Введение Данная задача заключается в решении определенного интеграла по квадратурной формуле Чебышева. Как известно, вычисление определенного интеграла сводится к вычислению площади криволинейной трапеции, ограниченной кривыми 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 приведены ниже в таблице:
Решение контрольного примера: f(x) = sin(x); где a = 0; при n = 5.
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. |