Отчет по практике ТОО «Институте Высоких Технологий» АО «НАК «Казатомпром»

Автор работы: Пользователь скрыл имя, 13 Апреля 2013 в 09:51, отчет по практике

Краткое описание

Урановая промышленность Казахстана, объединенная в Национальную атомную компанию «Казатомпром», является комплексом наукоемких, высокотехнологичных производств, эффективное функционирование которого требует достаточного уровня научного обеспечения. С целью поддержания конкурентоспособности действующих предприятий атомной промышленности Казахстана ИВТ осуществляет разработку технологий производств новых видов продукции высокой степени готовности.

Содержание

Введение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
Краткая характеристика предприятия . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1 Моделирование физических явлений на ЭВМ.
Задание на производственную практику. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.1 Построение графиков функций. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.2 Построение трехмерных объектов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11
2 Статистическое моделирование (метод Монте-Карло)
2.1 Основные принципы метода статистического моделирования .. . . . . . . . . . . 13
2.2 Моделирование дискретных случайных величин. . . . . . . . . . . . . . . . . . . . . . .19
2.3 Моделирование непрерывных случайных величин. . . . . . . . . . . . . . . . . . . . . 20
2.4 Вычисление интегралов методом Монте-Карло . . . . . . . . . . . . . . . . . . . . . . . .21
2.5 Пример решения задачи методом статистического моделирования . . . . . . . .28 Заключение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
Список литературы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .36

Прикрепленные файлы: 1 файл

Отчёт по производственной практике Моделирование1, редактир.doc

— 1.01 Мб (Скачать документ)

       var p:array[1..4] of PointType;

       begin

           Xt:= Xlo; while Xt < Xhi do

        begin

         Yt:= Ylo;while Yt < Yhi do

begin

           p[1].x:= ScreenX(X3d(Xt - Xlo, Yt - Ylo,f(Xt,Yt) - Zlo));

           p[1].y:= ScreenY(Y3d(Xt - Xlo, Yt - Ylo,f(Xt,Yt) - Zlo));

          p[2].x:= ScreenX(X3d(Xt - Xlo, Yt - Ylo + Yst,f(Xt,Yt + Yst)-Zlo));

           p[2].y:= ScreenY(Y3d(Xt - Xlo, Yt - Ylo + Yst,f(Xt,Yt + Yst)-Zlo));

           p[3].x:= ScreenX(X3d(Xt - Xlo + Xst, Yt-Ylo+Yst,f(Xt+Xst,Yt+Yst)-Zlo));

           p[3].y:= ScreenY(Y3d(Xt - Xlo + Xst, Yt-Ylo+Yst,f(Xt+Xst,Yt+Yst)-Zlo));

            P[4].x:=ScreenX(X3d(Xt - Xlo+Xst,Yt-Ylo,f(Xt + Xst,Yt)-Zlo));

           p[4].y:=ScreenY(Y3d(Xt - Xlo+Xst,Yt-Ylo,f(Xt + Xst,Yt)-Zlo));

           FillPoly(4,p);

            Yt:=Yt + Yst;

          end;

           Xt:=Xt + Xst;

         end;

        end;

