Бінарна алгебраїчна операція
Химия

Розрахунок площі складної фігури методом імітаційного моделювання


Розрахунок площі складної фігури методом імітаційного моделювання

Завантажити реферат: Розрахунок площі складної фігури методом імітаційного моделювання

Розробка програми, що дозволяє за допомогою методу імітаційного моделювання розрахувати площу складної фігури, що обмежена зверху кривою U=Y1(x) , знизу V=Y2(x)

1. Для вирішення цього завдання застосуємо наступний метод.

Обмежимо задану фігуру прямокутником, сторони якого проходять:

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

через ліву та праву граничні точки області визначення аргументу та паралельні осям ординат

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

2. Технічні характеристики об’єкта дослідження:

2.1. Діапазон значень параметрів задачі.

Безліч кривих обмежимо поліномами третього порядку, оскільки поліноми вищого порядку сильно збільшують час обчислення. Причому для наочності рішення цілком достатньо «3».

Коефіцієнти полінома обмежимо діапазоном [-100,100]

Область визначення обмеженим діапазоном [-100,100]

Ці обмеження введені для наочнішого вирішення завдання, і змінити їх не з технічної точки зору не складно.

3. Розв’язання задачі

Ця задача вирішена в середовищі Turbo C. Для вирішення потрібно загальне завдання розбити на кілька невеликих завдань (процедур)

4. Опис процедур, що використовується в програмі.

4.1 Файл WINDOW.C.

4.1.1 Процедура введення параметрів.

void get_poly( float *b3,float *b2,float *b1,float *b0, //-коефіцієнти полінома Y1

fliat *c3,float *c2,float *c1,float *c0, //-коефіцієнти полінома Y2

float *x1,float *x2, // область визначення [x1,x2]

int * N ) // кількість звернень до генератора

//випадкових чисел

4.1.2 Процедура малювання вікна.

border(int sx, int sy, int en, int ey) // малює рамку з координатами лівого верхнього

// Кута (sx, sy) та координатами правого нижнього

// Кута (ex, ey)

4.1.3 Процедура повідомлення про помилку під час введення.

void talkerror(void) —

Процедура подає звуковий сигнал і виводить на екран повідомлення про помилку під час введення

4.2. Файл MATIM.C

4.2.1 Процедура обчислення максимального та мінімального значень функцій на заданому інтервалі.

void f_max(float b3,float b2,float b1,float b0, //-коефіцієнти полінома Y1

fliat c3,float c2,float c1,float c0, //-коефіцієнти полінома Y2

float x1,float x2, // область визначення [x1,x2]

float *amin, float *amax) // мінімальне та максимальне значення

// функцій

4.2.2 Процедура обчислення значення полінома у цій точці.

float fun(float b3,float b2,float b1,float b0, //-коефіцієнти полінома

float x)

Повертає значення полінома у точці х

4.2.3 Процедура обчислення коренів кубічного рівняння

int f_root(float b3,float b2,float b1,float b0, //-коефіцієнти полінома Y1

fliat c3,float c2,float c1,float c0, //-коефіцієнти полінома Y2

float x1,float x2, // область визначення [x1,x2]

float e, // точність обчислення коренів

float * k1, float * k2, float * k3) // значення коренів

// функцій

Повертає кількість дійсних коренів на даному інтервалі

4.3. Файл F_INTEGER.C

4.3.1 Процедура обчислення площі складної фігури чисельним способом.

float f_num(float b3,float b2,float b1,float b0, //-коефіцієнти полінома Y1

fliat c3,float c2,float c1,float c0, //-коефіцієнти полінома Y2

float x1,float x2) // область визначення [x1,x2]

Обчислює площу складної фігури

4.3.2 Процедура обчислення площі складної фігури за допомогою методу імітаційного моделювання

float f_(float b3,float b2,float b1,float b0, //-коефіцієнти полінома Y1

fliat c3,float c2,float c1,float c0, //-коефіцієнти полінома Y2

float x1,float x2, // область визначення [x1,x2]

float fmin,float fmax, // мінімальне та максимальне значення

//функцій цьому інтервалі

int n) // кількість звернень до генератора

// випадковий чисел

Обчислює площу складної фігури за допомогою методу імітаційного моделювання

4.4 Файл DRAFT.C

4.4.1 Процедура ініціалізації графічного режиму.

void init (void)

4.4.2 Процедура обведення безперервного контуру.

void f_draft (float b0,float b1,float b2,float b3, //-коефіцієнти полінома

float x1,float x2) // область визначення [x1,x2]

4.4.3 Процедура вимальовування осей координат.

void osi (float x1, float x2, // область визначення функцій

float b) // масштабний коефіцієнт розраховується за формулою

// b = j — Fmin * (ij) / (Fmax — Fmin)

// де i,j — задають становище графіка на екрані

// Fmin, Fmax — мінімальне та максимальне значення

//функцій цьому інтервалі

4.5 Файл DRAFT_F.

4.5.1 Процедура малювання графіків функцій.

void draft_f (float b3,float b2,float b1,float b0, //-коефіцієнти полінома Y1

fliat c3,float c2,float c1,float c0, //-коефіцієнти полінома Y2

float x1,float x2, // область визначення [x1,x2]

float fmin,float fmax, // мінімальне та максимальне значення

//функцій цьому інтервалі

int k, int i, int l, int j) // координати, що задають положення

// Графіка на екрані

4.6 Файл DRAFT_N.

4.6.1 Процедура вимальовування графіків значень площ розрахованих числовим методом та методом імітаційного моделювання залежно від кількості звернень до генератора випадкових чисел.

void draft_e (float b3,float b2,float b1,float b0, //-коефіцієнти полінома Y1

fliat c3,float c2,float c1,float c0, //-коефіцієнти полінома Y2

float x1,float x2, // область визначення [x1,x2]

float fmin,float fmax, // мінімальне та максимальне значення

//функцій цьому інтервалі

float Sn, // площа розрахована числовим методом

int k, int i, int l, int j) // координати, що задають положення

// Графіка на екрані

4.7 Файл SQ.C

Усі файли об’єднані в головній програмі SQ.C, яка є основною та координує роботу процедур

5 Використання програми.

Для використання цієї програми необхідне операційне середовище MS DOS,

файл egavega.bgi, і власне сама скомпільована програма sq.exe

6 Вихідний текст програми дано у додатку №1.

7 Тесовий приклад показано у додатку №2.

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

8.1 Мова програмування Сі для персонального комп’ютера С.О. Бочков, Д.М. Суботін.

8.2 С++. Опис мови програмування Б’ярн Страустрап.

8.3 TURBO C. User’s Guide. Borland International, Inc. 1988.

8.4 TURBO C. Reference Guide. Borland International, Inc. 1988.

9 Висновок.

9.1 Зіставлення результатів роботи з вимогою завдання.

Зіставляючи результати роботи з вимогою завдання, можна сказати що завдання вирішено повною мірою, крім, можливо спільності щодо можливості розрахунку для багатьох класів функцій. Але розв’язання більш загальної задачі (тобто можливість розрахунку для багатьох класів функцій) є значно громіздкішим, і взагалі є окремим завданням. Тому автор не вважав за потрібне розробляти алгоритм введення багатьох функцій та загострив увагу власне на самій задачі — розрахунку площі складної фігури за допомогою методу імітаційного моделювання та порівняння цього методу з числовими методами

9.2 Рекомендації щодо покращення програми.

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

© Реферат плюс



Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *