Чисельне інтегрування методом Гауса

[ виправити ] текст може містити помилки, будь ласка перевіряйте перш ніж використовувати.

скачати

Курсова робота
"Чисельне інтегрування методом Гауса"

Федеральне агентство з освіти
Тульський державний університет
КАФЕДРА РАДІОЕЛЕКТРОНІКИ
ІНФОРМАТИКА
ЗАВДАННЯ НА КУРСОВУ РОБОТУ
Варіант № 42
Студенту гр.220371 Подобеденко І.В.
1. Тема: "Чисельне інтегрування-методом Гауса"
Розробіть алгоритм та програму:
1) обчислення визначеного інтеграла методом Гаусса та 2) побудови графіка функції я 3) побудови декількох (по 2 - 3) "кроків" інтегрування на ділянках зростання та спадання функції.
Контрольний приклад.
Вихідні дані:
2. Термін подання курсової роботи на перевірку з 12 по 15 травня 2008
3. Захист курсової роботи з 19 по 23 травня 2008
4. Вимоги до курсової роботи:
3.1 Розробити алгоритм і програму вирішення поставленого завдання.
3.2 Мова програмування - Паскаль.
3.3 Передбачити: а) діалоговий введення вихідних даних з перевіркою правильності вводяться величин, б) блок пояснень до роботи з програмою, в) рішення контрольного прикладу.
5. Форма звітності:
пояснювальна записка (ПЗ) обсягом 25-40 сторінок на аркушах з рамками і штампом, віддрукована на принтері,
графічна частина - аркуш формату А1,
дискета з текстом ПЗ, малюнком алгоритму і програмою (текстовий і виконуваний файли).
6. Зміст пояснювальної записки до курсової роботи:
1) титульний лист,
2) завдання на курсову роботу (справжнє бланк).
3) анотація (коротка характеристика виконаної роботи, обсяг ПЗ, кількість таблиць, малюнків, схем. Програм і програм) з основним написом за формою 2 (ГОСТ 2.104-68) - 1 с,
4) зміст (лист змісту і всі наступні листи - з основним написом за формою 2а - ГОСТ 2.104-68),
5) запровадження (область застосування поставленого завдання, можливість використання ЕОМ для вирішення поставленої задачі) - 1-2 с,
6) аналіз завдання (вибір вхідних та вихідних даних) - 2-3 с.
7) огляд літературних джерел і розробка (вибір) математичної моделі задачі - 2-4 с,
8) опис методів обчислювальної математики, які будуть використані при вирішенні поставленої задачі - 3-4 с,
9) розробка алгоритму рішення задачі й опис його особливостей (розроблених або вибраних з готових процедур і функцій) - 5-7 с,
10) розробка програми за схемою алгоритму - 1-2 с.
11) розроблення інструкції користування програмою - 1 с.
12) роздруківка програми (текстовий файл) - допускається призвести як додаток - 2-3 сторінки
13) роздруківка вихідних даних і результатів рішення контрольного прикладу - 1-2 с.
14) висновок (докладні висновки по виконаній роботі) - 1-2 с.
15) список використаної літератури - 1 с.
16) програми (інструкції користування програмою і ін)
7. Графічна частина: алгоритм вирішення поставленого завдання - аркуш формату A1
8. Література.

Анотація

У роботі розглянуті методи чисельного інтегрування функцій. Для докладного розгляду був узятий метод Гаусса.
У рамках курсової роботи реалізований словесний і мовою блок-схем алгоритм і програму мовою програмування Паскаль, яка обчислює заданий інтеграл по методи Гауса і показує графічне відображення процесу.
Обсяг роботи - 23 листа, кількість малюнків - 2, представлена ​​одна програма.

Зміст