begin

        DetectGraph(gd,gm); InitGraph(gd,gm,'');

        if GraphResult <> grok then Halt (1);

          RotX:= 30; {углы наблюдения, градусы}

        RotY:= 0; 

        RotZ:= 60;

          RotX:= RotX*Pi/180; {углы наблюдения, радианы}

         RotZ:= RotZ*Pi/180;

         RotY:= RotY*Pi/180;

          Xlo:= -10; Xst:= 0.25; Xhi:= 10;  {диапазон и сетка по X}

         Ylo:= -10; Yst:= 0.25; Yhi:= 10;  {диапазон и сетка по Y}

          Setfillstyle(1,Black);                     {стиль для FillPoly}

         Setcolor(LightBlue); Rectangle(0,0,GetMaxX,GetMaxY);  {рамка}

        Get_Plot_Sizes;  {масштабы}

        Setcolor(White);  {цвет для осей}

        Line3d (X3(0,0,0), Y3(0,0,0), X3(0,0,1), Y3(0,0,1));  {оси}

         line3d (X3(0,0,0), Y3(0,0,0), X3(0,1,0), Y3(0,1,0));

         line3d (X3(0,0,0), Y3(0,0,0), X3(1,0,0), Y3(1,0,0));

         line3d (X3(1,1,1), Y3(1,1,1), X3(1,1,0), Y3(1,1,0));

         line3d (X3(1,1,1), Y3(1,1,1), X3(0,1,1), Y3(0,1,1));

        line3d (X3(1,0,0), Y3(1,0,0), X3(1,1,0), Y3(1,1,0));

         line3d (X3(0,1,0), Y3(0,1,0), X3(1,1,0), Y3(1,1,0));

         line3d (X3(0,1,0), Y3(0,1,0), X3(0,1,1), Y3(0,1,1));

         line3d (X3(0,0,1), Y3(0,0,1), X3(0,1,1), Y3(0,1,1));

            SetColor(Yellow); Plotlines;    {рисуем функцию}

            SetColor(White);

         line3d (X3(1,1,1), Y3(1,1,1), X3(1,0,1), Y3(1,0,1)); {еще оси }

         line3d (X3(1,0,0), Y3(1,0,0), X3(1,0,1), Y3(1,0,1));

         line3d (X3(0,0,1), Y3(0,0,1), X3(1,0,1), Y3(1,0,1));

         ReadKey;

        CloseGraph;

end.

 

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

 

 

Рисунок 2 - Функция сos(r)/r   (r=

)

 

 

       Рисунок 3- Функция sin(r)/r                  Рисунок 4- Функция  20*sin(r)/r

   (вращение оси Z на 120 градусов)

 

                                                                                 

 

Рисунок 5 - Функция 10*sin(r)/r * cos(r)

 

 

1.2 Задачи на построение трехмерных объектов. Построить эллиптический параболоид в трехмерном виде:

 

                                             Листинг программы       

program elliptichesky_paraboloid; {Декартова система координат в трехмерном пространстве, построение  эллиптического параболоида}

uses crt,graph;

var

cx, cy, driver, mode,z,i:integer;

   begin

       driver:= detect; initgraph(driver,mode,'d:\tp\bgi');

        repeat {Повторение в цикле, пока не будет нажат <Enter>}

        setcolor (blue);{цвет осей}

{Положение начало координат  }

        cx:=round((15/32)*getmaxx);cy:=round((3/4)*getmaxy);

        outtextxy(20,20,'Elliptichesky paraboloid');

{Система координат ось X}

         line(cx,cy,getmaxx-10,cy);

{Подпись и стрелка по оси X }

         outtextXY(getmaxx-30,cy-20,'X');

         line(getmaxx-30,cy-5,getmaxx-10,cy);

         line(getmaxx-30,cy+5,getmaxx-10,cy);

{ Подпись и стрелка  по оси Z }

         line(cx,cy,cx,0);

         outtextXY(cx+10,10,'Z');

{Стрелка по оси Z }line(cx-5,20,cx,0);line(cx+5,20,cx,0);

{Ось Y }line(cx,cy,round(getmaxx/6),getmaxy-10);

{ Подпись и  стрелка по оси Y}

           outtextxy(round(getmaxx/6)-10,getmaxy-20,'Y');

          line(round(getmaxx/6),getmaxy-10,round(getmaxx/6)+20,getmaxy-15);

          line(round(getmaxx/6),getmaxy-10,round(getmaxx/6)+15,getmaxy-25);

{цикл вывода с одной  и той же координатой по  оси x,но с увеличением по оси z}

          for z:=0 to round(getmaxx/7) do

begin

           setbkcolor(white);setcolor(red);ellipse(cx,cy-trunc(z*z/30),0,360,trunc(z*3),trunc(z/2));

           delay(10);{Задержка}

   end;

until keypressed

end.                                                                    

 

Рисунок 6 - На рисунке изображен эллиптический параболоид  в трехмерном виде

 

                    

 

2. СТАТИСТИЧЕСКОЕ МОДЕЛИРОВАНИЕ (МЕТОД МОНТЕ-КАРЛО)

