|
Реферат: Приближенное вычисление определенного интеграла при помощи квадратурной формулы Чебышева (Математика)
МИНИСТЕКРСТВО ОБРАЗОВАНИЯ УКРАИНЫ ГОСУДАРСТВЕННЫЙ ХИМИКОТЕХНОЛОГИЧЕСКИЙ УНИВЕРСИТЕТ КАФЕДРА ВЫЧИСЛИТЕЛЬНОЙ ТЕХНИКИ
КУРСОВАЯ РАБОТА на тему “Приближенное вычисление определенного интеграла
при помощи квадратурной формулы Чебышева”
Студента 2-го курса: Полякова Е.В. Научный руководитель: Куприна Л.А.
Днепропетровск 2000г.
Содержание.
1. Общая постановка и анализ задания.
1.1. Введение
1.2. Вывод формул численного интегрирования с использованием интерполяционного полинома Лагранжа
1.3 Формула трапеций и средних прямоугольников
1.4. Общая формула Симпсона (параболическая формула)
1.5. Квадратурная формула Чебышева
2 . Решение контрольного примера
3. Описание программы Integral. pas. Алгоритм.
4. Заключение и выводы.
5. Список литературы.
6. Листинг программы. Вывод на экран.
1. Общая постановка и анализ задачи.
1.1. Введение.
Требуется найти определенный интеграл
I = [pic]
по квадратурной формуле Чебышева.
Рассмотрим, что представляет из себя вообще квадратурная формула, и как можно с ее помощью вычислить приближенно интеграл. Известно,[pic] что определенный интеграл функции [pic] типа [pic] численно представляет собой площадь криволинейной трапеции ограниченной кривыми x=0, y=a, y=b и y=[pic] (Рис. 1). [pic] Рис. 1. Криволинейная трапеция.
Если f(x) непрерывна на отрезке [a, b], и известна ее первообразная F(x), то определенный интеграл от этой функции в пределах от а до b может быть вычислен по, известной всем, формуле Ньютона - Лейбница [pic]= F(b) - F(a) где F’(x) = f(x) Однако во многих случаях F(x) не может быть найдена, или первообразная получается очень сложной для вычисления. Кроме того, функция часто задается таблично. Поэтому большое значение приобретает приближенное и в первую очередь численное интегрирование. Задача численного интегрирования состоит в нахождении приближенного значения интеграла [pic]по заданным или вычисленным значениям подинтегральной функции f(x) в некоторых точках ( узлах ) отрезка [ a, b]. Численное определение однократного интеграла называется механической квадратурой, а соответствующие формулы численного интегрирования - квадратурными . Заменяя подинтегральную функцию каким-либо интерполционным многочленом, мы получим квадратурные формулы вида
[pic]
где 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). Требуется приближенно найти
[pic]
По заданным значениям Yi построим полином Лагранжа. Заменим f(x) полиномом Ln(x). Тогда [pic]
где Rn(f) – ошибка квадратурной формулы. Отсюда, воспользовавшись выражением для Ln(x), получаем приближенную квадратурную формулу: [pic] Для вычисления коэффициентов Аi заметим что: 1.коэффициенты Ai при данном расположении узлов не зависит от выбора функции f(x); 2.для полинома степени n последняя формула точная.
Пологая y=xK (k=0,1,2..,n), получим линейную систему из n+1 уравнений: [pic]
где [pic] (k=0,1,..,n), из которой можно определить коэффициенты А0,А1,..,АN.
Определитель системы есть определитель Вандермонда
[pic] Заметим, что при применении этого метода фактическое построение полинома Лагранжа Ln(x) является излишним. Простой метод подсчета погрешности квадратурных формул разработан С.М. Никольским. Теперь рассмотрим несколько простейших квадратурных формул :
1.3 Формула трапеций и средних прямоугольников. Заменим дугу АВ стягивающей ее хордой, получим прямолинейную трапецию аАВb, площадь которой примем за приближенное значение интеграла
y
0 a b x рис 1.3.1 Криволинейная трапеция
[pic] Рис. 1.3.2. Метод трапеций.
[pic] Рис. 1.3.3. Метод средних прямоугольников.
По методам трапеций и средних прямоугольников соответственно интеграл равен сумме площадей прямоугольных трапеций, где основание трапеции какая- либо малая величина (точность), и сумма площадей прямоугольников, где основание прямоугольника какая-либо малая величина (точность), а высота определяется по точке пересечения верхнего основания прямоугольника, которое график функции должен пересекать в середине. Соответственно получаем формулы площадей — для метода трапеций: [pic], для метода средних прямоугольников: [pic].
1.4. Общая формула Симпсона (параболическая формула)
Пусть n=2m есть четное число и yi=f(xi) (i=0,1,2...n) - значения функции y=f(x) для равноотстоящих точек а=x0,x1, ... ,xn=b с шагом
[pic]
Применив формулу Симпсона к каждому удвоенному промежутку [x0,x2], [x2,x4] ... [x2m-2,x2m] длины 2h и введя обозначения
(1=y1+y2+ ... +y2m-1
(2=y2+y4+ ... +y2m
получим обобщенную формулу Симпсона:
[pic]
Остаточный член формулы Симпсона в общем виде:
[pic]
где (k I (x2к-2,x2к)
1.5. Квадратурная формула Чебышева
Рассмотрим квадратурную формулу вида:
[pic]
функцию 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
получим формулу Чебышева. [pic]
Значения х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. Решение контрольного примера
[pic]
где a=0 ; b= [pic]; при n=5;
f(x) = sin(x);
[pic]
[pic]
| 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= (/4+(/4*t1=(/4+(/4(-0,832498)=0,131489
x2= (/4+(/4*t2=(/4+(/4(-0,374341)=0,490985
x3= (/4+(/4*t3=(/4+(/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
[pic]
I = (/10(0,131118+0,471494+0,706825+0,487317+0,763367) =
=(/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. Зуев Е.А. Язык программирования Turbo Pascal. М.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
----------------------- y-f(x)
B
A
Реферат на тему: Приближенное вычисление определенных интегралов
Магнитогорский Государственный технический университет
Приближенное вычисление определенных интегралов. ФОРМУЛА ПАРАБОЛ (ФОРМУЛА СИМПСОНА)
Подготовил: Студент группы ФГК-98 Григоренко М.В.
Магнитогорск –1999
Н
е для всякой непрерывной функции ее первообразная выражается через элементарные функции. В этих случаях вычисление определенных интегралов по формуле Ньютона-Лейбница затруднительно, и применяются различные способы вычисления определенных интегралов. Один из них приведен ниже.
Формула парабол (формула Симпсона)
Разделим отрезок [a,b] на четное число равных частей n = 2m. Площадь криволинейной трапеции, соответствующей первым двум отрезкам [x0,x1] и [x1,x2] и ограниченной заданной кривой y = f(x), заменим площадью криволинейной трапеции, которая ограничена параболой второй степени, проходящей через три точки M(x0,y0), M1(x1,y1), M2(x2,y2) и имеющей ось, параллельную оси Оу (см. рисунок). Такую трапецию будем называть параболической трапецией.
Уравнение параболы с осью, параллельной оси Оу, имеет вид y = Ax2 + Bx + C. Коэффициенты А, В и С однозначно определяются из условия, что парабола проходит через три заданные точки. Аналогичные параболы строим и для других пар отрезков. Сумма площадей параболических трапеций и даст приближенное значение интеграла. Вычислим сначала площадь одной параболической трапеции. Если криволинейная трапеция ограничена параболой y = Ax2 + Bx + C, осью Ох и двумя ординатами, расстояние между которыми равно 2h, то ее площадь равна S = h/3 (y0 + 4y1 + y2), (?) где у0 и у2 – крайние ординаты, а у1 – ордината кривой в середине отрезка Пользуясь формулой (?), мы можем написать следующие приближенные равенства (h=?x): . . . . . . . . . . . . . . . . . . . . . . Складывая левые и правые части, получим слева искомый интеграл, справа его приближенное значение:
Это и есть формула Симпсона. Здесь число точек деления n = 2m произвольно, но чем больше это число, тем точнее сумма в правой части равенства дает значение интеграла.
Примеры
Было дано задания вычислить приблизительно следующие определенные интегралы:
И
Для вычисления данных интегралов мною были написаны специальные программы на языке Visual Basic for Application. (тексты программ приведены в приложении). Программы осуществляют запрос количества отрезков, на которые следует разбить заданный отрезок. Структура программ универсальна и применима для вычисления любых определенных интегралов. Для этого необходимо изменить границы определенного интеграла в строках (*) и (**), а также подынтегральную функцию в строке (***). Были получены следующие ответы:
При n = 20.
Приложение
'Приближенное вычисление интегралов по формуле парабол '(формула Симпсона) Option Explicit Sub integral_1() Dim i As Integer, n As Integer Dim t As Boolean Dim b As Double, a As Double Dim chet As Double, nechet As Double Dim delta As Double, result As Double a = 0 '(*) b = 1 '(**) t = True Do n = InputBox("Введите четное число n", "Запрос") If n Mod 2 = 0 Then t = False Loop While t delta = (b - a) / n chet = 0 nechet = 0 For i = 1 To n - 1 If (i Mod 2) = 0 Then chet = chet + (f(a + (delta * i))) Else nechet = nechet + (f(a + (delta * i))) End If Next i result = (delta / 3) * (f(a) + f(b) + (2 * chet) + (4 * nechet)) MsgBox result, vbInformation, "Результат" End Sub Function f(x) As Double f = Sqr(1 + (x ^ 4)) '(***) End Function
'Приближенное вычисление интегралов по формуле парабол '(формула Симпсона) Option Explicit Sub integral_1() Dim i As Integer, n As Integer Dim t As Boolean Dim b As Double, a As Double Dim chet As Double, nechet As Double Dim delta As Double, result As Double a = 2 '(*) b = 5 '(**) t = True Do n = InputBox("Введите четное число n", "Запрос") If n Mod 2 = 0 Then t = False Loop While t delta = (b - a) / n chet = 0 nechet = 0 For i = 1 To n - 1 If (i Mod 2) = 0 Then chet = chet + (f(a + (delta * i))) Else nechet = nechet + (f(a + (delta * i))) End If Next i result = (delta / 3) * (f(a) + f(b) + (2 * chet) + (4 * nechet)) MsgBox result, vbInformation, "Результат" End Sub Function f(x) As Double f = 1 / (Log(x)) '(***) End Function
----------------------- [pic]
[pic]
[pic]
[pic]
[pic]
[pic]
[pic]
[pic]
[pic]
[pic]
[pic]
| |