- Презентации
- Презентация исследовательской работы на тему: «Построение имитационных моделей»
Презентация исследовательской работы на тему: «Построение имитационных моделей»
Автор публикации: Советникова О.В.
Дата публикации: 16.09.2016
Краткое описание:
1
V Региональная научно-практическая конференция школьников «Горизонты поиска и достижений» Исследовательская работа на тему: «Построение имитационных моделей»
2
Содержание: Глава 1 «Построение имитационных моделей процессов с помощью языка программирования Pascal» 1 Задача об исследование процесса «выживания» четных чисел в одномерном массиве. 2 Задача о построении модели и определения числа больных и здоровых людей на определенный день эпидемии при заданном коэффициенте развития эпидемии. Глава 2 «Построение имитационных моделей процессов с помощью MS Excel» 1 Задача о концентрации раствора 2 Задача «Преследование по кругу»
0
Благодаря этой рекламе сайт может продолжать свое существование, спасибо за просмотр.
3
Цель работы: Показать возможность использования компьютерного моделирования для решения задач из различных научных дисциплин. Задачи работы : Приобрести опыт выявления закономерностей и прогнозирования результатов случайного процесса. Отработать умения построения и анализа моделей. Познакомиться с построением имитационных моделей с помощью MS Excel и программы Turbo Pascal.
4
Задача 1. Дан массив Х случайных однозначных чисел. Элементы массива попарно перемножаются, начиная с первой пары (Х1 с Х2,Х2 с Х3 и так далее). После каждого умножения второй сомножитель заменяется на младшую цифру полученного результата. Процесс попарного перемножения элементов массива повторить циклически несколько раз (т.е. после умножения последней пары чисел в массиве продолжать с перемножения последнего и первого элементов). Алгоритм решения задачи 1.Проделаем действия «вручную» для исходного массива (хотя бы два раза): 2.Проанализируем результат и объясним его. 7 8 3 7 2 6 9 4 3 7
5
Для заданного массива уже после одного «прохода» получим: При двойном (циклическом) проходе получим: Если среди элементов будет 5,то при умножении на любое четное однозначное число младшая цифра результата будет 0,а, следовательно, и все остальные произведения будут равно 0.Таким образом, после двух-трех проходов все элементы массива станут нулевыми. Примечание. Младшую цифру числа можно выделить, получив остаток от деления числа на 10. 7 6 8 6 2 2 8 2 6 2 4 4 2 2 4 8 4 8 8 6
6
Программа на Паскале может быть такой: Program PR1, uses crt, const n=10, k=3, var x:array [1..n] of 0..9, i,j:byte, begin randomize, {заполнение и печать исходного массива} writeln(‘Исходный массив:), for i:=1 to k do begin x[i]:=random(9)+1, write(x[i]:4) end, {выполнение к циклических «проходов»} for j:=1 to k do begin for i:=2 to n do x[i]:=(x[i-1]*x[i]) mod 10, if j<,k then x[1]:= (x[1]*x[n]) mod 10 end, {печать полученного массива} writeln(‘получен массив:), for i:=1 to n do write (x[i]:4), readln, end.
7
Задача 2 Пусть на некоторой территории появляется определенное количество больных гриппом. В процессе общения от них заражаются другие люди, в результате возникает эпидемия. Будем предполагать, что количество заболевших людей за один день равно произведению числа больных на количество здоровых, умноженному на коэффициент, характеризующий скорость развития эпидемии. Данный коэффициент отражает эффективность профилактических мер, препятствующих распространению инфекции. Постройте модель определения числа больных В и здоровых Z на день I при коэффициенте эпидемии К. В качестве исходных используйте следующие данные: Число здоровых людей в начале эпидемии- 20 000 человек, Число больных людей в начале эпидемии-70 человек, Число дней развития эпидемии- 10 дней, Коэффициент развития эпидемии- 0,0001.
8
Программа на Паскале может быть такой: Program PR2, const Kol=300, var K:real, NumB,NumZ,NumI,i:integer, B:array[1..Kol] of integer, {массив больных} Z:array[1..Kol] of integer, {массив здоровых} begin write(введите число здоровых на начало эпидемии:), readln(NumZ), write(введите число больных на начало эпидемии:), readln(NumB), write(введите число дней эпидемии:), readln(NumI), write (введите коэффициент эпидемии:), readln(K), {задание начальных значений массива} B[1]:=NumB, Z[1]:=NumZ, {моделирование эпидемии} for i:=1 to (NumI-1) do begin B[i+1]:=trunc(int(K*B[i]*Z[i])), Z[i+1]:=trunc(Z[i]-B[i+1]), end, {вывод результатов} writeln(День Больные Заболевшие :), for i:=1 to NumI do writeln ( ,i:3, ,B[i]:6, ,Z[i]:6), readln, end.
9
Анализ результата: После выполнения программы получается следующая распечатка: введем число здоровых на начало эпидемии : 20 000 введем число больных на начало эпидемии : 70 введем число дней эпидемии : 10 введем коэффициент эпидемии : 0.0001 При анализе модели было установлено, что число больных людей достигает пика на восьмой день и затем уменьшается. День Больные Не заболевшие 1 70 20 000 2 140 19 860 3 278 19 582 4 544 19 038 5 1035 18 008 6 1863 16 140 7 3006 13 134 8 3948 9 186 9 3626 5 560 10 2016 3 544
10
Задача 3 «О концентрации соли». В резервуар, содержащий 10 кг соли на 100 л смеси, каждую минуту поступает 30 л воды и вытекает 20 л смеси (рис.1) . Определить, какое количество соли останется в резервуаре через tмин, предполагая, что смесь мгновенно перемешивается.
11
Анализ результата На графике отчетливо видно, что при С = 1000 кривая удовлетворяет начальным условиям: при t=0, X=10. Из графика видно, что если концентрация соли составляет 6 кг, то прошло примерно 3 мин. Это демонстрация способа установления возраста морей и океанов. t Х C=900 C=1000 C=1100 0 9 10 11 0,5 8,163265 9,070295 9,977324 1 7,438017 8,264463 9,090909 1,5 6,805293 7,561437 8,31758 2 6,25 6,944444 7,638889 2,5 5,76 6,4 7,04 3 5,325444 5,91716 6,508876 3,5 4,938272 5,486968 6,035665 4 4,591837 5,102041 5,612245 4,5 4,280618 4,756243 5,231867 5 4 4,444444 4,888889
12
Задача 4 «Преследование по кругу». Одновременно два точечных тела начинают двигаться, первое- по окружности радиуса Rс постоянной по модулю скоростью V1,второе- из центра той же окружности со скоростью V2=4,5 V1,причем V2 направлена все время на первое тело. На каком расстоянии друг от друга окажутся тела через время τ>,>,2 πR/V1?
13
Анализ результата Построив траекторию движения второго тела видно, что после небольшого «перехлеста» траектория представляет собой окружность радиуса 8 м., а расстояние между телами стремится к 6 м. Одно из возможных движений, удовлетворяющих условию задачи - это движение обоих тел с одинаковой угловой скоростью. При этом скорость второго тела направлена на первое. Поскольку угловые скорости тел равны, то их взаимное расположение меняться не будет, и скорость V2 все время будет направлена на первое тело. Равенство угловых скоростей однозначно определяет радиус окружности ,по которой движется второе тело: R2=R V2/V1=0,8R. Теперь расстояние между точками просто вычисляется по теореме Пифагора: L= =0,6R Как же доказать, что траектория второго тела действительно стремиться к окружности? Дело в том, что такое движение является устойчивым. Если в какой-нибудь момент второе тело оказалось бы в точке С( на рис.), то оно, двигаясь к точке А, попало бы на окружность радиуса R2.Если бы оно оказалось в точке D, то его угловая скорость была бы меньше ω, и оно должно было бы отстать от первого тела и, таким образом, также выйти на окружность R2.
14
Выводы: Таким образом, компьютерное имитационное моделирование может помочь найти решения большого числа задач из различных областей наук, которые вызывали затруднения при обычном решении. Построение имитационных моделей может быть полезно не только на уроках информатики, но и на уроках математики, биологии, физики. Применение такой формы решения задач имеет большую практическую значимость.
15
Спасибо за внимание!