Решение задач методом  статистических испытаний или, как его еще называют, методом Монте-Карло. Название "Монте-Карло" происходит от города Монте-Карло в княжестве Монако, знаменитого своим игорным домом для игры в рулетку, и символизирует случайность процесса, как и при игре в рулетку. Возникновение и развитие этого метода стало возможным только после появления ЭВМ, поскольку моделирование случайных величин вручную очень трудоемко.

На первый взгляд может  показаться странным совместимость  случайности со строго детерминированной  работой ЭВМ. Действительно, случайный  сбой даже одного бита в ЭВМ может  привести к совершенно неправильным результатам вычислений. Тем не менее, как мы увидим дальше, такой "симбиоз" вполне возможен и очень плодотворен.

Метод Монте-Карло весьма красив и прост по своим принципам  и широко используется для расчетов в физике и технике (ядерная физика, физика элементарных частиц и ускорителей, взаимодействие различныe излучений с веществом, геофизика, расчет качества и надежности изделий ит.д.). В некоторых случаях методом Монте-Карло решаются задачи, которые

в принципе могут быть решены другими методами. В других же случаях метод Монте-Карло  оказывается единственным для решения задач. Метод особенно хорош там, где не требуется очень высокой точности получаемых результатов.

Здесь мы будем рассматривать  в основном физические и технические  задачи, однако, нужно помнить, что  метод статистических испытаний  успешно применяется в математике, теории игр, теории массового обслуживания, теории передачи сообщений и обнаружения и т.д.,

 

2.1 Основные принципы метода статистического моделирования

Сущность метода статистического моделирования заключается в следующем. Выбирается определенная модель, описывающая исследуемый процесс, явление, систему. На основании математического описания модели и численных методов разрабатывается моделирующий алгоритм, имитирующий внешние воздействия на систему, поведение ее элементов, их

взаимодействие и последовательное изменение состояний всей системы во времени. Затем осуществляется одна случайная реализация моделируемого явления, например: один "распад" радиоактивного атома, один "процесс" прохождения элементарной частицы через вещество, один "обстрел" цели, один "день работы" транспорта, и т.п.

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

Продемонстрируем эти  принципы на простом примере. Пусть  необходимо определить площадь произвольной плоской фигуры S .

Ограничим фигуру квадратом  со стороной a и выберем в квадрате N случайных точек. Пусть N′ − число точек, попавших внутрь фигуры S . Тогда геометрически очевидно, что

 

 

Рисунок 7 - Определение площади фигуры S

 

площадь фигуры S приближенно равна a2 * N' / N . Причем, чем больше будет значение N , тем точнее будет оценка площади фигуры S . Отсюда ясно, как можно построить алгоритм для вычисления площади такой фигуры:

1. Разыгрываем случайную  величину ξ , равномерно распределенную  на интервале (0,a) . Значение ξ будет означать X – координату случайной точки;

2. Разыгрываем случайную  величину χ , равномерно распределенную на интервале (0,a) . Значение χ будет означать Y – координату случайной точки;

3.   Проверяем, попала ли разыгранная точка (ξ,χ) внутрь фигуры S. Если попала, то добавляем к счетчику N′ единицу (перед началом описываемых действий счетчик N′ должен быть обнулен);

4. Повторяем предыдущий  процесс (пункты 1,2,3) N раз;

5. Вычисляем значение  интеграла;

Отметим две особенности  метода статистического моделирования. Первая − относительная простота вычислительного алгоритма. Как правило, составляется программа для прослеживания одной реализации, а затем эта процедура N раз повторяется. Вторая − погрешности вычислений обычно пропорциональны 1 N , т.е. метод нецелесообразно применять там, где требуется очень высокая точность вычислений.

Таким образом, единичная реализация является основным элементом метода статистического моделирования  и представляет один случай осуществления  моделируемого процесса (явления) со всеми присущими ему случайностями. Каждый раз, когда в ход моделируемого  процесса вмешивается случайность, должен быть реализован какой-то механизм случайного выбора (бросание монет, костей, вынимание жетона из вращающегося барабана, числа из набора чисел, и т.д.), называемый "единичным жребием".

