- •3.Структуры данных:список. Виды списков. Пример обработки списка.
- •9. Системы диф.Ур. И числен. Методы их решения.
- •12. Обезразмеривание и законы подобия.
- •13. Движение тела с переменной массой: взлет ракеты.
- •16. Уравнение теплопроводности.
- •22. Логическое уравнение. Логистическая модель межвидовой конкуренции.
- •23. Динамика численности популяции хищника и жертвы.
1. Понятие об инфрм. мадел-ии. Разл. подходы к опред-ю пон-я «инф. модел-е». С т.з. инф-ки, решение любой задачи описывается след. «реальный объект - модель - алгоритм - программа - результаты – реал. объект». В этой цепочке очень важную роль играет звено «модель», как необходимый, обязательный этап решения этой задачи. Под моделью при этом понимается нек. мысленный образ реал. объекта (системы), отражающий существ. св-ва объекта и заменяющий его в процессе реш-я задачи. Модель - очень широкое понятие, включающее в себя мн-во сп-бов представления изучаемой реал-сти. Разл-ют модели материальные (натурные) и идеальные (абстрактные). Матер. модели основываются на чем-то объективном, существующем независимо от чел. сознания. Матер. модели делят на физические (например авиамодели) и аналоговые, основанные на процессах, аналогичных в каком-то отн-нии изучаемому (напр-р, процессы в электр. цепях оказываются аналогичными многим механическим, химическим, биол-ким и даже соц-ным процессам и м.б. исп-ны для их модел-ния). Идеальные модели: интуитивные модели, напр-р, произведения искусства - живопись и т.д., но единого подхода к класс-ции остальных видов идеальных моделей нет. Иногда эти модели все разом относят к информационным. В основе такого подхода лежит расширительное толкование понятия «инф-ция»: «инф-цией явл. почти все на свете, а м.б., даже вообще все». Такой подход является не вполне оправданным, так как он переносит инфор. природу познания на суть используемых в процессе моделей-при этом любая модель явл. информационной. Более продуктивным представляется такой подход к класс-ции идеальных моделей, при кот. разл-ют следующие.1. Вербальные (текстовые) модели. Эти модели исп-ют послед-ти предложений на формализованных диалектах естест. языка для описания той или иной области действ-ти (пр-ры: правила дорожного движения, настоящий учебник).2. Мат. модели - очень широкий класс знаковых моделей (основанных на формальных языках над конечными алфавитами), широко использующих те или иные мат. методы. Нап-р: мат. модель звезды. Сл. система ур-ний, описывающих физ. процессы, происходящие в недрах звезды.3. Информац. модели - класс знаковых моделей, описывающих информац. процессы (возникновение, передачу, преобразование и использование информации) в системах самой разнообр. природы. Граница м\у вербальными, мат-кими и информационными моделями может быть проведена весьма условно; возможно, информац. модели следовало бы считать подклассом мат-ких моделей. Однако, в рамках инф-ки как самост. науки, отдельной от мат-ки, физики, лингвистики и др. наук, выделение класса информационных моделей является целесообразным. Инф-ка имеет самое непосредственное отнош-ие и к мат.моделям, поскольку они явл. основой прим-я компьютера при реш-и задач разл. природы: мат. модель исследуемого процесса или явл-я на определ. стадии исслед-ния преобразуется в компьютерную (вычисл-ную) модель, кот-я затем превращается в алгоритм и комп. программу. Опр-ния простейших понятий инфор. модел-ния: Экземпляр-представ-е предмета реал. мира с помощью нек. набора его харак-к, существенных для решения данной информац. задачи. Мн-во экземпляров, имеющих одни и те же харак-ки и подчиняющиеся одним и тем же правилам. наз. объектом. Т.о., объект есть абстракция предметов реал. мира, объединяемых общ. харак-ками и поведением. Кажд. объект в модели д. б. обеспечен уникальным и значимым именем. Бол-во объектов, с кот-ми приходится встречаться, отн-ся к одной из след. категорий: Реальней объект, Роль,Событие,Взаимодействия,Объекты-спецификации
3.Структуры данных:список. Виды списков. Пример обработки списка.
В языках программ-ния (Pascal, C, др.) существует способ выделения памяти под данные, который называется динамическим. В этом случае память под величины отводится во время выполнения программы. Такие величины будем называть динамическими. Раздел оперативной памяти, распределяемый статически, называется статической памятью; динамически распределяемый раздел памяти называется динамической памятью (динамически распределяемой памятью). Согласно определению, список располагается в динамически распределяемой памяти, в статической памяти хранится лишь указатель на заглавное звено. Структура, в отличие от массива, является действительно динамической: звенья создаются и удаляются по мере необходимости, в процессе выполнения программы.В общем виде объявление выглядит так. Type U = ^Zveno;
Zveno = Record Inf : BT; Next: U End; здесь BT — некоторый базовый тип элементов списка. Если указатель ссылается только на следующее звено списка,то такой список называют однонаправленным, если на следующее и предыдущее звенья — двунаправленным списком. Если указатель в последнем звене установлен не в Nil, а ссылается на заглавное звено списка, то такой список называется кольцевым. Кольцевыми могут быть и однонаправленные, и двунаправленные списки. Более подробно рассмотрим работу со связанными списками на примере однонаправленного некольцевого списка. Выделим типовые операции над списками: добавление звена в начало списка; удаление звена из начала списка; добавление звена в произвольное место списка, отличное от начала (например, после звена, указатель на которое задан); удаление звена из произвольного места списка, отличного от начала (например, после звена, указатель на которое задан); проверка, пуст ли список; очистка списка;печать списка.Приведём полный текст модуля.
Unit Spisok;
Interface
Type BT = LongInt;
U = ^Zveno;
Zveno = Record Inf : BT; Next: U End;
{добавляет элемент в начало списка, First – указатель на начало списка, X – некоторое значение}
Procedure V_Nachalo(Var First : U; X : BT);
{удаляет первый элемент из списка и возвращает его значение в переменную Х}
Procedure Iz_Nachala(Var First : U; Var X : BT);
{вставляет новое звено в список со значением Х перед звеном Pred}
Procedure V_Spisok(Pred : U; X : BT);
{удаляет из списка звено на которое указывает предыдущее звено Pred и возвращает значение X}
Procedure Iz_Spiska(Pred : U; Var X : BT);
{Удаляет из списка все элементы}
Procedure Ochistka(Var First: U);
{функция возвращает значение true, если в списке нет ни одного элемента}
Function Pust(First : U) : Boolean;
{выводит список на экран}
Procedure Print(First : U);
Implementation
Procedure V_Nachalo;
Var Vsp : U
Begin New(Vsp);
Vsp^.Inf := X; Vsp^.Next := First;
First := Vsp; End;
Procedure Iz_Nachala;
Var Vsp : U;
Begin
Vsp := First;
First := First^.Next;
X := Vsp^.Inf;
Dispose(Vsp); End;
Procedure V_Spisok;
Var Vsp : U;
Begin New(Vsp);
Vsp^.Inf := X;
Vsp^.Next := Pred^.Next;
Pred^.Next := Vsp; End;
Procedure Iz_Spiska;
Var Vsp : U;
Begin Vsp := Pred^.Next;
Pred^.Next := Pred^.Next^.Next;
X := Vsp^.Inf;
Dispose(Vsp); End;
Procedure Ochistka;
Var Vsp : BT;
Begin
While Not Pust(First) Do Iz_Nachala(First, Vsp)
End;
Function Pust;
Begin Pust := First = Nil End;
Procedure Print;
Var Vsp : U;
Begin Vsp := First;
While Vsp <> Nil Do
Begin
Write(Vsp^.Inf : 6);
Vsp := Vsp^.Next
End;
WriteLn End;
Begin
End.
4.Стр-ры данных:стек. пр-р исп-ния стека.
Стек—динам. стр-ра данных, представляющая из себя упорядоченный набор эл-тов, в которой добавление новых эл-тов и удаление существующих производится с одного конца, называемого вершиной стека. Наиболее наглядным примером организации стека служит детская пирамидка, где добавление и снятие колец осуществляется как раз согласно определению стека. Стек можно организовать на базе линейного массива, файла, однако чаще для этого испульзуется однонаправл. список, причём в качестве вершины стека выберем начало этого списка. Выделим типовые операции над стеком: добавление элемента; извлечение элемента; проверка, пуст ли стек; очистка стека. Реализуем эти операции.
Unit Stack;
Interface
Type BT = LongInt;
U = ^Zveno;
Zveno = Record Inf : BT; Next: U End;
{добавляет элемент в вершину стек, First – указатель на начало стека, X – некоторое значение}
Procedure V_Stack(Var First : U; X : BT);
{удаляет элемент из вершины стека и возвращает его значение в переменную X}
Procedure Iz_ Stack (Var First : U; Var X : BT);
{удаляет все элементы стека}
Procedure Ochistka(Var First: U);
{функция возвращает значение true, если в стеке нет ни одного элемента}
Function Pust(First : U) : Boolean;
Procedure Print(First : U);
Implementation
Procedure V_ Stack;
Var Vsp : U
Begin New(Vsp);
Vsp^.Inf := X; Vsp^.Next := First;
First := Vsp; End;
Procedure Iz_ Stack;
Var Vsp : U;
Begin
Vsp := First;
First := First^.Next;
X := Vsp^.Inf;
Dispose(Vsp); End;
Procedure Ochistka;
Var Vsp : BT;
Begin
While Not Pust(First) Do Iz_Satck(First, Vsp)
End;
Function Pust;
Begin Pust := First = Nil End;
Procedure Print;
Var Vsp : U;
Begin Vsp := First;
While Vsp <> Nil Do
Begin
Write(Vsp^.Inf : 6);
Vsp := Vsp^.Next
End;
WriteLn End;
Begin
End.
5. Очередь—это инф-ная стр-ра, в кот-ой для добавления эл-в доступен только один конец, называемый хвостом, а для удаления—другой, называемый головой. Т.е. новый элемент добавляется в начало очереди, а извлекается элемент с конца очереди. Очередь разумнее всего моделировать, отобразив её на двунаправленный кольцевой список. В этом случае в заглавном звене будет присутствовать инф-ция как об указателе на голову, так и на хвост очереди. Выделим типовые операции над очередями: добавление элемента в очередь (помещение в хвост);удаление элемента из очереди (удаление из головы);проверка, пуста ли очередь; очистка очереди.Вот модуль, содержание кот-го сост-ют реализованные типовые операции над очередями.
Unit Spisok2;
Interface
Type BT = LongInt;
U = ^Zveno;
Zveno = Record Inf : BT; N, P: U End;
{добавляет элемент в начало очереди, First – указатель на начало очереди, X – некоторое значение
Procedure V_Och(Var First : U; X : BT);
{удаляет элемент из очереди и возвращает его значение в переменную X}
Procedure Iz_Och(Var First : U; Var X : BT);
{удаляет все элементы из очереди}
Procedure Ochistka(Var First: U);
{функция возвращает значение true, если в очереди нет ни одного элемента}
Function Pust(First : U) : Boolean;
Implementation
Procedure V_Och;
Var Vsp : U;
Begin
New(Vsp);
Vsp^.Inf := X;
If First = Nil
then begin Vsp^.N := Vsp; Vsp^.P := Vsp;
First := Vsp end
else begin Vsp^.N := First; Vsp^.P := First^.P;
First^.P^.N := Vsp; First^.P := Vsp; end;
End;
Procedure Iz_Och;
Var Vsp : U;
Begin
x:=first^.inf;
if First^.p=first
then begin
dispose(first);
first:= nil end
else begin
Vsp := First;
First := First^.N;
First^.P := Vsp^.P;
Dispose(Vsp) end
End;
Procedure Ochistka;
Var Vsp : BT;
Begin
While Not Pust(First) Do Iz_Och(First, Vsp)
End;
Function Pust;
Begin
Pust := First = Nil End;
Begin
End.
6.Стр-ра данных: двоичное дерево. Дерево поиска. Осн. операции.
Дерево—это совок-ть эл-ов, наз-мых узлами (при этом один из них определен как корень), и отн-ний (родительский–дочерний), образующих иерархическую стр-ру узлов. Узлы, кот-е не имеют ни одного последующего узла, наз. листьями. В двоичном (бинарном) дереве каждый узел м.б. связан не более чем c двумя др. узлами. Рекурсивно двоичное дерево опред-ся так: двоичное дерево бывает либо пустым (не содержит ни одного узла), либо содержит узел, наз-мый корнем, а также два независимых поддерева—левое и правое. Двоичное дерево поиска – дерево обладающее с-вом: корневой эл-т имеет большее значение узла, чем любой эл-т в левом поддереве, и меньшее или равное, чем эл-ты в правом поддереве. Указанное св-во наз. характеристическим св-вом двоичного дерева поиска и вып-ся для любого узла такого дерева, включая корень. Далее будем рассм. только двоичные деревья поиска. Такое название дв. деревья поиска получили по той причине, что скорость поиска в них примерно такая же, что и в отсортированных массивах: O(n) = C • log2n (в худшем случае O(n) = n).Выделим типовые операции над дв.деревьями поиска: добавл-е эл-та в дерево; удал-е эл-та из дерева; обход дерева; поиск в дереве. Поскольку опред-ние дв. дерева рекурсивно, то все указанные типовые операции м.б. реализованы в виде рекурсивных подпрограмм. Пусть дв. дерево поиска описывается следующим типом Type BT=LongInt; U = ^BinTree; BinTree = Record Inf : BT; L, R : U End; Покажем два варианта добавления элемента в дерево: итеративный и рекурсивный.
{Итеративный вариант добавления элемента в дерево, }
Procedure InsIteration(Var T : U; X : BT);
Var vsp, A : U;
Begin
New(A); A^.Inf := X; A^.L:=Nil; A^.R := Nil; vsp:=nil;
If T=Nil Then T:=A
Else Begin vsp := T;
While vsp <> Nil Do
If A^.Inf < vsp^.Inf
Then If vsp^.L=Nil
Then Begin vsp^.L:=A; vsp:=A^.L End
Else vsp:=vsp^.L
Else If vsp^.R = Nil
Then Begin vsp^.R := A; vsp:=A^.R End
Else vsp := vsp^.R;
End;
{Рекурсивный вариант добавления элемента в дерево}
Procedure InsRec(Var Tree : U; x : BT);
Begin
If Tree = Nil
Then Begin
New(Tree);
Tree^.L := Nil;
Tree^.R := Nil;
Tree^.Inf := x End
Else If x < Tree^.inf
Then InsRec(Tree^.L, x)
Else InsRec(Tree^.R, x)
End;
Сущ-вует неск. сп-бов обхода всех узлов дерева. Три наиболее часто исп-мых из них наз. обход в прямом (префиксном) порядке, обход в обратном (постфиксном) порядке и обход во внутреннем порядке (или симметричный обход). Каждый из обходов реал-ся с использованием рекурсии.
{в обратном порядке}
Procedure PrintTree(T : U);
begin
if T <> Nil
then begin PrintTree(T^.L); write(T^.inf:6); PrintTree(T^.R) end; end;
{в прямом порядке}
Procedure PrintTree(T : U);
begin
if T <> Nil
then begin write(T^.inf : 6); PrintTree(T^.L); PrintTree(T^.R) end;end;
Реализуем ф-цию, возвращающую true, если элемент присутствует в дереве, и false — в противном случае.
function find(Tree : U; x : BT) : boolean;
begin
if Tree=nil then find := false
else if Tree^.inf=x then Find := True
else if x < Tree^.inf
then Find := Find(Tree^.L, x)
else Find := Find(Tree^.R, x)
end;
По сравнению с предыдущими задача удаления узла из дерева реализуется неск-ко сложнее. В этом случае нужно заменить удаляемый эл-т самым правым элементом из его левого поддерева.
function Delete(Tree: U) : U;
var P, v : U;
begin
if (Tree=nil)
then writeln('такого элемента в дереве нет!')
else if x < Tree^.inf
then Tree^.L := Delete(Tree^.L, x)
else if x > Tree^.inf
then Tree^.R := Delete(Tree^.R, x)
else begin
P := Tree;
if Tree^.R=nil
then Tree:=Tree^.L
else if Tree^.L=nil
then Tree:=Tree^.R
else begin
v := Tree^.L;
while v^.R^.R <> nil do v:= v^.R;
Tree^.inf := v^.R^.inf;
P := v^.R;
v^.R :=v^.R^.L;
end;
dispose(P);
end;
Delete := Tree
end;
7. Пон-е о мат. моделир-нии. Этапы мат. моделир-ния. Класс-ция мат. моделей.
Мат. модели - очень широкий класс знаковых моделей (основанных на формальных языках над конечными алфавитами), широко использующих те или иные мат. методы. Мат. модель выражает существенные черты-объекта или процесса языком уравнений и др. мат. средств. Собственно говоря, сама мат-ка обязана своим существованием тому, что она пытается отразить, т.е. промоделировать, на своем специфическом языке закон-ти окружающего мира.
Этапы: I.Опред-е целей модел-ния. Основные из них таковы:1) (понимание) модель нужна для того, чтобы понять, как устроен конкретный объект, какова его структура, основные свойства, законы развития и взаимодействия с окружающим миром; 2) (управление) модель нужна для того, чтобы научиться управлять объектом (или процессом) и определить наилучшие способы управления; 3) (прогнозирование) модель нужна для того, чтобы прогнозировать поведение объекта в тех или иных условиях.
II. Важнейшим этапом модел-ния явл. разделение входных параметров по степени важности влияния их изменений на выходные. Такой процесс называется ранжированием (разделением по рангам). Отбрасывание менее значимых факторов огрубляет объект модел-я и способ-ет пониманию его гл. св-в и закономерностей.
III.Поиск мат. описания. На этом этапе необходимо перейти от абстрактной формул-ки модели к формул-ке, имеющей конкретное мат. наполнение. В этот момент модель предстает перед нами в виде уравн-я, с-мы уравн-й, с-мы нерав-в, дифференциального ур-ния или с-мы таких уравнений и т.д.
V. Когда мат. модель сформулирована, выбираем метод ее исслед-я. Для реш-я одной и той же задачи есть неск. конкретных методов, различающихся эффективностью, устойчивостью и т.д. От верного выбора метода часто зависит успех всего процесса.
VI. Разработка алгоритма и составление программы для ЭВМ - это творческий и трудно формализуемый процесс. После составл-я программы решаем с ее помощью простейшую тестовую задачу. Затем следует собственно численный эксперимент, и выясняется, соответствует ли модель реальному объекту (процессу).
Класс-ция: 1. По отраслям наук (мат. модели в физике, биологии, социологии и т.д.). 2. По применяемому мат. аппарату (модели, основанные на прим-нии обыкн. дифф. ур-ий, дифф. ур-ний в частных производных, стохастических методов, дискретных алгебр. преобразований и т.д.). 3. По целям моделирования:• дескриптивные (описательные) модели (Моделируя движение кометы, вторгшейся в Солнечную систему, мы описываем (предсказываем) траекторию ее полета, расстояние, на котором она пройдет от Земли и т. д. , т. е. ставим чисто описательные цели. •оптимизационные модели (В этом случае в модель входит один или неск. параметров, доступных нашему влиянию. Напр-р, меняя тепловой режим в зернохранилище, мы можем стремиться подобрать такой, чтобы достичь максим. сохранности зерна, т. е. оптимизируем процесс);•многокритериальные модели (Часто приходится оптимизировать процесс по неск. параметрам сразу, причем цели могут быть весьма противоречивыми. Напр-р, зная цены на продукты и потребность чел-а в пище, организовать питание больших групп людей как можно полезнее и как можно дешевле).•игровые модели (Полководец перед сражением в условиях наличия неполной инф-ции о противостоящей армии должен разработать план: в каком порядке вводить в бой те или иные части и т.д., учитывая и возм. реакцию противника. • имитационные модели (Модель в большой мере подражает реальному процессу. Пр-р – модел-ние движ-я молекул в газе, когда каждая молекула представляется в виде шарика, и задаются усл-я поведения этих шариков при столкновении друг с другом и со стенками ; при этом не нужно использовать никаких ур-ний движ-ния.
8. Моделирование физич-х процессов:В физике выделяется третий фундаментальный раздел - вычислительная физика (computational physics). Причина: ограниченные возможности решения задач традиционными методами. Например приходится решать системы большого числа уравнений или дифференциальные уравнения в частных производных. Численное мод-ние в физике называют вычисл-м эксп-том, т.к оно имеет много общего с лабораторным эксп-том. Численное моделирование позволяют представить их в максимально наглядной форме (в виде графиков, диаграмм, траекторий движения).
движение тела
с учетом сопротивления среды:
При реальных физических движениях тел
в газовой или жидкостной среде трение
накладывает огромный отпечаток на
характер движения. Предмет, сброшенный
с большой высоты, не движется
равноускоренно, так как по мере набора
скорости возрастает сила сопротивления
среды. Сила сопротивления растет с
ростом скорости. При относительно
малых скоростях величина
,
где k1
опр-тся свойствами среды и формой тела.
Например, для шарика
- это формула Стокса, где
- динамическая
вязкость среды. При гораздо меньших
скоростях :
.
Линейная по скорости часть силы
сопротивления формально также сохранится,
но если
,
то
можно
пренебречь ( ранжирование).
пропорциональна площади сечения тела
S,
поперечного по отношению к потоку, и
плотности среды
и зависит от формы тела. Обычно
представляют
,
где с –
коэфф-т лобового сопр-ния - безразмерен.
При достижении достаточно большой
скорости, когда образующиеся за
обтекаемым телом вихри газа или
жидкости начинают интенсивно отрываться
от тела, значение с
в несколько раз уменьшается; для шара
оно становится приблизительно равным
0,1. вывод:F(сопр)
состоит: линейной и квадратичной части
силы.