Анотація. 4
Введення. 6
1. Аналіз завдання. 8
2. Вибір математичної моделі задачі. 10
2.1 Метод прямокутників. 10
2.2 Метод парабол (метод Сімпсона) 11
2.4 Збільшення точності. 11
2.5 Метод Гаусса. 12
2.6 Метод Гаусса-Кронрод. 12
3. Опис методів обчислювальної математики, які будуть використані при вирішенні поставленої задачі. 14
3.1. Розробка алгоритму рішення задачі й опис його особливостей 15
3.2 Розробка програми за схемою алгоритму. 18
3.3 Розробка інструкції користування програмою. 19
3.4 Роздруківка програми .. 19
3.5 Роздруківка вихідних даних і результатів рішення контрольного прикладу 26
Висновок. 27
Список використаної літератури .. 28

Введення

Поява і безперервне вдосконалення швидкодіючих електронних обчислювальних машин (ЕОМ) призвело до справді революційному перетворенню павуки взагалі і математики особливо. Змінилася технологія наукових досліджень, колосально збільшилися можливості теоретичного вивчення, прогнозу складних процесів, проектування інженерних конструкцій. Рішення великих науково-технічних проблем, прикладами яких можуть служити проблеми оволодіння ядерною енергією та освоєння космосу, стало можливим лише завдяки застосуванню математичного моделювання і нових чисельних методів, призначених для ЕОМ.
В даний час можна говорити, що з'явився новий спосіб теоретичного дослідження складних процесів, що допускають математичний опис, - обчислювальний експеримент, тобто дослідження природничо проблем засобами обчислювальної математики. Розробка та дослідження обчислювальних алгоритмів та їх застосування до розв'язання конкретних завдань становить зміст величезного розділу сучасної математики - обчислювальної математики.
Чисельні методи дають наближений розв'язок задачі. Це означає, що замість точного рішення та (функції або функціоналу) деякої задачі ми знаходимо рішення в іншої задачі, близьке в деякому сенсі (наприклад, за нормою) до шуканого. Основна ідея всіх методів - дискретизація або апроксимація (заміна, наближення) вихідної задачі іншим завданням, більш зручною для вирішення на ЕОМ, причому рішення апроксимуючої завдання залежить від деяких параметрів, керуючи якими, можна визначити рішення з необхідною точністю. Наприклад, у задачі чисельного інтегрування такими параметрами є вузли і ваги квадратурної формули. Далі, рішення дискретної задачі є елементом конечномерного простору.
Чисельне інтегрування (історична назва: квадратура) - обчислення значення певного інтеграла (як правило, наближене), засноване на тому, що величина інтеграла чисельно дорівнює площі криволінійної трапеції, обмеженої віссю абсцис, графіком інтегровною функції і відрізками прямих, які є межами інтегрування.
Необхідність застосування чисельного інтегрування найчастіше може бути викликана відсутністю у первісної функції подання в елементарних функціях і, отже, неможливістю аналітичного обчислення значення певного інтеграла за формулою Ньютона-Лейбніца. Також можлива ситуація, коли вид первообразной настільки складний, що швидше обчислити значення інтеграла чисельним методом.

1. Аналіз завдання

Основна ідея більшості методів чисельного інтегрування полягає в заміні підінтегральної функції на більш просту, інтеграл від якої легко обчислюється аналітично. При цьому для оцінки значення інтеграла виходять формули виду
I \ approx \ sum_ {i = 1} ^ {n} w_i \, f (x_i),
де n \, \! - Число точок, в яких обчислюється значення підінтегральної функції. Точки x_i \, \! називаються вузлами методу, числа w_i \, \! - Вагами вузлів. При заміні підінтегральної функції на поліном першого й другого ступеня виходять відповідно методи прямокутників, трапецій і парабол (Сімпсона). Часто формули для оцінки значення інтеграла називають квадратурних формул.
Нехай функція задана на інтервалі . Завдання полягає в тому, щоб підібрати точки і коефіцієнти так, щоб квадратурна формула
(3.1)
була точною для всіх поліномів найвищою можливою мірою.
З огляду на те, що є параметрів і , А поліном мірою визначається коефіцієнтами, ця найвища ступінь в загальному випадку.
Таким чином, вхідними даними для нас буде підінтегральна функція f (x), межі інтегрування a і b, кількість вузлів методу k. А також точність обчислень eps.
На виході ми будемо мати значення певного інтеграла при заданій кількості разбиений межах інтегрування. Також ми отримаємо графічне відображення процесу інтегрування на ділянках зростання та спадання функції.

