Дослідження методів чисельного інтегрування (работа 1)

Міністерство освіти і науки України

Вінницький національний технічний університет

Інститут автоматики, електроніки та комп’ютерних

систем управління

Факультет АКСУ
Кафедра АІВТ

Курсова робота

з дисципліни

«Обчислювальні методи та застосування ЕОМ»

Дослідження методів чисельного інтегрування

2006

Анотація

В даній курсовій роботі розроблена програма для обчислення визначеного інтегралу методом Чебишева третього четвертого та п’ятого порядків.

Програма дозволяє отримати розв’язання інтегралу зазначеним методом, оцінити похибки та порівнювати їх з точним обчисленнями отриманими в математичному пакеті Mathcad 2001 Professional.

1. Теоретичні відомості

У курсовій роботі проведено дослідження методів чисельного інтегрування. Адже, у задачах, пов'язаних з аналізом, ідентифікацією, оцінкою якості, моделюванням різноманітних пристроїв автоматики, керування, інформаційно-вимірювальної техніки, радіоелектроніки, виникає необхідність обчислення визначених інтегралів.

В основу чисельного інтегрування покладено наближене обчислення площини під кривою, яка описується підінтегральною функцією інтеграла:

Загальний підхід до розв’язування цієї задачі такий: визначений інтеграл I являє собою площину, обмежену кривою f(х), віссю Х та прямими Х = a, Х =b, відрізок від a до b розбивають на множину менших відрізків, знаходять наближено площу кожної площини Si, яку отримують за таким розбиванням, значення інтеграла І знаходять як суму площ площин Sі, тобто I = Si. При цьому використовують два способи розбивання початкового відрізка на менші

1.Розбивання відрізка проводиться раніше, до того ж завжди відрізок вибирають рівним (метод прямокутників, трапецій, Сімпсона).

2.Місцезнаходження та довжина відрізків визначаються аналізом, до того ж спочатку ставиться за мету досягти найбільшої точності з заданим числом відрізків, а потім відповідно з цим визначають їхні межі (методи Гаусса, Ньютона - Котеса, Чебишева) [1].

1.1 Метод прямокутників

Найпростішим методом наближеного обчислення інтеграла є метод прямокутників, геометрична інтерпретація якого зводиться до знаходження визначеного інтеграла як суми площ N прямокутників (з висотою f(x) та основою h=x>i>=x>i+1>-x>i>), отриманих розділень відрізка[a,b] на N рівних частин, до того ж якщо розділити на прямокутники зліва на право, то отримаємо формулу лівих прямокутників:

I>n>=f(x)dxS>i>=h[f(x>0>)+f(x>1>)+...+f(x>n-1>)]=f(x>i>);(1.1)

якщо ж розділити на N прямокутників справа на ліво, то отримаємо формулу правих прямокутників:

I>пр>=f(x)dxh[f(x>n>)+...+f(x>1>)]=f(x>i>)(1.2)

1.2 Метод трапецій

Суть методу трапеції, полягає в тому, що інтеграл обчислюється по-іншому, відрізок інтегрування поділяється на N рівних відрізків, всередині яких підінтегральна крива f(x) замінюється кусково- лінійною функцією (x), отриманою стягуванням ординат N відрізків хордами.

Обчислення визначеного інтеграла зводиться до знаходження сум площ S>i> прямокутних трапецій N.

Площа кожної такої трапеції визначається як:

S>i>=h(f(x>i>)+f(x>i+1>)).(1.3)

Отже, формула трапеції:

