Главная страница
Навигация по странице:


  • Задание: Постановка задачи к п. 1

  • Вариант К п. 1. К п. 2. X ( t

  • Постановка задачи, выполнение работы 3.1.

  • Фрагмент таблицы с результатами

  • Сравнение результатов, полученных с использованием аналитического и имитационного методов, выводы

  • Постановка задачи к п. 2: 3.2.

  • Блок-схема алгоритма имитации работы СМО: Листинг программы на С++

  • Результаты работы программы: Вывод об эффективности функционирования СМО

  • Отчет. отчет 1 лабораторная работа. Отчет по лабораторной работе 1 По дисциплине Моделирование Принципы построения моделирующих алгоритмов и


    Скачать 140.21 Kb.
    НазваниеОтчет по лабораторной работе 1 По дисциплине Моделирование Принципы построения моделирующих алгоритмов и
    АнкорОтчет
    Дата25.03.2023
    Размер140.21 Kb.
    Формат файлаdocx
    Имя файлаотчет 1 лабораторная работа.docx
    ТипОтчет
    #1013667

    МИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ

    ФЕДЕРАЛЬНОЕ государственное БЮДЖЕТНОЕ образовательное учреждение высшего образования

    «НОВОСИБИРСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ»


    Отчет по лабораторной работе №1

    По дисциплине «Моделирование»

    «Принципы построения моделирующих алгоритмов: и »


    Факультет: АВТ

    Группа: АВТ-141

    Студент(ы): Земляновская Эллина, Калегина Ольга



    Преподаватель: Пешков А.В.


    Новосибирск

    2023

    Цель работы:

    - изучить принципы построения моделирующих алгоритмов: принцип и принцип особых состояний ;

    - приобрести навыки построения имитационных моделей согласно принципам и на примере моделирования работы простейших систем.

    Задание:
    Постановка задачи к п. 1:

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

    Вариант

    К п. 1.

    К п. 2.

    X(t)

    N

    Интервалы поступления заданий

    Интервалы

    обработки заданий

    Дополнительные условия

    6.

    6arccos2(t)

    50

    (1, 9)

    (1,20)

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

    Таблица 1. Исходные данные

    1. Постановка задачи, выполнение работы

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

    3.1.1. Рассчитать имитационным методом на основе принципа Δt в моменты времени

    3.1.2. Рассчитать значения производной в моменты времени используя аналитическую формулу (аналитический метод).

    3.1.3. Построить графики исходной функции и производных , рассчитанных имитационным методом и аналитическим. Сопоставить полученные результаты, сделать выводы.

    Выполним пункт 3.1 в программе Excel (ниже приведён фрагмент таблицы, в оригинале 50 строк).

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

    Фрагмент таблицы с результатами:


    i







    Имитационный метод

    Аналитический метод

    Погрешность, %

    0

    0

    14,8044

    14,61651

    -18,79

    -18,84956

    0,313739789




    1

    0,01

    14,6165

    14,42979

    -18,672

    -18,73049

    0,310880916




    2

    0,02

    14,4298

    14,24424

    -18,555

    -18,61326

    0,308075568




    3

    0,03

    14,2442

    14,05983

    -18,441

    -18,49783

    0,305322238




    4

    0,04

    14,0598

    13,87655

    -18,328

    -18,38414

    0,302619474




    5

    0,05

    13,8765

    13,69438

    -18,217

    -18,27216

    0,29996588




    6

    0,06

    13,6944

    13,51331

    -18,107

    -18,16184

    0,297360109




    7

    0,07

    13,5133

    13,33331

    -17,999

    -18,05315

    0,294800863




    8

    0,08

    13,3333

    13,15438

    -17,893

    -17,94605

    0,292286894




    9

    0,09

    13,1544

    12,97650

    -17,788

    -17,84049

    0,289816994




    10

    0,1

    12,9765

    12,79965

    -17,685

    -17,73645

    0,28739




    11

    0,11

    12,7996

    12,62381

    -17,583

    -17,63389

    0,285004792




    12

    0,12

    12,6238

    12,44899

    -17,483

    -17,53277

    0,282660285




    13

    0,13

    12,449

    12,27515

    -17,384

    -17,43307

    0,280355433




    14

    0,14

    12,2751

    12,10229

    -17,286

    -17,33474

    0,278089226




    15

    0,15

    12,1023

    11,93039

    -17,19

    -17,23776

    0,275860689




    16

    0,16

    11,9304

    11,75944

    -17,095

    -17,14211

    0,273668879




    17

    0,17

    11,7594

    11,58943

    -17,001

    -17,04775

    0,271512883




    18

    0,18

    11,5894

    11,42034

    -16,909

    -16,95465

    0,26939182




    19

    0,19

    11,4203

    11,25217

    -16,817

    -16,86278

    0,267304837




    20

    0,2

    11,2522

    11,08490

    -16,727

    -16,77213

    0,26525111




    21

    0,21

    11,0849

    10,91851

    -16,638

    -16,68266

    0,26322984




    22

    0,22

    10,9185

    10,75301

    -16,551

    -16,59435

    0,261240253




    23

    0,23

    10,753

    10,58837

    -16,464

    -16,50717

    0,259281602




    24

    0,24

    10,5884

    10,42458

    -16,379

    -16,42111

    0,257353161




    25

    0,25

    10,4246

    10,26164

    -16,294

    -16,33613

    0,255454228




    26

    0,26

    10,2616

    10,09953

    -16,211

    -16,25223

    0,253584123




    27

    0,27

    10,0995

    9,93825

    -16,128

    -16,16936

    0,251742186




    28

    0,28

    9,93825

    9,77778

    -16,047

    -16,08753

    0,249927777




    29

    0,29

    9,77778

    9,61811

    -15,967

    -16,0067

    0,248140276




    30

    0,3

    9,61811

    9,45924

    -15,887

    -15,92685

    0,246379082




    31

    0,31

    9,45924

    9,30115

    -15,809

    -15,84796

    0,24464361




    32

    0,32

    9,30115

    9,14383

    -15,731

    -15,77003

    0,242933294




    33

    0,33

    9,14383

    8,98729

    -15,655

    -15,69302

    0,241247585




    34

    0,34

    8,98729

    8,83149

    -15,579

    -15,61692

    0,239585948




    35

    0,35

    8,83149

    8,67645

    -15,504

    -15,54172

    0,237947865




    36

    0,36

    8,67645

    8,52214

    -15,431

    -15,46739

    0,236332833




    37

    0,37

    8,52214

    8,36857

    -15,358

    -15,39393

    0,234740361




    38

    0,38

    8,36857

    8,21571

    -15,285

    -15,32131

    0,233169976




    39

    0,39

    8,21571

    8,06357

    -15,214

    -15,24951

    0,231621214




    40

    0,4

    8,06357

    7,91214

    -15,143

    -15,17853

    0,230093626




    41

    0,41

    7,91214

    7,76140

    -15,074

    -15,10835

    0,228586777




    42

    0,42

    7,7614

    7,61136

    -15,005

    -15,03895

    0,22710024




    43

    0,43

    7,61136

    7,46199

    -14,936

    -14,97033

    0,225633604




    44

    0,44

    7,46199

    7,31331

    -14,869

    -14,90246

    0,224186465




    45

    0,45

    7,31331

    7,16529

    -14,802

    -14,83533

    0,222758433




    46

    0,46

    7,16529

    7,01793

    -14,736

    -14,76893

    0,221349127




    47

    0,47

    7,01793

    6,87122

    -14,671

    -14,70325

    0,219958177




    48

    0,48

    6,87122

    6,72516

    -14,606

    -14,63828

    0,218585221




    49

    0,49

    6,72516

    6,57974

    -14,542

    -14,574

    0,217229909




    50

    0,5

    6,57974

    6,43495

    -14,479

    -14,51039

    #ДЕЛ/0!




    39

    0,39

    8,21571

    8,06357

    -15,214

    -15,24951

    0,231621214




    40

    0,4

    8,06357

    7,91214

    -15,143

    -15,17853

    0,230093626




    41

    0,41

    7,91214

    7,76140

    -15,074

    -15,10835

    0,228586777




    42

    0,42

    7,7614

    7,61136

    -15,005

    -15,03895

    0,22710024




    43

    0,43

    7,61136

    7,46199

    -14,936

    -14,97033

    0,225633604




    44

    0,44

    7,46199

    7,31331

    -14,869

    -14,90246

    0,224186465




    45

    0,45

    7,31331

    7,16529

    -14,802

    -14,83533

    0,222758433




    46

    0,46

    7,16529

    7,01793

    -14,736

    -14,76893

    0,221349127




    47

    0,47

    7,01793

    6,87122

    -14,671

    -14,70325

    0,219958177




    48

    0,48

    6,87122

    6,72516

    -14,606

    -14,63828

    0,218585221




    49

    0,49

    6,72516

    6,57974

    -14,542

    -14,574

    0,217229909




    50

    0,5

    6,57974

    6,43495

    -14,479

    -14,51039

    #ДЕЛ/0!






    Таблица 2. Фрагмент результатов выполнения п. 3.1

    Графики функции , рассчитанных имитационным методом и аналитическим.



    График 1. Фрагмент результатов выполнения п. 3.1

    Сравнение результатов, полученных с использованием аналитического и имитационного методов, выводы:

    Результаты, полученными двумя методами, практически совпадают. Для достижения такой точности, мы рассчитывали производную не на концах отрезков, а на серединах интервалов. Точно так же, как и в имитационном методе.

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

    Постановка задачи к п. 2:

    3.2. Реализовать имитационное моделирование вычислительной системы на основе принципа δz с целью оценки эффективности ее функционирования. Известно, что вычислительная система состоит из двух компьютеров, интервалы времени между двумя последовательными поступлениями заданий подчиняются равномерному закону распределения с заданными параметрами (см. табл. 1). Перед компьютерами имеется очередь заданий, не превышающая 3 задач. Время выполнения заданий также равномерно распределено (см. табл. 1).

    3.2.1. Сымитировать обработку 1000 заданий.

    3.2.2. Оценить выходные характеристики изучаемой вычислительной системы: среднее время нахождения задания в очереди; среднее время пребывания задания в системе; вероятности простоя компьютеров.

    3.2.3. Повторить имитационный эксперимент 100 раз. Рассчитать характеристики работы системы п. 2.2. по результатам 100 экспериментов.

    3.2.4. Сделать выводы. Оценить эффективность работы вычислительной системы.

    Блок-схема алгоритма имитации работы СМО:



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

    #include

    #include

    #include

    #include

    #include

    #include

    using namespace std;
    #define N int(1000)

    //время ожидания

    int Twaiting = 0;

    int Twaiting1 = 0;

    int Twaiting2 = 0;

    float Twaitingmiddle;

    //время ожидания задач

    int Tprostoy;

    int Tprostoy1;

    int Tprostoy2;

    int t = 0; //время

    int n1 = 0, n2 = 0;// // число задач в очереди
    // время окончания выполнения

    //int Tfinishtobs = 0;

    int Tfinishtobs1 = 0;

    int Tfinishtobs2 = 0;
    int Tarrival1;

    int Tarrival2;
    class task {

    public:

    int Tintarrival, Tintobs, Tstartobs;//интервал прихода,интервал обслуживания,начало выполнения

    task(int x, int y)

    {

    Tintarrival = x; //время прихода

    Tintobs = y; //интервал обслуживания
    }

    task()

    {

    Tintarrival = 0;

    Tintobs = 0;
    }

    void checkt(int num)

    {

    Tprostoy = 0; //обнуляем простой

    Twaiting = 0;

    if (num == 1)

    {

    Tarrival1 = Tintarrival;// приход на первый пк
    if (Tarrival1 <= Tfinishtobs1) // канал занят

    {

    Tstartobs = Tfinishtobs1;

    Twaiting = Tfinishtobs1 - Tarrival1;

    Tfinishtobs1 += Tintobs;

    //Tfinishtobs += Tintobs;

    Twaiting1 += Twaiting;

    }

    else

    {

    Tstartobs = Tarrival1;

    Tprostoy = Tarrival1 - Tfinishtobs1;

    Tfinishtobs1 = Tstartobs + Tintobs;

    //Tfinishtobs += Tintobs;

    Tprostoy1 += Tprostoy;

    }

    }

    else

    {
    Tarrival2 = Tintarrival;// приход на второй пк

    if (Tarrival2 <= Tfinishtobs2) // канал занят

    {

    Tstartobs = Tfinishtobs2;

    Twaiting = Tfinishtobs2 - Tarrival2;

    Tfinishtobs2 += Tintobs;

    //Tfinishtobs += Tintobs;

    Twaiting2 += Twaiting;
    }

    else

    {

    Tstartobs = Tarrival2;

    Tprostoy = Tarrival2 - Tfinishtobs2;

    Tfinishtobs2 = Tstartobs + Tintobs;

    Tprostoy2 += Tprostoy;

    //Tfinishtobs += Tintobs;

    }

    }

    }

    };
    class comp

    {

    friend class task;

    public:

    void checkc(task a, int num)

    {

    a.checkt(num);

    }


    };
    comp PC[2];

    task Task[N];
    int Getrandomnumber(int min, int max)

    {

    int num = 0;

    num = min + rand() % (max - min + 1);

    return num;

    }

    void setPCFromTask(int i, int t) // задаем комп для выполнения задачи

    {

    if (t <= 50)

    {

    PC[0].checkc(Task[i], 1);

    }

    else

    {

    int num;

    num = Getrandomnumber(1, 2);

    if (num == 1)

    {

    PC[0].checkc(Task[i], 1);

    }

    else

    {

    PC[1].checkc(Task[i], 2);

    }

    }

    }

    int main()

    {

    setlocale(LC_ALL, "Russian");

    SetConsoleCP(1251);

    SetConsoleOutputCP(1251);

    srand(time(NULL));
    //int g = interval;
    for (int j = 0; j < 10; j++) {

    int i = 0;

    int interval = Getrandomnumber(1, 9); //интервал прихода

    for (; i < 100; t++, interval--)

    {

    if (interval == 0) {
    Task[i] = task(t, Getrandomnumber(1, 20));

    setPCFromTask(i, t);

    i++;

    interval = Getrandomnumber(1, 9);

    //g = interval;

    }
    }

    printf("1 компьютер:\nОжидание: %d\nСон: %d\n\n2 компьютер\nОжидание: %d\nСон: %d\n\nОбщее время выполнения: %d\nВероятность простоя: %f\n__________________________________________\n", Twaiting1, Tprostoy1, Twaiting2, Tprostoy2, t, 1. * (Tprostoy1 + Tprostoy2) / t);

    Twaiting1 = 0;

    //Tprostoy1 = 0;

    Twaiting2 = 0;

    //Tprostoy2 = 0;

    t = 0;

    //Task[N] ;

    }

    }

    Результаты работы программы:



    Вывод об эффективности функционирования СМО:

    Данная СМО имеет очень маленькую вероятность простоя, но время

    ожидания будет достаточно большим. Это вызвано тем, что компьютеры

    не успевают обрабатывать поступающие задачи. Возможно, если добавить

    приоритет по загруженности.

    Вывод:

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


    написать администратору сайта