Міністерство освіти і науки України
Вінницький національний технічний університет
Інститут автоматики, електроніки та комп’ютерних
систем управління
Факультет АКСУ
Кафедра АІВТ
Курсова робота
з дисципліни
«Обчислювальні методи та застосування ЕОМ»
Дослідження методів чисельного інтегрування
2006
Анотація
В даній курсовій роботі розроблена програма для обчислення визначеного інтегралу методом Чебишева третього четвертого та п’ятого порядків.
Програма дозволяє отримати розв’язання інтегралу зазначеним методом, оцінити похибки та порівнювати їх з точним обчисленнями отриманими в математичному пакеті Mathcad 2001 Professional.
1. Теоретичні відомості
У курсовій роботі проведено дослідження методів чисельного інтегрування. Адже, у задачах, пов'язаних з аналізом, ідентифікацією, оцінкою якості, моделюванням різноманітних пристроїв автоматики, керування, інформаційно-вимірювальної техніки, радіоелектроніки, виникає необхідність обчислення визначених інтегралів.
В основу чисельного інтегрування покладено наближене обчислення площини під кривою, яка описується підінтегральною функцією інтеграла:
Загальний підхід до розв’язування цієї задачі такий: визначений інтеграл I являє собою площину, обмежену кривою f(х), віссю Х та прямими Х = a, Х =b, відрізок від a до b розбивають на множину менших відрізків, знаходять наближено площу кожної площини Si, яку отримують за таким розбиванням, значення інтеграла І знаходять як суму площ площин Sі, тобто I = Si. При цьому використовують два способи розбивання початкового відрізка на менші
1.Розбивання відрізка проводиться раніше, до того ж завжди відрізок вибирають рівним (метод прямокутників, трапецій, Сімпсона).
2.Місцезнаходження та довжина відрізків визначаються аналізом, до того ж спочатку ставиться за мету досягти найбільшої точності з заданим числом відрізків, а потім відповідно з цим визначають їхні межі (методи Гаусса, Ньютона - Котеса, Чебишева) [1].
1.1 Метод прямокутників
Найпростішим методом наближеного обчислення інтеграла є метод прямокутників, геометрична інтерпретація якого зводиться до знаходження визначеного інтеграла як суми площ N прямокутників (з висотою f(x) та основою h=xi=xi+1-xi), отриманих розділень відрізка[a,b] на N рівних частин, до того ж якщо розділити на прямокутники зліва на право, то отримаємо формулу лівих прямокутників:
In=f(x)dx»Si=h[f(x0)+f(x1)+...+f(xn-1)]=f(xi);(1.1)
якщо ж розділити на N прямокутників справа на ліво, то отримаємо формулу правих прямокутників:
Iпр=f(x)dx»h[f(xn)+...+f(x1)]=f(xi)(1.2)
1.2 Метод трапецій
Суть методу трапеції, полягає в тому, що інтеграл обчислюється по-іншому, відрізок інтегрування поділяється на N рівних відрізків, всередині яких підінтегральна крива f(x) замінюється кусково- лінійною функцією j(x), отриманою стягуванням ординат N відрізків хордами.
Обчислення визначеного інтеграла зводиться до знаходження сум площ Si прямокутних трапецій N.
Площа кожної такої трапеції визначається як:
Si=h(f(xi)+f(xi+1)).(1.3)
Отже, формула трапеції:
I=»Si=h(f(x0)+f(x1)+f(x2)+...+f(xn-1)+f(xN)= =[(f(x0)+f(xn))+f(xi)].(1.4)
Графічна модель
Похибка обчислення інтеграла за формулою трапецій оцінюється як
(1.5)
Де М2 –максимальне значення другої похідної. f(x) при ,h-крок обчислень.
1.3 Метод Сімпсона (метод парабол або метод криволінійних трапецій)
Цей метод також використано у курсовій роботі, близький до методу трапецій у тій частині, що інтегрування проводиться шляхом поділу відрізка інтегрування [а, b] на множину відрізків (N пар відрізків). Однак, з метою збільшення точності наближеного інтегрування на кожному відрізку [Xi, Xi+2] підінтегральної функції f(x) замінюють квадратичною параболою j(x), обчислення визначеного інтеграла зводиться до обчислення суми N криволінійних трапецій Si: I= f(x)dx»Si [1].
Графічна модель.
Площа кожної такої трапеції визначається за формулою Сімпсона:
Si= [f(xi)+4f(xi+1)+f(xi+2)], (1.6), тобто
(y0+4y1+y2),
(y2+4y3+y4),
(y4+4y5+y6), (1.7)
. . . . . . . . . . . . . . . . . . . . . . .
(y2n-2+4y2n-1+y2n),
Тоді чисельне значення визначеного інтеграла на відрізку [a,b] дорівнюватиме сумі інтегралів, тобто
[y0+y2n+4(y1+...+y2n-1)+2(y2+...+y2n-2)],
або
[y0+y2n+4y2i-1+2y2i],(1.8)
де h =(b-a)/2N.
Похибка обчислення інтеграла за формулою Сімпсона оцінюється як
де М4 –максимальне значення четвертої похідної. f(x) при , h-крок обчислень.
1.4 Метод Ньютона-Котеса
Цей метод засновано на апроксимації однієї із сторін криволінійної трапеції, яка отримується поділом відрізка [a,b] на N рівних частин, многочленами вищих порядків, також як у методі трапецій використовується лінійна апроксимація (заміна однієї із сторін трапеції прямою лінією), а в методі Сімпсона - апроксимація параболою.
Основна формула методу:
yiHi,(1.9)
де Hi - коефіцієнти Ньютона - Котеса. Ці коефіцієнти не залежать від вигляду f(x), а є функцією тільки N (кількість вузлів інтерполяцїї). Таким чином, коефіцієнти Ньютона - Котеса можна обчислити раніше для різного числа вузлів інтерполяції .
Легко можна показати, що методи трапецій та Сімпсона є частинними випадками методу Ньютона - Котеса.
1.5 Метод Чебишева
Метод Чебишева використано в курсовій грунтується на обчисленні інтеграла за значеннями функції yi =f(xi),(i=1,2,...,N) у зафіксованих вузлах інтерполяції x1,x2,...,xN (де h=const). Коефіцієнти Ньютона -Котеса Нi (i=1,N) не залежать від значень функції у вузлах інтерполяції. П.Л.Чебишев запропонував для обчислення визначених інтегралів використати формулу:
cif(xi),(1.10)
в якій квадратурні коефіцієнти сi (i = 1,2, ...,N) зафіксовані, а абсциси xi (i=1,2,...,N)підлягаютьвизначенню.
Таблиця 1.1.
Коефіцієнти Ньютона - Котеса
n = 1 | Но = H1 = Ѕ |
n = 2 | Но = Н2 = 1/6, Н1 = 2/3 |
n = 3 | Н0 = Н3 = 1/8, Н1 = H2 = 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(x1)+f(x2)+...+f(xn)],(1.11)
де квадратурні коефіцієнти Сn та абсциси xi підлягають визначенню.
Коефіцієнти та вузли інтерполяції xi визначимо із умови, що ця рівність є точною для випадку, коли f(х) многочлен вигляду:
f(x)=a0+a1x+a2x2+...+anxn.(1.12)
Підставимо многочлен у ліву частину попередньої формули та про- інтегруємо:
(a0+a1x+a2x2+...+anxn)=2(a0+a2+a3+...).(1.13)
У праву частину рівності (1. 11) підставимо значення многочлена (1.І2) у вузлах x1,x2,...,xn:
f(x1)=a0+a1x1+a2x12+a3x13+...+anx1n,
f(x2)=a0+a1x2+a2x22+a3x23+...+anx2n,
f(x3)=a0+a1x3+a2x32+a3x33+...+anx3n,(1.14)
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
f(xn)=a0+a1xn+a2xn2+a3xn3+...+anxnn,
Тоді рівність (1.ІЗ) набере вигляду:
2(a0+a2+a4+...)=2cn[na0+a1(x1+x2+...+xn)+a2(x12+x22+...+xn2)+
+a3(x13+x23+...+xn3)+...+an(x1n+x2n+...+xnn)].(1.15)
Отримана рівність повинна виконуватися за будь-яких значень a0,a1,...,an; таким чином, порівнюючи коефіцієнти аi в правій та лівій частинах (1.І5) знаходимо, що nсn = 1, звідки
Cn=.(1.16)
і, крім цього,
x1+x2+x3+...+xn=0,
x12+x22+x32+...+xn2=,
x13+x23+x33+...+xn3=0,(1.17)
x14+x24+x34+...+xn4=,
. . . . . . . . . . . . . . . . . . .
x1n+x2n+x3n+...+xnn=[1-(-1)n+1],
Підставляючи знайдене для Сn виразу в співвідношені 1.13 отримаємо формулу Чебишева:
[f(x1)+f(x2)+...+f(xn)],(1.18)
де точки x1,...,хn визначаються із системи рівнянь (1.17).
Значення x1,...,хn для різних n обчислюються раніше та зводять в табл. 1.2.
Коли межі даного інтеграла відрізняються від -1 та 1, формула Чебишева матиме вигляд:
[f(z1)+f(z2)+...+f(zn)],(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 |
Zi=+xi, (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.
Додаток Б