2. Вибір математичної моделі задачі

Коротко розглянемо основні методи чисельного інтегрування і з'ясуємо чому метод Гауса найбільш підходить для вирішення нашої задачі.

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

Метод прямокутників виходить при заміні підінтегральної функції на константу. В якості константи можна взяти значення функції в будь-якій точці відрізка \ Left [a, b \ right] \, \! . Найбільш часто використовуються значення функції в середині відрізка і на його кінцях. Відповідні модифікації носять назви методів середніх прямокутників, прямокутників і правих прямокутників. Формула для наближеного обчислення значення певного інтеграла методом прямокутників має вигляд
I \ approx f (x) (b-a) ,
де x = \ frac {a + b} {2} , a \ або b \ , Відповідно.
Метод трапецій
Якщо функцію на кожному з часткових відрізків апроксимувати прямою, яка проходить через кінцеві значення, то отримаємо метод трапецій.
Площа трапеції на кожному відрізку: ~ I_i \ approx \ frac {f (x_ {i-1}) + f (x_ {i})} {2} (x_ {i}-x_ {i-1}) Похибка апроксимації на кожному відрізку: ~ \ Left | R_ {i} \ right | \ leqslant \ frac {\ left (ba \ right) ^ 3} {12n ^ 2} M_ {2, i} , Де M_ {2, i} = \ max_ {x \ mathcal {2} [x_ {i-1}, x_i]} \ left | f''(x) \ right | Повна формула трапецій у разі поділу всього проміжку інтегрування на відрізки однакової довжини h: ~ I \ approx h \ left (\ frac {f (x_ {0}) + f (x_ {n})} {2} + \ sum_ {i = 1} ^ {n-1} f (x_ {i} ) \ right) , Де h = \ frac {b-a} {n} Похибка формули трапецій: ~ \ Left | R \ right | \ leqslant \ frac {\ left (ba \ right) ^ 3} {12n ^ 2} M_ {2} , Де M_ {2} = \ max_ {x \ mathcal {2} [a, b]} \ left | f''(x) \ right |

2.2 Метод парабол (метод Сімпсона)

Використавши три точки відрізка інтегрування можна замінити підінтегральної функції параболою. Зазвичай в якості таких точок використовують кінці відрізка і його середню точку. У цьому випадку формула має дуже простий вигляд
I \ approx \ frac {ba} {6} \ left (f (a) +4 f \ left (\ frac {a + b} {2} \ right) + f (b) \ right) .
Якщо розбити інтервал інтегрування на 2N рівних частин, то маємо
I \ approx \ frac {ba} {6N} \ left (f_0 + 4 \ left (f_1 + f_3 + ... + f_ {2N-1} \ right) + 2 \ left (f_2 + f_4 + ... + f_ {2N-2} \ right) + f_ {2N} \ right) ,
де f_i = f \ left (a + \ frac {(b-a) i} {2N} \ right) .

2.4 Збільшення точності

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

2.5 Метод Гаусса

Описані вище методи використовують фіксовані точки відрізка (кінці і середину) і мають низький порядок точності (0 - методи правих і лівих прямокутників, 1 - методи середніх прямокутників і трапецій, 3 - метод парабол (Сімпсона)). Якщо ми можемо вибирати точки, в яких ми обчислюємо значення функції f (x) \, \! , То можна при тій же кількості обчислень підінтегральної функції отримати методи більш високого порядку точності. Так для двох (як у методі трапецій) обчислень значень підінтегральної функції, можна отримати метод вже не 1-го, а 3-го порядку точності:
I \ approx \ frac {ba} {2} \ left (f \ left (\ frac {a + b} {2} - \ frac {ba} {2 \ sqrt {3}} \ right) + f \ left ( \ frac {a + b} {2} + \ frac {ba} {2 \ sqrt {3}} \ right) \ right) .
У загальному випадку, використовуючи n \, \! точок, можна отримати метод з порядком точності 2n-1 \, \! . Значення вузлів методу Гауса по n \, \! точкам є корінням полінома Лежандра ступеня n \, \! .
Значення вузлів методу Гауса і їх ваги наводяться в довідниках спеціальних функцій. Найбільш відомий метод Гауса по п'яти точках.

