ПЕРЕЛІК ДИСЦИПЛІН:
  • Адміністративне право
  • Арбітражний процес
  • Архітектура
  • Астрологія
  • Астрономія
  • Банківська справа
  • Безпека життєдіяльності
  • Біографії
  • Біологія
  • Біологія і хімія
  • Ботаніка та сільське гос-во
  • Бухгалтерський облік і аудит
  • Валютні відносини
  • Ветеринарія
  • Військова кафедра
  • Географія
  • Геодезія
  • Геологія
  • Етика
  • Держава і право
  • Цивільне право і процес
  • Діловодство
  • Гроші та кредит
  • Природничі науки
  • Журналістика
  • Екологія
  • Видавнича справа та поліграфія
  • Інвестиції
  • Іноземна мова
  • Інформатика
  • Інформатика, програмування
  • Юрист по наследству
  • Історичні особистості
  • Історія
  • Історія техніки
  • Кибернетика
  • Комунікації і зв'язок
  • Комп'ютерні науки
  • Косметологія
  • Короткий зміст творів
  • Криміналістика
  • Кримінологія
  • Криптология
  • Кулінарія
  • Культура і мистецтво
  • Культурологія
  • Російська література
  • Література і російська мова
  • Логіка
  • Логістика
  • Маркетинг
  • Математика
  • Медицина, здоров'я
  • Медичні науки
  • Міжнародне публічне право
  • Міжнародне приватне право
  • Міжнародні відносини
  • Менеджмент
  • Металургія
  • Москвоведение
  • Мовознавство
  • Музика
  • Муніципальне право
  • Податки, оподаткування
  •  
    Бесплатные рефераты
     

     

     

     

     

     

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

     

    Інформатика, програмування

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


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

    Обмежимо задану фігуру прямокутником, сторони якого проходять:
    через точки максимального і мінімального значення функцій і паралельні осях абсцис;
    через ліву і праву граничні точки області визначення аргументу і паралельні осях ординат.
    Знаючи площу прямокутника і ставлення потрапили точок до їх загального числа розіграних, можна оцінити площу, що цікавить нас фігури.

               
    2. Технічні характеристики об'єкта дослідження:
         
    2.1. Діапазон значень параметрів задачі.
                
          Безліч кривих обмежимо поліномами третього порядку, з причини того що поліноми більш високого порядку сильно збільшують час обчислення. Причому для наочності рішення цілком достатньо порядку "3".
                
          Коефіцієнти полінома обмежимо діапазоном [-100,100].

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

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



    3. Рішення завдання.

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

      
        -введення параметрів; |
    процедура get_poly |
    |
    -повідомлення про помилку при введенні; | Файл WINDOW.C
    процедура talkerror |
    |
    -малювання рамки вікна; |
    процедура border |


        



         -обчислення мінімального і |
            максимального значення функцій; |
                        процедура f_max |
    |
    -обчислення значення полінома в |
                    заданій точці; | Файл MATIM.C
    процедура fun |
    |
         -обчислення коренів кубічного |
                  рівняння; |
                         процедура f_root |


         
    -обчислення інтеграла чисельним |
               методом; |
                          процедура i_num |
               | Файл F_INTEGER.C
           -обчислення інтеграла за допомогою |
            імітаційного моделювання; |
     процедура i_rand |


          -ініціалізація графіки |
                          процедура init |
    |
    -обведення безперервного контуру | Файл DRAFT.C
                           процедура f_draft |
       |
    - Вимальовування осей координат |
                            процедура osi |


         -вимальовування графіків функцій і | Файл DRAFT_F.C
           штриховка заданої площі |
                           процедура draft_f |


    -вимальовування графіків обчислення |
           площі різними методами і висновок | Файл DRAFT_N.C
           таблиці результатів обчислення |
    процедура draft_n |

    Схема алгоритму має вигляд:

    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 Процедура малювання рамки вікна.
    void 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 Процедура обчислення площі складної фігури c допомогою методу імітаційного моделрованія
    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 * (i-j)/(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.
    9 Висновок.
    9.1 Зіставлення результатів роботи з тербованіем завдання.
    Зіставляючи результати роботи з вимогою завдання, можна сказати що завдання вирішено повною мірою, за винятком, можливо спільності щодо можливості розрахунку для багато класів функцій. Але рішення більш загальної задачі (тобто можливість розрахунку для багатьох видів функцій) представляється значно більш громіздким, і взагалі є окремою задачею. Тому автор не вважав за потрібне розробляти алгоритм введення багатьох функцій і загострив увагу власне на самій меті - розрахунку площі складної фігури за допомогою методу імітаційного моделювання та порівняння цього методу з числовими методами.
    9.2 Рекомендації щодо поліпшення програми.
    При розробці програми від упустив можливість роботи з числовими масивами. Тому, можна поліпшити програму переписавши ряд процедур під масиви, що зробить програму менш масивною і більш наочною. Широке
    можливості щодо поліпшення програми в галузі розробки алгоритмів введення різний класів функцій.



         
     
         
    Реферат Банк
     
    Рефераты
     
    Бесплатные рефераты
     

     

     

     

     

     

     

     
     
     
      Все права защищены. Reff.net.ua - українські реферати ! DMCA.com Protection Status