1.Дерево Целей
1.0 Тема Компьютерное Моделирование
1.1 Уложиться в 2 месяца
2.Структура(сроки)
2.0 Работа в wiki
2.1 Презентация
3.Структура разбиения работ:
3.0 Сбор информации (1 неделя)
3.1 Сбор ссылок (1 неделя)
3.2 Размещение информации на сайте (2 недели)
3.3 Структуирование информации (2 недели)
3.4 Отформатирование информации (2 недели)
3.5 Создание презентации (1 неделя)
3.6 Подготовка к выступлению (2 недели)
Моделирование - процесс построения, изучения и применения моделей.
Компьютерное моделирование является одним из эффективных методов изучения сложных систем. Компьютерные модели проще и удобнее исследовать в силу их возможности проводить т.н. вычислительные эксперименты, которые по сравнению с реальным экспериментом затруднены из-за финансовых и физических препятствий или могут дать непредсказуемый результат. Логичность и формализованность компьютерных моделей позволяет выявить основные факторы, определяющие свойства изучаемого объекта-оргинала (или целого класса объектов), в частности, исследовать отклик моделируемой физической системы на изменения ее параметров и начальных условий.
Построение компьютерной модели базируется на абстрагировании от конкретной природы явлений или изучаемого объекта-оригинала и состоит из двух этапов - сначала создание качественной, а затем и количественной модели. Компьютерное же моделирование заключается в проведении серии вычислительных экспериментов на компьютере, целью которых является анализ, интерпретация и сопоставление результатов моделирования с реальным поведением изучаемого объекта и, при необходимости, последующее уточнение модели и т. д.
К основным этапам компьютерного моделирования относятся:
- постановка задачи, определение объекта моделирования;
- разработка концептуальной модели, выявление основных элементов системы и элементарных актов взаимодействия;
- формализация, то есть переход к математической модели; создание алгоритма и написание программы;
- планирование и проведение компьютерных экспериментов;
- анализ и интерпретация результатов.
Различают аналитическое и имитационное моделирование. При аналитическом моделировании изучаются математические (абстрактные) модели реального объекта в виде алгебраических, дифференциальных и других уравнений, а также предусматривающих осуществление однозначной вычислительной процедуры, приводящей к их точному решению. При имитационном моделировании исследуются математические модели в виде алгоритма(ов), воспроизводящего функционирование исследуемой системы путем последовательного выполнения большого количества элементарных операций.
x = ( (M-20)X+10Xmax-(M-10)Xmin )/(Xmax-Xmin)
y = ( (20-N)Y+(N+10)Ymax-10Ymin )/(Ymax-Ymin)
Теперь для изображения графика или траектории достаточно ставить точки с помощью процедуры PutPixel. Если же требуется изобразить движение тела, то перед выводом на экран очередной точки достаточно стереть предыдущую.
В задачах моделирования достаточно стандартная проблема — построение линий (поверхностей), вдоль которых некоторая функция имеет одинаковое значение, называемых изолиниями (изоповерхностями). Это очень распространенная задача визуализации характеристик некоторого скалярного поля в приближении сплошной среды: изотермы — линии равной температуры, изобары — линии равного давления, изолинии функции тока жидкости или газа, по которым легко можно представить себе их потоки, изолинии численностей экологической популяции на местности, изолинии концентрации вредных примесей в окружающей среде и т.д.
Опишем типичную процедуру построения изолиний на экране компьютера. На старте мы имеем двумерную таблицу значений некоторой величины А, полученную в ходе математического моделирования; числа в этой таблице соответствуют значениям этой величины в узлах пространственной сетки.
Зададим некоторый, совершенно условный, пространственный шаг h между соседними узлами по горизонтали и вспомогательную систему координат, в которой узел (1, 1) имеет координату (0, 0), узел (1, 2) — координату (h, 0), узел (1, 3) — координату (2h, 0) и т.д. Если шаг по вертикали h*, то узел (i, j) в этой системе имеет координату 1)
Program Stergen; Uses Crt_ii, Graph; Type Mas2 = array[0..10,0..4] of Real; Const {Массив распределения температуры в разные моменты времени} U : Mas2 = ((3.000, 3.667, 4.333, 5.000, 3.000), (3.000, 3.628, 4.128, 3.952, 3.000), (3.000, 3.514, 3.783, 3.593, 3.000), (3.000, 3.377, 3.546, 3.396, 3.000), (3.000, 3.267, 3.381, 3.272, 3.000), (3.000, 3.187, 3.266, 3.188, 3.000), (3.000, 3.131, 3.185, 3.131, 3.000), (3.000, 3.091, 3.129, 3.091, 3.000), (3.000, 3.064, 3.090, 3.064, 3.000), (3.000, 3.044, 3.063, 3.044, 3.000), (3.000, 3.031, 3.044, 3.031, 3.000)); Var M,I,J,Nl,Nt: Integer; MaxF,L,T,Hl,Ht: Real; Procedure Initialize; {Процедура инициализации графического режима} Var GraphDriver, GraphMode : Integer; Begin GraphDriver:=Detect; InitGraph(GraphDriver, GraphMode,'c:\bp\bgi'); End; {Графическая иллюстрация решения} Procedure Postanovka (U : Mas2; Nt, Nl : Integer; Hl, L, MaxF : Real); Var X_N, Shag, Y_N, Shir, Dlin, Color, I, J, K, Y : Integer; Flag : Boolean; Ff : String; Col : Array [0..15] Of Byte; Begin Initialize; {Инициализация графического режима} X_N:= GetMaxX Div 6; If Nt <= 6 Then M:= Nt Else M:= Nt Div 2; Y_N:= GetMaxY Div M-20; Shir:= Y_N Div 2; Dlin:= GetMaxX-2*(X_N); Shag:= Trunc(Dlin / Nl); Str(Shag, Ff); Col[0]:= 0; Col[1]:= 8; Col[2]:= 1; {Палитра цветов} Col[3]:= 9; Col[4]:= 3; Col[5]:= 11; Col[6]:= 2; Col[7]:= 10; Col[8]:= 14; Col[9]:= 13; Col[10]:= 5; Col[11]:= 12; Col[12]:= 4; For I:= 0 To M-1 Do {Номер временного промежутка} Begin For J := 0 To Nl-1 Do {Номер участка стержня} Begin Flag := False; For K := 0 To Shag Do Begin For y := 0 To Shir Do Begin Color :=1 + Round((U[I, J] + {определение номера цвета} (U[I,J + 1] - U[I,J]) * K/Shag-U[0,0])/3*16); If Random(64) > 32 Then If Random(64) > 32 Then Color:= Color + 1 Else Color := Color - 1; If Not Flag Then {вывод текущей температуры} Begin Str((U[I, J] + (U[I, J]) * K / Shag) : 5 : 3, Ff); OutTextXY(K+X_N+Shag * J, Y_N * (1+I) - 19, Ff); Flag := True End; {рисование точки} PutPixel(K+X_N+Shag * J, Y + Y_N * (1+I), Col[Color]); End; End End End; SetColor(White); SetTextStyle(1,0,2); OutTextXY(150, 420, 'нажмите любую клавишу'); Repeat Until Keypressed; CloseGraph; End; Begin {OCHOBHAЯ ПРОГРАММА} L:= 4; T:= 10; Hl:= 1; Ht := 1; Nl := Trunc(L / Hl); Nt := Trunc(T / Ht); MaxF := 5; Postanovka (U, Nt, Nl, Hl, L, MaxF) End.