2.6 Метод Гаусса-Кронрод

Недолік методу Гаусса полягає в тому, що він не має легені (з обчислювальної точки зору) шляхи оцінки похибки отриманого значення інтеграла. Використання правила Рунге вимагає обчислення підінтегральної функції приблизно в такому ж числі точок, не даючи при цьому практично ніякого виграшу точності, на відміну від простих методів, де точність збільшується в рази при кожному новому розбивці. Кронрод був запропонований наступний метод оцінки значення інтеграла
I \ approx \ sum_ {i = 1} ^ {n} a_i \, f (x_i) + \ sum_ {i = 1} ^ {n +1} b_i \, f (y_i) ,
де x_i \, \! - Вузли методу Гауса по n \, \! точкам, а 3n +2 \, \! параметрів a_i \, \! , b_i \, \! , y_i \, \! підібрані таким чином, щоб порядок точності методу дорівнював 3n +1 \, \! .
Тоді для оцінки похибки можна використовувати емпіричну формулу:
\ Delta = \ left (200 | I - I_G | \ right) ^ {1.5} ,
де I_G \, \! - Наближене значення інтеграла, отримане методом Гауса по n \, \! точкам.

3. Опис методів обчислювальної математики, які будуть використані при вирішенні поставленої задачі

Сутність більшості методів обчислення визначених інтегралів полягає в замінений підінтегральної функції апроксимується функцією, для якої можна легко записати первісну в елементарних функціях.
Апроксимація, або наближення - математичний метод, який полягає у заміні одних математичних об'єктів іншими, в тому чи іншому сенсі близькими до вихідних, але більш простими. Апроксимація дозволяє дослідити числові характеристики та якісні властивості об'єкта, зводячи завдання до вивчення більш простих або більш зручних об'єктів (наприклад, таких, характеристики яких легко обчислюються або властивості яких вже відомі). У теорії чисел вивчаються Діофантові наближення, зокрема наближення ірраціональних чисел раціональними. В геометрії розглядаються апроксимації кривих ламаними. Деякі розділи математики по суті цілком присвячені апроксимації, наприклад, теорія наближення функцій, чисельні методи аналізу.
Також у задачах такого роду активно використовуються інтерполяційні методи знаходження значень функції.
Інтерполяція - в обчислювальній математиці спосіб знаходження проміжних значень величини по наявному дискретному набору відомих значень.
Багатьом з тих, хто стикається з науковими та інженерними розрахунками часто доводиться оперувати наборами значень, отриманих експериментальним шляхом чи методом випадкової вибірки. Як правило, на підставі цих наборів потрібно побудувати функцію, на яку могли б з високою точністю потрапляти інші одержувані значення. Така задача називається апроксимацією кривої. Інтерполяцією називають такий різновид апроксимації, при якій крива побудованої функції проходить точно через наявні точки даних.
Існує також близька до інтерполяції задача, яка полягає в апроксимації якої-небудь складної функції іншої, більш простою функцією. Якщо деяка функція занадто складна для продуктивних обчислень, можна спробувати обчислити її значення в декількох точках, а по них побудувати, тобто інтерполювати, більш просту функцію. Зрозуміло, використання спрощеної функції не дозволяє отримати такі ж точні результати, які давала б початкова функція. Але в деяких класах завдань досягнутий виграш у простоті і швидкості обчислень може переважити отримувану похибка в результатах.
На практиці найчастіше застосовують інтерполяцію поліномами. Це пов'язано насамперед з тим, що поліноми легко обчислювати, легко аналітично знаходити їх похідні і безліч поліномів щільно в просторі неперервних функцій.

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

Нехай функція задана на стандартному інтервалі. Завдання полягає в тому, щоб підібрати точки і коефіцієнти так, щоб квадратурна формула
(1.1)
була точною для всіх поліномів найвищою можливою мірою.
З огляду на те, що є параметрів і, а поліном мірою визначається коефіцієнтами, ця найвища ступінь в загальному випадку.
Запишемо поліном у вигляді і підставимо в (1.1). Отримаємо
,
.
Прирівнюючи вирази при однакових коефіцієнтах отримаємо
,,
,.
Отже, і знаходять із системи рівнянь
,
,
, (1.2)
... ... .
.
Система (1.2) нелінійна, і її рішення знайти досить важко. Розглянемо ще один прийом нахожденіяі. Властивості поліномів Лежандра
,
такі:
1),;
2);
3) поліном Лежандра має різних і дійсних коренів, розташованих на інтервалі.
Складемо по вузлах інтегрування многочлен-го ступеня
.
Функція при є многочлен ступеня не вище. Значить для цієї функції формула Гауса справедлива:
, (4.3)
так як.
Розкладемо в ряд з ортогональних многочленів Лежандра:
,
,
,
тобто всі коефіцієнти при. Значить з точністю до чисельного множника збігається с. Таким чином, вузлами формули Гауса є нулі многочлена Лежандра ступеня.
Знаючи, з лінійної тепер системи першого (4.2) легко знайти коефіцієнти. Визначник цієї системи є визначник Вандермонда.
Формулу, в якій - нулі полінома Лежандра, а визначають з (3.3), називають квадратурної формулою Гаусса.
Таким чином, алгоритм розв'язання нашої задачі буде таким:
Введення даних - межі інтегрування, кількість вузлів, точність і підінтегральна функція
Підпрограма обчислення інтеграла із заданою точністю, яка використовує підпрограму обчислення функції десятіточечним методом
Підпрограма графічного відображення результатів обчислень за цим методом.

3.2 Розробка програми за схемою алгоритму

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

3.3 Розробка інструкції користування програмою

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

3.4 Роздруківка програми