Единичный жребий должен давать ответ на один из вопросов: произошло или не произошло некое событие A ? какое из возможных событий A1 , A2 ,..., Ak произошло ? какое значение приняла случайная величина X ? какую совокупность значений приняла система случайных величин X1 , X 2 ,..., X k ? и т.п. Например, при моделировании прохождения элементарной частицы через вещество единичный жребий должен отвечать на вопросы: произошло или не произошло взаимодействие частицы с веществом (событие A ) ? какой процесс произошел при взаимодействии − поглощение или рассеяние (события A1 , A2 ,..., Ak ) ? если произошло рассеяние, то на какой угол частица рассеялась (случайная величина X ) ? каковы координаты точки взаимодействия частицы с веществом (система случайных величин X1 , X 2 ,..., X k ) ? и т.д.

Каждая реализация случайного явления методом Монте-Карло рассматривается как последовательность конечного числа элементарных случайных событий (единичных жребиев), перемежающихся обычными расчетами. Расчетами учитывается влияние исхода единичного жребия на ход моделирования (в частности, на условия, в которых будет осуществляться следующий единичный жребий).

Для того, чтобы реализовать единичный  жребий, необходимо получать на ЭВМ последовательности значений случайных величин (скалярных или векторных) с заданными законами распределения. Поскольку при решении конкретных задач могут потребоваться случайные величины с самыми разнообразными распределениями (пуассоновское, гауссовское, биноминальное, равномерное, экспоненциальное и т.д.), то задача моделирования необходимой случайной величины может показаться неимоверно сложной. Однако, все эти задачи могут быть разрешены с помощью одного стандартного механизма, позволяющего решить одну единственную задачу − получить случайную величину, распределенную с равномерной плотностью от 0 до 1. Тогда, как показано ниже, случайную величину y с произвольной плотностью распределения f ( y) можно найти с помощью преобразований одного или нескольких независимых значений случайной величины γ , равномерно распределенной в интервале (0,1).

 

Получение равномерно распределенных случайных чисел.

Как упомянуто выше, ключевой проблемой статистического моделирования является получение случайных чисел γ, равномерно распределенных в интервале (0,1). Отметим три основных способа получения γ : табличный, аппаратный и алгоритмический. Первый способ заключается в использовании специально составленных таблиц случайных чисел. Таблицы, полученные с помощью специальных приборов (типа рулетки), заносятся в память ЭВМ и используются по мере необходимости.

Основной недостаток − необходимость в памяти достаточно большой емкости, затрудняющий решение "больших" задач, тем более, что преимущество "случайных" таблиц перед "псевдослучайными" числами, получаемыми алгоритмически, никем не было доказано. Во втором способе используются аппаратные датчики, основанные на некоторых физических процессах, случайных по своей природе (шумы в электронных и полупроводниковых приборах, процессы при радиоактивном распаде и т.п.).

        Основные недостатки − невозможность повторного получения одной и той же последовательности случайных величин для проверочных расчетов и невозможность гарантировать постоянную надежную работу датчика. Как правило, случайные числа γ получают в настоящее время на ЭВМ программным способом, производящим последовательности "псевдослучайных" чисел. Для этого используются рекуррентные формулы, когда каждое последующее число γi+1 образуется из предыдущего γi на основании применения некоторого алгоритма. Подобная последовательность чисел, не будучи истинно случайной по своей природе, обладает свойствами, аналогичными свойствам случайных величин. Большинство алгоритмов получения псевдослучайных чисел основано на том, что при перемножении двух многоразрядных чисел x и y средние разряды произведения xy являются сложной функцией сомножителей и обладают "случайными" свойствами.

Простой пример получения  равномерно распределенной в интервале (0,1) случайной величины ξ может  быть осуществлен следующим алгоритмом:

ξi+1 = {π * ξi} ,

ξ0 = 0.1 .

Знак { } означает, что  берется дробная часть произведения. Вычисления дают такую последовательность: ξ0 = 0.1 , ξ1 = 0.415926 , ξ2 = 0.667 ,

ξ3 = 0.54422 , ξ4 = 0.97175, ξ5 = 0.28426 и т.д.

          К настоящему времени разработано множество алгоритмов получения псевдослучайных чисел. Наиболее популярным для получения псевдослучайных чисел ξ1 , ξ2 ,..., является метод вычетов (мультипликативный датчик), который можно записать в следующей форме:

Информация о работе Отчет по практике ТОО «Институте Высоких Технологий» АО «НАК «Казатомпром»