Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Mudolirovanie3_2 / Mudolirovanie3_2

.docx
Скачиваний:
13
Добавлен:
22.05.2015
Размер:
91.47 Кб
Скачать

Федеральное агентство по образованию

ГОУ ВПО Кубанский государственный технологический университет

КАФЕДРА ИНФОРМАТИКИ

Лабораторная работа №

«Планирование машинных экспериментов»

Выполнил:

студент группы 08-К-ВМ1

Жиров C.П.

Проверил:

Богданов В.В.

г. Краснодар

2012г.

Цель работы: Изучение и практическое освоение методов тактического планирования машинных экспериментов, составление алгоритмов определения объема выборки машинного эксперимента с моделями сложных систем, решение задачи обеспечения точности и достоверности результатов моделирования.

Задание

7-8. Кристаллы с дефектами. Кристаллическое твердое тело никогда не является совершенным, а содержит разнообразные дефекты. Простейшим дефектом является вакансия решетки, т.е. отсутствие атома в узле решетки и помещение дополнительного атома на поверхность. При конечной температуре в реальном кристалле всегда имеется некоторое число решеточных вакансий. Во многих случаях вакансия диффундирует (движется), меняясь местами с соседними атомами случайным образом. Предположите, что вакансия в начальный момент времени t=0 расположена в центре окружности радиусом r, и определите время, за которое вакансия достигает поверхности металла, находящейся на расстоянии r (r выбрать произвольно).

Итак вакансия движется из середины (6; 6) в 4 стороны и достигает поверхности металла если достигает границы (красная линия), то движения прекращается и число шагов заносится в массив и 1 столбец

Мы делаем 1000 опытов с определением времени (числа шагов) ( 1 столбец)

Теперь считаем частоту встречаемости каждого элемента и выводим эл-ты (2 столбец) и их частоты (3 столбец), например число 5 встретилось 14 раз, число 7,342 встретилось 240 раз и т д

Рисуем гистограмму по оси х – числа, по у – их частоты

Считаем мат ожидание и дисперсию как и в лабах 1.1-1.3

Распределение похоже на распределение Пуассона.

Приложение

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

namespace КМ3

{

    public partial class Form1 : Form

    {

        static double r = 12;

        double x = r / 2;

        double y = r / 2;

        double step = 0;

        double[] ArrayOfChas = new double[1000];

        List<double> listdelta = new List<double>();

        List<double> listch = new List<double>();

        public Form1()

        {

            InitializeComponent();

        }

        private void button1_Click(object sender, EventArgs e)

        {

            Random rn = new Random();

            for (int i = 0; i < 1000; i++)

            {

                while (x < r && x > 0 && y < r && y > 0)

                {

                    if (rn.Next(4) == 0)

                    {//(1,0)

                        x++;

                        step++;

                    }

                    else

                    {

                        if (rn.Next(4) == 1)

                        {//(-1,0)

                            x--;

                            step++;

                        }

                        else

                        {

                            if (rn.Next(4) == 2)

                            {//(0,-1) 

                                y--;

                                step++;

                            }

                            else

                            {// 3

                                //(0,1) 

                                y++;

                                step++;

                            }

                        }

                    }

                }

                listBox1.Items.Add(step.ToString());

                listdelta.Add(step);

                x = r / 2; y = r / 2; step = 0;

            }

            for (int i = 0; i < listdelta.Count; i++)

            {

                int something = listch.IndexOf(listdelta[i]);

                if (something == -1)

                {

                    listch.Add(listdelta[i]);

                    listBox2.Items.Add(listdelta[i]);

                }

            }

            for (int i = 0; i < listdelta.Count; i++)

            {

                for (int j = 0; j < listch.Count; j++)

                {

                    if (listdelta[i] == listch[j])

                    {

                        ArrayOfChas[j]++;

                    }

                }

            }

            for (int i = 0; i < listch.Count; i++)

            {

                listBox3.Items.Add(ArrayOfChas[i]);

                bar1.Add(listch[i], ArrayOfChas[i]);

            }

            double Mat = 0; double Disper = 0;

            for (int i = 0; i < listdelta[i]; i++)

            {

                Mat += listdelta[i] * 0.001;

                Disper += Math.Pow(listdelta[i], 2) * 0.001;

            }

            label1.Text += Mat;

            Disper = Disper - Mat * Mat;

            label2.Text += Disper;

        }

    }

}