{$ N +}
{Обчислення інтегpала десятіточечним методом Гаусса}
uses crt, graph;
var aaa, bbb, kkk: real;
{Константи десятіточечного методу Гауса}
const
g10c1 = 0.9739065285 / 6. 2012983932;
g10c2 = 0.8650633667 / 6. 2012983932;
g10c3 = 0.6794095683 / 6. 2012983932;
g10c4 = 0.4333953941 / 6. 2012983932;
g10c5 = 0.1488743390 / 6. 2012983932;
g10x1 = 0.0666713443 / 6. 2012983932;
g10x2 = 0.1494513492 / 6. 2012983932;
g10x3 = 0.2190863625 / 6. 2012983932;
g10x4 = 0.2692667193 / 6. 2012983932;
g10x5 = 0.2955242247 / 6. 2012983932;
function F (x: real): real; {інтегрована функція}
begin
F: = kkk * (exp (-aaa * x) - exp (-bbb * x));
end;
function gauss_calc (a, b: real): real; {сам десятіточечний метод Гауса}
var n, m, s, s1, s2, s3, s4, s5: real;
begin
m: = (b + a) / 2; n: = (ba) / 2;
s1: = g10c1 * (f (m + n * g10x1) + f (mn * g10x1));
s2: = g10c2 * (f (m + n * g10x2) + f (mn * g10x2));
s3: = g10c3 * (f (m + n * g10x3) + f (mn * g10x3));
s4: = g10c4 * (f (m + n * g10x4) + f (mn * g10x4));
s5: = g10c5 * (f (m + n * g10x5) + f (mn * g10x5));
s: = s1 + s2 + s3 + s4 + s5;
gauss_calc: = s * (ba);
end;
{Рекурсивна ф-ція підрахунку із заданою точністю}
{Gc - раніше посчітаний інтеграл на інтервалі (a, b)}
function gauss (a, b, eps, gc: real): real;
var t, ga, gb: real;
begin
t: = (a + b) / 2; {розбиваємо інтервал на дві половинки}
ga: = gauss_calc (a, t); {в кожній половинці вважаємо інтеграл}
gb: = gauss_calc (t, b);
if abs (ga + gb-gc)> eps then {перевіряємо точність обчислень}
begin
ga: = gauss (a, t, eps / 2, ga); {рекурсія для першої половинки}
gb: = gauss (t, b, eps / 2, gb); {рекурсія для другої половинки}
end; {при цьому точність підвищуємо, щоб}
{При додаванні помилка не накопичувалася}
gauss: = ga + gb; {інтеграл = сумі інтегралів половинок}
end;
procedure inputnum (prm: string; var num: real; lb, ub: real); {процедура введення даних}
var q: boolean;
begin
repeat
write ('Введіть', prm, ''); readln (num);
q: = (lb> = num) or (num> ub);
if q then writeln ('Кількість повинно бути від', lb: 0: 0, 'до', ub: 0: 0);
until not q;
end;
procedure titul; {Висновок титульного аркуша}
var f: text; s: string;
i: integer;
begin
clrscr;
assign (f, 'f42. txt');
reset (f);
while not eof (f) do begin
readln (f, s);
while length (s) <79 do s: = '' + s + '';
writeln (s);
end;
close (f);
end;
function main_menu: integer; {Головне меню}
var i: integer;
begin
Writeln ('=============================================== ===========');
Writeln ('Що будемо робити?');
Writeln ('----------------------------------------------- -----------');
Writeln ('0 - вихід ');
Writeln ('1 - вирішувати тестовий приклад a = 1,5 b = 6 k = 10 eps = 0.0001 ');
Writeln ('2 - вирішувати приклад з довільними a, b, k, eps ');
Writeln ('----------------------------------------------- -----------');
Write ('Вибір>>>'); readln (i);
Writeln ('=============================================== ===========');
main_menu: = i;
end;
procedure outputgraph (a, b, a1, b1: real; n: integer); {Висновок графіка}
var i, j, j1, k: integer; t, y1, y2, x1, x2, x, y: double; s: string;
begin
clearviewport;
x1: = a1-1; x2: = b1 +1;
if x1 <0.5 then x1: =- 0.5;
y2: = f (ln (bbb / aaa) / (bbb-aaa)) * 1.2;
y1: =- y2;
{Лінія y = 0}
setcolor (15);
y: = 0;
j: = trunc (480 * (y-y2) / (y1-y2));
line (0, j, 639, j);
{Лінії x = a, x = b}
setcolor (5);
j: = trunc (480 * (-y2) / (y1-y2));
i: = trunc (640 * (a-x1) / (x2-x1));
j1: = trunc (480 * (f (a) - y2) / (y1-y2));
line (i, j, i, j1);
i: = trunc (640 * (b-x1) / (x2-x1));
j: = trunc (480 * (-y2) / (y1-y2));
j1: = trunc (480 * (f (b) - y2) / (y1-y2));
line (i, j, i, j1);
{Сам графік}
setcolor (14);
setlinestyle (0,0,3);
t: = (ba) / n;
k: = 0;
j1: = trunc (480 * (-y2) / (y1-y2));
for i: = 0 to 640 do begin
x: = (x2-x1) * i/640 + x1;
y: = f (x);
j: = trunc (480 * (y-y2) / (y1-y2));
if j> 479 then j: = 479;
if j <0 then j: = 0;
setcolor (14);
setlinestyle (0,0,3);
if i = 0 then moveto (i, j) else lineto (i, j);
setcolor (8);
if (x> t * k + a) then begin
k: = k +1;
setcolor (15);
end;
setlinestyle (0,0,1);
if (x> = a) and (x <= b) then line (i, j, i, j1);
end;
setcolor (15);
y: = f (b);
i: = trunc (640 * (b-x1) / (x2-x1));
j: = trunc (480 * (y-y2) / (y1-y2));
line (i, j, i, j1);
setlinestyle (0,0,1);
setcolor (12);
{Підписи}
setcolor (13);
str (a: 6: 6, s);
s: = 'a =' + s;
i: = trunc (640 * (a-x1) / (x2-x1));
outtextxy (i, j1 +2, s);
str (b: 6: 6, s);
s: = 'b =' + s;
i: = trunc (640 * (b-x1) / (x2-x1));
outtextxy (i-10, j1 +2, s);
setcolor (15);
y: = 0;
j: = trunc (480 * (y-y2) / (y1-y2));
outtextxy (5, j +3, 'y = 0');
{Чекаємо ... }
readkey;
end;
procedure equateit (a, b: real; eps: real); {процедура підрахунку значення інтеграла і виведення графіка на екран}
var integral: real; i, j: integer;
begin
Integral: = gauss (a, b, eps, gauss_calc (a, b));
writeln ('Інтеграл =', integral: 0: 6);
readkey;
i: = vga; j: = vgahi;
initgraph (i, j, '.. \ bgi');
outputgraph (a, (b + a) / 3, a, b, 1);
outputgraph ((b + a) / 3,2 * (b + a) / 3, a, b, 1);
outputgraph (2 * (b + a) / 3, b, a, b, 1);
closegraph;
end;
var sel: integer;
eps: real;
begin
titul;
Writeln ('=============================================== ===========');
readkey;
repeat
clrscr;
sel: = main_menu;
case sel of
1: begin
aaa: = 1.5; bbb: = 6; kkk: = 10;
eps: = 1e-4;
equateit (aaa, bbb, eps);
end;
2: begin
inputnum ('a', aaa, 0,1000);
inputnum ('b', bbb, -1000,1000);
inputnum ('k', kkk, -1000,1000);
inputnum ('точність', eps, 0.000000001,1);
equateit (aaa, bbb, eps);
end;
end;
until sel = 0;
end.

