Главная    Почта    Новости    Каталог    Одноклассники    Погода    Работа    Игры     Рефераты     Карты
  
по Казнету new!
по каталогу
в рефератах

Вычисление площади сложной фигуры методом имитационного моделирования



 Другие рефераты
Вычисление определённых интегралов по правилу прямоугольников Вычисление определенного интеграла методами трапеций и средних прямоугольников Гамма функции Геометрические построения

Задание: Разработать программу, позволяющую с помощью метода имитационного
 моделирования  рассчитать  площадь  сложной  фигуры,  ограниченной  сверху
 кривой 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               |



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


 [pic]



 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,           //  минимал
12
скачать работу


 Другие рефераты
Организация производства на предприятии
Краткая методичка по логике
Перестройка случайность или закономерность
Ұстаздық еткен жалықпас


 

Отправка СМС бесплатно

На правах рекламы


ZERO.kz
 
Модератор сайта RESURS.KZ