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.