3.5 Роздруківка вихідних даних і результатів рішення контрольного прикладу



Висновок

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

Список використаної літератури

1. Малихіна М.П. Програмування на мові високого рівня Turbo Pascal. - Спб.: БХВ-Петербург, 2006, 544 с.
2. Немнюгин С.А. Turbo Pascal. - Спб.: Пітер, 2002. - 496 с.
3. Фаронов В.В. Турбо Паскаль 7.0. Початковий курс. Навчальний посібник. - М.: Нолидж, 1997. - 616 с.
4. Гусєва А.І. Вчимося програмувати: PASCAL 7.0. Завдання і методи їх вирішення. - М.: Діалог-МІФІ, 1997. - 256 с.
5. Дьяконов В.П. Довідник з алгоритмів і програм на мові Бейсік для персональних ЕОМ: Довідник. - М.: Наука. Гол. ред. фіз. -Мат. лит., 1987. - 240 с.
6. Сапаров В.Є., Максимов Н.А. Системи стандартів в електрозв'язку та радіоелектроніки: Навчальний посібник для вузів. - М. - Радіо і зв'язок, 1985. - 248 с.
7. ГОСТ 19.701-90 (ИСО 5807-85). "Єдина система програмної документації. Схеми алгоритмів, програм, даних і систем. Умовні позначення і правила виконання "/ Cб. ЕСПД. - М.: Изд-во стандартів, 1996. - 157 с.
8. Бахвалов Н., Жидков Н., Кобельков Г. Чисельні методи. М.: Лабораторія базових знань, 2001.632 с.
9. Форсайт Дж., Малькольм М., Моулер К. Машинні методи математичних обчислень / Пер. з англ. М.: Світ, 1980.177с.
10. Самарський О.А., Гулін А.В. Чисельні методи: Навчальний посібник для ВНЗ. М.: Наука, 1989.432с.
Додати в блог або на сайт

Цей текст може містити помилки.

Програмування, комп'ютери, інформатика і кібернетика | Курсова
51.7кб. | скачати


Схожі роботи:
Чисельне інтегрування функції методом Гауса
Чисельне інтегрування методом прямокутників
Розвязання рівнянь методом оберненої матриці та методом Гауса
Чисельне інтегрування функції двох змінних
Чисельне рішення системи лінійних рівнянь за допомогою методу виключення Гауса з вибором головного
Обчислення визначника методом Гауса
Розвязок інтеграла методом Чебиша Гауса Сімпсона
Розв язання систем лінійних рівнянь методом Гауса
Пошук рішень системи лінійних рівнянь методом Гауса
© Усі права захищені
написати до нас