I=S>i>=h(f(x>0>)+f(x>1>)+f(x>2>)+...+f(x>n-1>)+f(x>N>)= =[(f(x>0>)+f(x>n>))+f(x>i>)].(1.4)

Графічна модель

Похибка обчислення інтеграла за формулою трапецій оцінюється як

(1.5)

Де М>2 >–максимальне значення другої похідної. f(x) при ,h-крок обчислень.

1.3 Метод Сімпсона (метод парабол або метод криволінійних трапецій)

Цей метод також використано у курсовій роботі, близький до методу трапецій у тій частині, що інтегрування проводиться шляхом поділу відрізка інтегрування [а, b] на множину відрізків (N пар відрізків). Однак, з метою збільшення точності наближеного інтегрування на кожному відрізку [Xi, Xi+2] підінтегральної функції f(x) замінюють квадратичною параболою (x), обчислення визначеного інтеграла зводиться до обчислення суми N криволінійних трапецій Si: I= f(x)dxSi [1].

Г
рафічна модель.

Площа кожної такої трапеції визначається за формулою Сімпсона:

Si= [f(xi)+4f(xi+1)+f(xi+2)], (1.6), тобто

(y>0>+4y>1>+y>2>),

(y>2>+4y>3>+y>4>),

(y>4>+4y>5>+y>6>), (1.7)

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

(y>2n-2>+4y>2n-1>+y>2n>),

Тоді чисельне значення визначеного інтеграла на відрізку [a,b] дорівнюватиме сумі інтегралів, тобто

[y>0>+y>2n>+4(y>1>+...+y>2n-1>)+2(y>2>+...+y>2n-2>)],

або

[y>0>+y>2n>+4y>2i-1>+2y>2i>],(1.8)

де h =(b-a)/2N.

Похибка обчислення інтеграла за формулою Сімпсона оцінюється як

де М>4 >–максимальне значення четвертої похідної. f(x) при , h-крок обчислень.

1.4 Метод Ньютона-Котеса

Цей метод засновано на апроксимації однієї із сторін криволінійної трапеції, яка отримується поділом відрізка [a,b] на N рівних частин, многочленами вищих порядків, також як у методі трапецій використовується лінійна апроксимація (заміна однієї із сторін трапеції прямою лінією), а в методі Сімпсона - апроксимація параболою.

Основна формула методу:

y>i>H>i,>(1.9)

де Hi - коефіцієнти Ньютона - Котеса. Ці коефіцієнти не залежать від вигляду f(x), а є функцією тільки N (кількість вузлів інтерполяцїї). Таким чином, коефіцієнти Ньютона - Котеса можна обчислити раніше для різного числа вузлів інтерполяції .

Легко можна показати, що методи трапецій та Сімпсона є частинними випадками методу Ньютона - Котеса.

1.5 Метод Чебишева

Метод Чебишева використано в курсовій грунтується на обчисленні інтеграла за значеннями функції yi =f(xi),(i=1,2,...,N) у зафіксованих вузлах інтерполяції x1,x2,...,xN (де h=const). Коефіцієнти Ньютона -Котеса Нi (i=1,N) не залежать від значень функції у вузлах інтерполяції. П.Л.Чебишев запропонував для обчислення визначених інтегралів використати формулу:

c>i>f(x>i>)>,>(1.10)

в якій квадратурні коефіцієнти сi (i = 1,2, ...,N) зафіксовані, а абсциси xi (i=1,2,...,N)підлягаютьвизначенню.

Таблиця 1.1.

Коефіцієнти Ньютона - Котеса

n = 1

Но = H2 = ½

n = 2

Но = Н2 = 1/6, Н1 = 2/3

n = 3

Н0 = Н3 = 1/8, Н1 = H3 = 3/8

n = 4

Но = Н4 = 7/90, Н1 = Нз = 16/45, Н2 = 2/15

n = 5

Н0 = Н5 =19/288, Н1 = Н4 = 25/96, Н2 = Нз =

= 25/144

n = 6

Но = Н6 = 41/840, Н1 = Н5 = 9/35, Н2 = Н4 = =9/280, Нз = 34/105

n = 7

Но = Н7 = 75І/17280, Н1 = Н6 = 3577/1728О, Н2 = Н5 =1323/1728О, Нз = Н4 = 2989/17280

Для простоти обчислень необхідно вибрати С1=...=Сn. Розглядаємо спочатку частинний випадок, коли межі інтегрування дорівнюють -1 та 1. Тоді формула Чебишева набере вигляду:

2Cn[f(x>1>)+f(x>2>)+...+f(x>n>)],(1.11)

де квадратурні коефіцієнти Сn та абсциси xi підлягають визначенню.

Коефіцієнти та вузли інтерполяції xi визначимо із умови, що ця рівність є точною для випадку, коли f(х) многочлен вигляду:

f(x)=a>0>+a>1>x+a>2>x2+...+a>n>xn.(1.12)

Підставимо многочлен у ліву частину попередньої формули та про- інтегруємо:

(a>0>+a>1>x+a>2>x2+...+a>n>xn)=2(a>0>+a>2>+a>3>+...).(1.13)

У праву частину рівності (1. 11) підставимо значення многочлена (1.І2) у вузлах x1,x2,...,xn:

f(x>1>)=a>0>+a>1>x>1>+a>2>x>1>2+a>3>x>1>3+...+a>n>x>1>n,

f(x>2>)=a>0>+a>1>x>2>+a>2>x>2>2+a>3>x>2>3+...+a>n>x>2>n,

f(x>3>)=a>0>+a>1>x>3>+a>2>x>3>2+a>3>x>3>3+...+a>n>x>3>n,(1.14)

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

f(x>n>)=a>0>+a>1>x>n>+a>2>x>n>2+a>3>x>n>3+...+a>n>x>n>n,

Тоді рівність (1.ІЗ) набере вигляду:

2(a>0>+a>2>+a>4>+...)=2c>n>[na>0>+a>1>(x>1>+x>2>+...+x>n>)+a>2>(x>1>2+x>2>2+...+x>n>2)+

+a>3>(x>1>3+x>2>3+...+x>n>3)+...+a>n>(x>1>n+x>2>n+...+x>n>n)].(1.15)

Отримана рівність повинна виконуватися за будь-яких значень a>0>,a>1>,...,a>n>; таким чином, порівнюючи коефіцієнти аi в правій та лівій частинах (1.І5) знаходимо, що nсn = 1, звідки

C>n>=.(1.16)

і, крім цього,

x>1>+x>2>+x>3>+...+x>n>=0,

x>1>2+x>2>2+x>3>2+...+x>n>2=,

x>1>3+x>2>3+x>3>3+...+x>n>3=0,(1.17)

x>1>4+x>2>4+x>3>4+...+x>n>4=,

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

x>1>n+x>2>n+x>3>n+...+x>n>n=[1-(-1)n+1],

Підставляючи знайдене для С>n> виразу в співвідношені 1.13 отримаємо формулу Чебишева:

[f(x>1>)+f(x>2>)+...+f(x>n>)],(1.18)

де точки x1,...,хn визначаються із системи рівнянь (1.17).

Значення x1,...,хn для різних n обчислюються раніше та зводять в табл. 1.2.

Коли межі даного інтеграла відрізняються від -1 та 1, формула Чебишева матиме вигляд:

[f(z>1>)+f(z>2>)+...+f(z>n>)],(1.19)

де

Таблиця 1.2.

Число

ординат

Значення абсцис

n = 2

n = 3

n = 4

n = 5

n = 6

n = 7

-x1 = x2 = 0.577350

-x1 = x3 = 0.707107; x2 = 0

-x1 = x4 = 0.794654; -x2 = x3 = 0.187592

-x1 = x5 = 0.832498; -x2 = x4 = 0.374541; х3 = 0

-x1 = x6 = 0.866247; -x2 = x5 = 0.4225І9; -x3 = x4 = 0.266635

-x1 = x7 = 0.883862; -x2 = x6 = 0.529657; -x3= = x5 = 0.323912; x4 = 0

Z>i>=+x>i>, (i=1,2,...,n),(1.20)

а xi мають вкaзані в таблиці значення.

Похибка обчислень за методом Чебишева знаходиться за формулою:

2. Розробка та опис логічної частини програми

Програма складається з двох блоків. Це – інтерфейний модуль, що забезпечує користувача змогою спілкуватися з комп’ютером за допомогою клавіатури, та сама програма, що здійснює всі обчислювальні операції.

При запуску спершу ініціюється графіка та створюється меню і ініціюються змінні. Потім іде блок зчитування з клавіатури. Він аналізує введену користувачем інформацію і згідно з нею виконує певні дії. При натисканні на клавіші управління курсором відбувається переміщення по меню. При натисканні на клавішу Enter відбувається аналіз кнопки, яка була обрана на даний момент, і згідно з цим виконання певних дій. Це можуть бути такі операції:

    обчислення інтегралу методом Чебишева 3-го порядку: виконується алгоритм, який детально пояснено в додатку Б.

    обчислення інтегралу методом Чебишева 4-го порядку.

    обчислення інтегралу методом Чебишева 5-го порядку

    Задається крок обчислення h=0.1;

    Задається крок обчислення h=0.2;

    Задається крок обчислення h=0.5;

    Про автора – довідка про автора програми;

    Вихід з програми – здійснюється вихід з програмного середовища ТР;

Робота даної програми починається з підключення стандартного модуля введення-виведення crt та модуля graph для ініціалізації графіки, оскільки програма виконана в графічному режимі. Далі задаються константи інтегрування.

Тип TMenuItems – масив пунктів меню. Далі задаємо підінтегральну функцію. Процедура InitGraphMode – процедура для ініціалізації графіки, VGA - тип графічного драйверу, VGAHi – тип графічного режиму.

    DrawCursor(x,y:integer) – процедура для малювання курсору;

    HideCursor(x,y:integer) – процедура, що автоматично забирає курсор з екрану;

    Function WaitWhileKeypressed(var FKey:boolean):char – функція, що очікує нажатої клавіші, цикл повторюється до тих пір, доки не буде зчитано код нажатої клавіші;

    Procedure menu(x,y:integer;…var poin:integer) – дана процедура власне виводить на екран графічне меню та надає змогу користувачеві здійснити вибір пункту меню за допомогою графічного курсору.

3. Функціональне призначення програми

Програма призначена для обчислення визначеного інтегралу I=, методом Чебишева третього, четвертого та п’ятого порядків, також дає змогу зменшити похибку обчислень за рахунок зменшення кроку інтегрування.

Програма має гарний інтерфейс користувача з меню, що керується з клавіатури. Результати обчислень виводяться на екран монітора.

Дана програма пристосована для вирішення тільки одного інтегралу, а тому є вузько спеціалізованою, проте можлива зміна підінтегральної функції шляхом корегування програмного коду.

Комп'ютер може швидко опрацьовувати дані і виводити результати на екран.

4. Вхідні та вихідні дані

Вхідні дані:

1. Інтеграл: I=;

2. Крок обчислень 0.1,0.2,0.5;

3. Порядок інтегрування: третього , четвертого та п’ятого порядку.

Вихідні дані:

    Значення інтегралу, що знаходить программа.

    Загальна похибка по заданим методам.

    Порівняння результатів з точним значенням.

5. Результати розрахунків

Результатами обчислень є знаходження значення визначеного інтеграла I=, , зазначеними методами, з кроком: h=0.1, h=0.2, h=0.5.

При розрахунку інтегралу 3-го порядку програма виведе на екран слідуючі результати:

Інтеграл Чебишева 3-го порядку: 2.649061117170

Загальна похибка: 0.0316342854

Точне розв’язання (Mathcad 2001): 2.68069545714219

Крок: 0.5

Інтеграл Чебишева 3-го порядку: 2,66138784520

Загальна похибка: 0.0193076119

Точне розв’язання (Mathcad 2001): 2.68069545714219

Крок: 0.2

Інтеграл Чебишева 3-го порядку: 2,67298758310

Загальна похибка: 0.00770787

Точне розв’язання (Mathcad 2001): 2.68069545714219

Крок: 0.1

При розрахунку інтегралу 4-го порядку програма виведе на екран слідуючі результати:

Інтеграл Чебишева 4-го порядку: 2.6680680931

Загальна похибка: 0.01262744

Точне розв’язання (Mathcad 2001): 2.68069545714219

Крок: 0.5

Інтеграл Чебишева 4-го порядку: 2,6743859370

Загальна похибка: 0.006309519

Точне розв’язання (Mathcad 2001): 2.68069545714219

Крок: 0.2

Інтеграл Чебишева 4-го порядку: 2,676438956720

Загальна похибка: 0,00385156152

Точне розв’язання (Mathcad 2001): 2.68069545714219

Крок: 0.1

При розрахунку інтегралу 5-го порядку програма виведе на екран слідуючі результати:

Інтеграл Чебишева 5-го порядку: 2,68069554160

Загальна похибка: 0.00000008443

Точне розв’язання (Mathcad 2001): 2.68069545714219

Крок: 0.5

Інтеграл Чебишева 5-го порядку: 2.68069545713707

Загальна похибка: 0.00000000512

Точне розв’язання (Mathcad 2001): 2.68069545714219

Крок: 0.2

Інтеграл Чебишева 5-го порядку: 2.68069545714209

Загальна похибка: 0,00000000010

Точне розв’язання (Mathcad 2001): 2.68069545714219

Крок: 0.1

Висновки

В даній курсовій роботі було проведене дослідження чисельних методів вирішення визначеного інтегралу виду I=, по методу Чебишева.

Алгоритм методу є досить простим. Для його реалізації потрібно мати функцію, межі та крок інтегрування.

В курсовій роботі, для перевірки результатів обчислень, я використовував математичний пакет MatchCad 2001. Похибку для даної функції доцільно було б оцінювати, як абсолютне значення різниці між точним значенням та одержаним в програмі.

Однак, хоча й виникали певні труднощі з виконанням завдання, але це було безперечно цікаво, і багато чому мене навчили.

Література

    В.Т.Маликов, Р.Н.Кветный. Вычислительные методы и применение ЭВМ. – К.: Вища школа, 1989.– 213 с.

    В.М. Дубовий, Р.Н.Квєтний Методичні вказівки до лабораторних робіт з програмування та застосування ЕОМ . Навчальне видання. –Вінниця, ВПІ, 1992.

    В.М. Дубовий, Р.Н.Квєтний. Програмування комп’ютеризованих систем управління та автоматики. - В.: ВДТУ, 1997. – 208с.

    Р.Н.Кветний Методи комп’ютерних обчислень. Навчальний посібник.- Вінниця: ВДТУ, 2001.-148с.

    А. І. Марченко, Л. А. Марченко “Программирование в среде Турбо Паскаль 7.0”, Київ “ВЕК+”, 1999 р.

Додаток А

Лістинг

program Kursova;

uses crt,graph;

const

a=0;

b=1;

c=1.5;

d=2;

t3:array[1..3] of real=(-0.707107,0,0.707107);

t4:array[1..4] of real=(-0.794654,-0.187592,0.187592,0.794654);

t5:array[1..5] of real=(-0.832498,-0.374541,0,0.374541,0.832498);

Type TMenuItems=array[1..10] of string;

TDelta=array[1..300] of real;

Var Item:TMenuItems;

ResM:TDelta;

i,n:integer;

h:real;

ki:integer;

M,x,Ic,I2n,nc,sc1,sc2,I1n,x1,x2:real;

s,hs,s1:string;

k:Integer;

sum,int,si:real;

Delta,AllDelta,sum1:real;

Function Fact(n:integer):integer;

begin

if n=0 then Fact:=1

else Fact:=n*Fact(n-1)

end;

{Ф-я}

function f(x1:real):real;

begin

f:=exp(-d*x1*x1+c)

end;

procedure InitGraphMode;

var gd,gm:integer;

begin

gd:=VGA;

gm:=VGAHi;

initgraph(gd,gm,'');

end;

procedure DrawCursor(x,y:integer);

var i,j:integer;

begin

setcolor(white);

setlinestyle(0,0,1);

MoveTo(x,y+3);LineTo(x+10+5,y);LineTo(x+5,y-10);LineTo(x+10+10+5,y+3);

LineTo(x+5,y+16);LineTo(x+10+5,y+6);LineTo(x,y+3);

setfillstyle(1,red);

end;

{---------------------------------------------------------------------------}

Procedure HideCursor(x,y:integer);

begin

setcolor(lightblue); {insert your background color instead of black}

setlinestyle(0,0,1);

MoveTo(x,y+3);LineTo(x+10+5,y);LineTo(x+5,y-10);LineTo(x+10+10+5,y+3);

LineTo(x+5,y+16);LineTo(x+10+5,y+6);LineTo(x,y+3);

setfillstyle(1,red);

end;

Function WaitWhileKeypressed(var FKey:boolean):char;

var result:char;

begin

FKey:=false;

while keypressed do result:=readkey; {It clears keyboard buffer}

repeat until keypressed;

result:=readkey;

if result=#0 then

begin

result:=readkey;

FKey:=true;

end;

WaitWhileKeypressed:=result;

end;

Procedure Menu(x,y:integer;Items:TMenuItems;n:integer;var point:integer);

var i:integer;

ch:char;

FKey:boolean;

begin

setbkcolor(lightblue);

setcolor(yellow);

Rectangle(10,10,625,465);

setcolor(lightgreen);

Rectangle(14,14,621,461);

setcolor(lightred);

for i:=1 to n do outtextxy(x+50,y+(i-1)*30,Items[i]);

repeat

for i:=1 to n do

if i<>point then HideCursor(x,y+(i-1)*30)

else DrawCursor(x,y+(i-1)*30);

ch:=WaitWhileKeypressed(FKey);

case ch of

#72: if point>1 then dec(point);

#80: if point<n then inc(point);

#27: point:=-1;

end;

until (ch=#13) or (ch=#27);

for i:=1 to n do HideCursor(x,y+(i-1)*30);

end;

procedure PrintArray(n:integer; m:TDelta);

var s0,s1:string;

begin

setfillstyle(1,lightblue);

bar(360,40,620,450);

for i:=1 to n do

begin

str(i,s0);

str(m[i]:5:10,s1);

if (i mod 25 =0) then

begin

readln;

bar(360,40,620,450);

end;

outtextxy(430,(i mod 25)*15+40,s0+' '+s1);

end;

end;

{-----------------------------------------------------------------------}

begin

InitGraphMode;

setcolor(blue);

h:=0.1;

repeat

cleardevice;

Item[1]:='Метод Чебишева 3-го порядку';

Item[2]:='Метод Чебишева 4-го порядку';

Item[3]:='Метод Чебишева 5-го порядку';

Item[4]:='Крок обчислень=0.1';

Item[5]:='Крок обчислень=0.2';

Item[6]:='Крок обчислень=0.5';

Item[7]:='Про автора';

Item[8]:='Вихид';

i:=1;

setcolor(white);

Menu(50,30,Item,7,i);

case i of

1:begin

setbkcolor(lightblue);x:=a; sum:=0; i:=0;

while x<=b do begin

inc(i);

x:=x+h;

si:=0;

for k:=1 to 3 do si:=si+f(x-h/2+h/2*t3[k]);

si:=h/3*si;

sum:=sum+si;

sum1:=(x-((a+b)/2))*(x-((a+b)/2))*(x-((a+b)/2))*(x-((a+b)/2))*

48*exp(-2*x*x+1.5)-384*x*x*exp(-2*x*x+1.5)+256*x*x*x*x*exp(-2*x*x+1.5);

n:=i+10;

end;

delta:=((b-a)/(n*fact(3)))*sum1;

delta:=Abs(delta);

AllDelta:=abs(delta);

str(Delta:12:10,s1);

Resm[i]:=Delta;

setcolor(red);

str(Sum:12:18,s);

str(AllDelta:12:20,s1);

str(h:2:3,hs);

setcolor(blue);

Outtextxy(100,240,'Интеграл: '+s);

Outtextxy(45,260,'Точне значення (Mathcad): 2.68069545714219');

Outtextxy(100,280,'Похибка: '+s1);

Outtextxy(100,300,'Крок: '+hs);

readln;

end;

2: begin

setbkcolor(lightblue);x:=a; sum:=0; i:=0;

while x<=b do begin

inc(i);

x:=x+h;

si:=0;

for k:=1 to 4 do si:=si+f(x-h/2+h/2*t4[k]);

si:=h/4*si;

sum:=sum+si;

sum1:=(x-((a+b)/2))*(x-((a+b)/2))*(x-((a+b)/2))*(x-((a+b)/2))*(x-((a+b)/2))*

(-960*x*exp(-2*x*x+1.5)+2560*x*x*x*exp(-2*x*x+1.5)-1024*x*x*x*x*x*exp(-2*x*x+1.5));

n:=i+10;

end;

delta:=((b-a)/(n*fact(3)))*sum1;

delta:=Abs(delta);

AllDelta:=abs(delta);

str(Delta:12:10,s1);

Resm[i]:=Delta;

setcolor(red);

str(Sum:12:18,s);

str(AllDelta:12:20,s1);

str(h:2:3,hs);

setcolor(blue);

Outtextxy(100,240,'Интеграл: '+s);

Outtextxy(45,260,'Точне значення (Mathcad): 2.68069545714219');

Outtextxy(100,280,'Похибка: '+s1);

Outtextxy(100,300,'Крок: '+hs);

readln;

end;

3:begin

setbkcolor(lightblue);x:=a; sum:=0; i:=0;

while x<=b do begin

inc(i);

x:=x+h;

si:=0;

for k:=1 to 5 do si:=si+f(x-h/2+h/2*t5[k]);

si:=h/5*si;

sum:=sum+si;

sum1:=(x-((a+b)/2))*(x-((a+b)/2))*(x-((a+b)/2))*(x-((a+b)/2))*(x-((a+b)/2))*

(x-((a+b)/2))*(-960*exp(-2*x*x+1.5)+11520*x*x*exp(-2*x*x+1.5)

-15360*x*x*x*x*exp(-2*x*x+1.5)+4096*x*x*x*x*x*x*exp(-2*x*x+1.5));

n:=i+10;

end;

delta:=((b-a)/(n*fact(3)))*sum1;

delta:=Abs(delta);

AllDelta:=abs(delta);

str(Delta:12:10,s1);

Resm[i]:=Delta;

setcolor(red);

str(Sum:12:18,s);

str(AllDelta:12:20,s1);

str(h:2:3,hs);

setcolor(blue);

Outtextxy(100,240,'Интеграл: '+s);

Outtextxy(45,260,'Точне значення (Mathcad): 2.68069545714219');

Outtextxy(100,280,'Похибка: '+s1);

Outtextxy(100,300,'Крок: '+hs);

readln;

end;

4: begin

sound(500);

setbkcolor(lightred);

h:=0.01;

Outtextxy(150,200,'Крок h=0.01 ');

Outtextxy(170,250,'Натиснить будь-яку клавишу ...');

delay(10000);

nosound;

repeat until keypressed;

end;

5: begin

setbkcolor(lightred);

h:=0.02;

Outtextxy(150,200,'Крок h=0.02 ');

Outtextxy(170,250,'Натиснить будь-яку клавишу ...');

repeat until keypressed;

end;

6: begin

setbkcolor(lightred);

h:=0.05;

Outtextxy(150,200,'Крок h=0.05 ');

Outtextxy(170,250,'Натиснить будь-яку клавишу ...');

repeat until keypressed;

end;

7: begin

setbkcolor(lightred);

Outtextxy(160,200,'Програму виконав ст.гр. 3АВ-02');

Outtextxy(210,220,'Нетяга О.В.');

repeat until keypressed;

end;

8: exit;

end;

until (i=7) or (i=-1);

CloseGraph;

end.

Додаток Б